BGP——AS—PATH正则表达式(实列讲解+配置)
目录
一、(表1 )关于AS_PATH访问列表的正则表达式元字符特殊字符
二、字符组合路由含义:
三、实列理解:
四、应用:
(1)应用——过滤:
(2)应用——选路:
使用 正则表达式目的:匹配BGP路由,进行选路和过滤和执行其他操作
一、(表1 )关于AS_PATH访问列表的正则表达式元字符特殊字符
元字符特殊字符 |
匹配内容 |
. |
任何单一字符,包括空格 |
[ ] |
在方括弧中罗列的任何字符 |
[^100] |
除了在方括弧中罗列的字符外任何字符(^必须放置在字符列表之前) |
- |
(连字符)在由连字符所分隔的两个字符之间的任意字符 |
? |
字符或模式出现0次或1次 |
* |
字符或模式出现0次或多次 |
+ |
字符或模式出现1次或多次 |
^ |
一行的开始 |
$ |
一行的结束 |
| |
或者 |
_ |
(下划线)相当于逗号 |
——————————————————————————————————————————————————————
二、字符组合路由含义:
- ^$ 从本地as起源的路由
^2_ 所有从直接相连的位于as 2的邻居来的路由, 始发于AS 2,没有经过其他AS的
_3_ 经过as 3
.* 所有BGP路由
^2$ 源于as2中的邻居路由
_300$ AS 300始发的
^12. 匹配12以及 120~129的BGP路由
————————————————————————————————————————————————————————
三、实列理解:
- 2、描述:匹配行的起始和结束
考虑下面的AP_PATH过滤器:
(1)ip as-path access-list 20 permit 850
含义:凡是AS号码里面有8和5和0的路由都能匹配出来
该匹配任何包含字符串850的AS_PATH。匹配的AS_PATH例如:(850),(235,850,155)和(3568,5850,310)等。无论是是属性中唯一的串或者属性中多个AS号中的一个甚至是属性中一个很大的AS号中的一部分,该匹配都成功。
假设你只想匹配包含唯一AS号850的AS_PATH,你必须描述行的开始和结束。使用补字号(^)匹配行的开始,美元符($)匹配行的结束:
(2)ip as-path access-list 20 permit ^850$
含义:只匹配850AS
这样表示表达式的开始紧接一个字符串850,然后紧接行的结束符。
你还可以使用两个描述来匹配一个空的AS_PATH:
(3)ip as-path access-list 21 permit ^$
含义:匹配本地AS产生的路由
在上述情况,正则表达式匹配行的开始紧接行的结束;如果行的开始与行的结束间存在任何字符则匹配不成功。
3、括弧:匹配字符集和
括弧是你能指定单字符的范围。
(1)ip as-path access-list 22 permit ^85[0123459]$
含义:匹配包含单一AS号850,851,852,853,854,855或859的AS_PATH。
上述过滤器匹配包含单一AS号850,851,852,853,854,855或859的AS_PATH。
如果字符的范围连续,你可以只指定序列中开始和结束的字符:
(2)ip as-path access-list 22 permit ^85[0-5]$
含义:匹配AS号为850~855的路由
4、否定:匹配除字符集和外的其他字符
当在括弧中使用加字符时,将否定括弧中指定的范围。如果是正则表达式将匹配范围外的任何内容。例如:
(1)ip as-path access-list 24 permit ^85[^0-5]$
含义:匹配AS以85开头的路由,排除AS号为850~855,其他的都可以匹配(856 857 858 859)
该过滤器除了多一个加字符以外与上一个过滤器类似,指定了“不是0~5”。该正则表达式将匹配856~859范围内的单个AS号。
5、通配符:匹配任何单一字符
点(.)匹配任何单一字符。单一字符可能是一个空的。考虑下面过滤器:
ip as-path access-list 24 permit ^85.
含义:该过滤器匹配一个由AS号850~859开始的AS-PATH。由于“.”可以匹配一个空格,AS号85也能匹配成功。
6、替代:匹配字符串集合中的一个
(|)用作表示一个“或”操作。即(|)任何一边的字都可以匹配。例如:
ip as-path access-list 25 permit ^(851|852)$
含义:该过滤器匹配单个AS号:851或852的AS_PATH。
你可以扩展“或”功能来作多于两个可能性的选择:
ip as-path access-list 26 permit ^(851|852|6341|53)$
7、选择字符:匹配一个可能存在也可能不存在的字符
问号(?)匹配字的0个或一个实例。例如
ip as-path access-list 27 permit ^(850)?$
含义:匹配AS-path里面,没有包含850或者只包含一个850的BGP路由
该过滤器匹配一个单一AS号850的AS_PATH或者匹配一个空的列表。注意这里的圆括弧,表示元字符“?”应用在整个AS号上。
ip as-path access-list 27 permit ^850?$
含义:如果表达式使用850?,元字符特殊字符只应用在最后一个字符上。该表达式匹配85或者850。
8、重复:匹配许多字符的重复
你可以使用两个元字符特殊字符来匹配重复的词:星号(*)匹配0次或多次重复,加号(+)匹配1次或多次重复。例如
ip as-path access-list 28 permit ^(850)*$
含义:该过滤器匹配空的AS列表或包含0个或多个的AS号为850的。即AS路径可以是(850,850),(850,850,850)等。
ip as-path access-list 29 permit ^(850)+$
含义:下面的过滤器功能类似,只是要求列表中至少包含1 个AS号850。
9、分界线:描述多个字
分界线(_)用作描述分隔分别指定的一串字。例如假设你想匹配指定的AS_PATH(5610,148,284,13)。过滤器可以如下所示:
ip as-path access-list 30 permit ^5610_148_284_13$
含义:必须第一个是5610—148—284—13,严格按照顺序匹配,因为有^行的开始与结束符号
过滤器指定了行的开始与结束,只有AS_PATH(5610,148,284,13)才能匹配。
下划线匹配行的开始、行的结束、逗号或空格。注意下面过滤器与上述过滤器的区别:
ip as-path access-list 31 permit -5610_148_284_13_
含义: 一个AS列表只要包含这几个即可,顺序没有关系
在第二个过滤器中,只要求指定的序列包含在AS_PATH中,并不要求是唯一的属性。所以AS_PATH(5610,148,284,13),AS_PATH(23,15,5610,148,284,13)和 AS_PATH(5610,148,284,13,3005)等都能匹配。
10、放到一起:一个复杂的例子
将多个元字符特殊字符混合是用来匹配一些复杂的字符串才能显示正则表达的真正威力。考虑下面的过滤器:
ip as-path access-list 10 permit ^(550)+[880|2304]?_1805_.*
——————————————————————————————————————————————————————
四、应用:
(1)应用——过滤:
Ip as-path access-list 1 deny _300_Ip as-path access-list 1 per .*Router bgp 200Nei 3.3.3.3 filter-list 1 out
实现功能:给3.3.3.3发送通告路由时候过滤掉经过AS 300的路由
(2)应用——选路:
Ip as-path access-lsit 1 per ^65530$Route-map aaa per 10Match as-path 1Set metric 100Route bgp 100Aggregate-add 172.16.0.0 255.255.0.0 as-set advertise-map aaa
实现功能:匹配172.16.0.0 BGP路由中具有AS 65530的给予聚合,聚合后的路由MED值为100
BGP——AS—PATH正则表达式(实列讲解+配置)相关推荐
- 旋度的散度为零证明_(大牛分享)实列讲解:Python Sympy计算梯度、散度和旋度...
今天为大家带来的内容是:(大牛分享)实列讲解:Python Sympy计算梯度.散度和旋度 sympy有个vector 模块,里面提供了求解标量场.向量场的梯度.散度.旋度等计算,官方参考连接: ht ...
- BGP——ORF+条件路由过滤(讲解+配置)
目录 一.条件路由过滤: --应用+配置: --案列 : 二.ORF-出router过滤: --简介+应用: -- 配置: --案列: 一.条件路由过滤: --应用+配置: 写两个ACL,当满足其中一 ...
- BGP——路由抖动惩罚机制(讲解+配置)
目录 --简介: --相关参数值: --配置: --简介: 只有从EBGP邻居收到的抖动路由才能执行处罚机制,可针对所有路由,也可以针对具体的路由,IBGP路由没有路由抖动惩罚机制 .为了抑制路由摆动 ...
- BGP ——路由过滤+路由聚合(讲解+配置)
目录 一.路由聚合: 二.路由过滤 : (1)ACL过滤 (2)Prefix-list过滤(常用): (3)distribute路由过滤: 三.路由聚合+路由过滤: 四.把本地抑制路由传给邻居: 五. ...
- BGP——本地优先级选路+BGP路由水平分割机制(讲解+配置命令)
目录 一.本地优先级特性 二.配置命令: 三.图解: 四.BGP路由水平分割机制 一.本地优先级特性 1.1 公有属性,默认值100 1.2 只能在IBGP邻居之间传递 1.3 适用于自身AS有两个出 ...
- TrueNAS SCALE中添加 jellyfin电影服务器容器实列
TrueNAS SCALE中添加 jellyfin电影服务器容器实列 http://av98.byethost10.com/?thread-1201.htm 解锁TrueNAS SCALE 三方doc ...
- Fragment的运用实列
运用ListFragment view: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...
- php实现身份证号码获取归属地地址的实列教程,含完整全国地区归属数据!
本篇文章主要讲解实现,php通过读取身份证地理位置编码进行匹配归属地的功能实例. 日期:2021-7-10 作者:任聪聪 实列文件截图: 说明:我将数据切分成了两种类型,依据自己的习惯进行导入数据库即 ...
- MSTP:多生成树实例——应用案列及配置命令(实验)
应用案例: 交换网络采用双核心,核心SW1,核心SW2:拥有VLAN 100个,为了实现二层流量转发的负载均衡,需要在启用MSTP技术或者PVSTP技术,也就是说: ---1-49 VLAN运行一个S ...
最新文章
- web主题公园版权信息破解:script.js加密文件
- 【OpenGL】二十二、OpenGL 光照效果 ( 模型准备 | 光照设置 | 启用光照 | 启用光源 | 设置光源位置 | 设置光照参数 | 设置环境光 | 设置反射材质 | 设置法线 )
- 实战SSM_O2O商铺_07【商铺注册】DAO层-新增与更新商铺
- android5.0 v4a,【图】多图讲解V4A提高G5音效详细步骤(G5音效可以更棒的)
- AUTOSAR从入门到精通100讲(六十)-Explanation of Firmware Over-The-Air
- python数据变更邮件提醒_如何使python脚本在某些数据更改时自动发送电子邮件?...
- 串口通信中ReadFile和WriteFile的超时详解!
- String s = new String(“xyz“);创建了几个字符串对象?
- 计算机图形学设计线宽代码,计算机图形学线宽和线型处理.ppt
- HTML合并表格(单元格)
- 数学建模 之 matlab初学两天搞定基础 极限求导积分篇(5/5)
- 人民币与美元兑换python_银行汇率兑换(美元兑换人民币python)银行汇率兑换
- 美团机器学习InAction系列—实例详解机器学习如何解决问题
- Arcgis api for JavaScript 4.12解读-----symbol
- Drop tablespace
- 测试大佬带你揭秘功能测试的内幕
- 安装 KubeOperator
- 【毕业设计】大数据大众点评评论文本分析 - python 数据挖掘
- C语言编译发现注释错误,在对C语言程序进行编译时,可以发现注释行中的拼写错误。...
- oracle转换人民币,月光软件站 - 编程文档 - 数据库 - 如何在ORACLE中實現人民幣大寫的轉換...