当前位置: 首页 > news >正文

BGP高级特性之正则表达式

一、概述

        AS_Path属性实际上可以看作是一个包含空格的字符串,所以可以通过正则表达式来 进行匹配。正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符 串”是否符合这个特征。BGP的AS_Path过滤器主要是定义AS_Path正则表达式,然后去匹 配BGP路由的AS_Path属性信息,从而实现对BGP路由信息的过滤。

        正则表达式描述了一种字符串匹配的模式,由普通字符(例如字符a~z)和特殊字符 (或称“元字符”)组成。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进 行匹配。正则表达式一般具有以下功能。

        ① 检查字符串中符合某个规则的子字符串,并可以获取该子字符串。

        ② 根据匹配规则对字符串进行替换操作。

二、正则表达式的组成

         正则表达式由普通字符和特殊字符组成。

① 普通字符匹配的对象是普通字符本身。包括所有的大写和小写字母、数字、标点 符号以及一些特殊符号。例如a匹配abc中的a,202匹配202.113.25.155中的202,@匹配 xxx@xxx.com中的@。

② 特殊字符配合普通字符匹配复杂或特殊的字符串组合。表15-7是对特殊字符及其 语法意义的使用描述。

具体的正则表达式特殊字符可见下表

下面是一些常用的AS路径正则表达式。

① ^$:表示匹配的字符串为空,即AS_PATH为空,表示只匹配本地路由。

② .* :表示匹配任意字符串,即AS_PATH为任意,表示匹配所有路由。

③ ^100:表示匹配的字符串开始为100,即AS_PATH最左边AS前3位(最后一个 AS)为100,后面可能还有AS,表示匹配由AS100发来的所有路由,包括从AS100始发和 由AS100转发的路由。

如果使用第三条表达式去匹配^200路由的话,则以下所有的路由都可以匹配到,因为AR2在传递给AR1的时候,AS_Path属性最开始的都为200。

④ ^100_:表示匹配的字符串开始为100,后面为符号,即AS_PATH最左边AS(最后 一个AS)为100,后面一定还有其他AS,表示匹配由AS100转发(路径中至少有两个 AS)的路由。比较前一个表达式^100可以看出,“_”可以用来限制仅匹配由某AS转发的路 由。

如果使用第四条表达式匹配200的路由的话,只能够匹配到下面两条路由,因为第一条只有一个AS

⑤ _100$:表示匹配的字符串最后为100,即AS_PATH最右边AS(起始AS)为100, 表示匹配AS100始发的路由。

如果使用第五条表达式去匹配_400$路由的话,只能够匹配到AS 200 300 400这条路由,因为只有这条在最后说明这条路由是由400产生的。

⑥ _100_:表示匹配的字符串中间有100,即AS_PATH中间有AS100,表示匹配经过 AS100,且在AS路径中,AS100既不是第一个AS,也不是最后一个AS的路由。

如果使用第六条表达式匹配200的路由的话,以下所有的路由都可以被匹配,如果匹配300的路由的话,只有下面两条被匹配。

示例:

^100_

起始符为 100 代表邻居的 AS 为 100. 后面跟着下划线,代表空格或者结束符 , 因此 也可以表示 ^100$ 。所以可以匹配出所有来自于邻居的 AS 为 100 的路由,或者只有的为 100 的路由。如 AS_PATH 为 (100200) 、 (100 200 300) 、 (100) 。

^100_.

与示例 1 类似,但是下划线后跟着小数点 , 这个点代表羊个字符或者空格, 仅能匹配 邻居的为 100 的路由 , 如 AS_PATH 为 (100200) 、 (100 200 300) 等,但走不能匹配出 AS PATH 中只有 100 的 AS 号 。

^100.

100 后面跟着小数点,则能够匹配前面三位为 100 的 AS 号 , 或者邻居为 100 的 AS 号 , 如:的_PATH 为 (100200) 、 (100 200 300) 等或者 (100 1)、 (10012) 等。

^100

与示例 3 不同的是 . 100 后面不合小数点 , 则能够匹配出所有前三位为 100 的 AS 号 , 范围更广,知的 PATH 为 (100 200) 、 (100 200 300) 等,或者 (100 1)、 (10012 ),也 可以匹配出邻居为 100 的的号。

100$

$代表结束符 , 这条匹配所有以 100 结束的 AS 号,因此匹配的是所有始发 AS 号为 100 的路由.如 AS PATH 为 (200 100) 、 (200 300 100) 等。

^$

一个起始符 紧跟着 一个结束符 ,代表的 PATH 列表为空 ,用来匹配所有本的产生的 路由,因为本的内传递的路由都不会携带 AS 号。

.*

^[0-9]+$

^代表起始,+代表前面的字符出现1次或多次$代表结束,所以这个表达式代表匹配所有始发AS传递的路由

代表所有路由,类似 ACL 中的 any 作用,任意的 AS_PATH 列表。

【示例1】创建序号为1的AS路径过滤器,允许AS路径中以10开始的路由通过。

<Huawei> system-view
[Huawei] ip as-path-filter 1 permit ^10

【示例2】创建序号为2的AS路径过滤器,允许AS路径中包含20的路由通过。

<Huawei> system-view
[Huawei] ip as-path-filter 2 permit [20]

【示例3】创建序号为3的AS路径过滤器,不允许AS路径中包含30的路由通过。

<Huawei> system-view
[Huawei] ip as-path-filter 3 deny [30]
[Huawei] ip as-path-filter 3 permit .*

以上就是本章的全部内容了,感谢大家的浏览观看!文章若有错误或疑问可联系博主删除更改。

http://www.dtcms.com/a/306432.html

相关文章:

  • 【MATLAB/Simulink】查看MATLAB以往版本的帮助文档
  • 利用椭圆方程完成 NACA0012 翼型的网格绘制
  • 常⻅CMS漏洞
  • 力扣面试150题--只出现一次的数字
  • 【预判一手面试问题:排序】
  • 网络端口号全景解析:从基础服务到特殊应用的完整指南
  • kotlin类型可为空,进行空安全的区别
  • Prometheus实战教程 02 - Prometheus 配置详解
  • 歌尔微报考港交所上市:业绩稳增显韧性,创新引领生态发展
  • 从一开始的网络攻防(十四):WAF绕过
  • 在 CentOS 7 上安装 MinIO
  • 扣子,正式拥抱开源!
  • [SKE]UVM环境下OpenSSL加密算法参考模型设计
  • 过滤器Filter
  • 光谱相机自动调焦曝光控制
  • 基于定制开发开源AI智能名片S2B2C商城小程序的B站私域流量引流策略研究
  • RAG实战指南 Day 29:RAG系统成本控制与规模化
  • 技术赋能幼儿园毕业季:从数字化纪念到成长数据可视化
  • django-3模型操作
  • 疯狂星期四文案网第24天运营日记
  • cmake项目基本demo
  • AWS IAM:安全访问管理的核心指南
  • 开发避坑短篇(10):ArithmeticException无限循环小数的精确处理方案
  • 地图可视化实践录:显示高德地图和百度地图
  • JavaWeb前瞻—JDBC
  • Rabbitmq中常见7种模式介绍
  • QString 内存机制详解
  • 【Excel】制作双重饼图
  • 恢复IP地址
  • 明远智睿V2H核心模组:工业4.0时代的“性价比革命”