BGP路由过滤和正则表达式
2013-08-04 12:36
423 查看
<BGP的过滤方法总结>
BGP有多种过滤方法:
A.neighbor 1.1.1.1 prefix-list 1 {in|out}
用前缀列表来过滤,这个是BGP的标准过滤方法,可以用in和out方向
B.neighbor 1.1.1.1 distribute-list access-list-number {in|out}
用访问控制列表来过滤,支持扩展访问控制列表。建议用prefix-list来过滤。
C.neighbor 1.1.1.1 route-map XX {in|out}
用route-map来过滤,一般用在前缀有属性改变的时候。
D.neighbor 1.1.1.1 filter-list as-path-access-list-number {in|out}
用as-path-access-list所定义的正则表达式表示的AS-path来过滤.
<Maximum-Prefix>
本命令用来限制路由器最多只能从邻居处接收多少条路由,如果超过,则断开邻居关系。
neighbor 1.1.1.1 maximum-prefix 10 (1)
neighbor 1.1.1.1 maximum-prefix 10 80 (2)
neighbor 1.1.1.1 maximum-prefix 10 80 warning-only (3)
neighbor 1.1.1.1 maximum-prefix 10 80 restart 20 (4)
10后面跟的数字是百分数,默认值为75%
(1)针对Neighbor 1.1.1.1传过来的BGP路由,
如果>7条,则报警;如果>10条,则断开BGP连接。Idle(PfxCt) 一旦断开,就无法再建邻居,必须手工清
(2)如果>8条,则报警;如果>10条,则断开BGP连接。
(3)如果>8条,则报警;如果>10条,也只报警,不断开BGP连接。
(4)如果>8条,则报警;如果>10条,则断开BGP连接。
20分钟后重新连接,如果≤10条,则连接;如果仍然>10条,还是断开,(Neighbor会Up,然后Down).
<允许路由器只接收经过多少AS的路由>
bgp maxas-limit {1-2000} //限制路由器只接受as-path属性里最多有几个AS号的路由更新条目。
<条件路由>
neighbor 1.1.1.1 advertise-map AAA exist-map BBB
当MAP BBB里面匹配的路由存在的话向邻居1.1.1.1通告MAP AAA里面匹配的路由。
neighbor 1.1.1.1 advertise-map AAA non-exist-map CCC
当MAP CCC里面匹配的路由不存在的话向邻居1.1.1.1通告MAP AAA里面匹配的路由。
<Regular Expression>
正则表达式:一种用来做匹配的工具,可用来匹配字符串,在BGP中可用来按AS号进行路由过滤,控制路由器只接受某些特定的AS传来的路由。
常用的通配符:
^ : 代表路径列表(字符串)的开头
$ : 代表路径列表(字符串)的结尾
_ : 代表一个符号(只能是空格/逗号/左括号/右括号)
. : 代表任何一个字符
* : 星号前的字符可重复0次或多次
例子:
100 : 只要AS中包括100都匹配
_100_ : 所有经过AS100的路由
_100$ : 起源于AS100的路由
^100_ : 进入本AS之前的AS必须是100
^100$ : 起源于AS100,并直接传入本AS
100$ : 起源的AS号其最后三位一定是100,例如:100,1100,2100都可以
.* : 所有AS
R1#show ip bgp regexp ^23$
BGP有多种过滤方法:
A.neighbor 1.1.1.1 prefix-list 1 {in|out}
用前缀列表来过滤,这个是BGP的标准过滤方法,可以用in和out方向
B.neighbor 1.1.1.1 distribute-list access-list-number {in|out}
用访问控制列表来过滤,支持扩展访问控制列表。建议用prefix-list来过滤。
C.neighbor 1.1.1.1 route-map XX {in|out}
用route-map来过滤,一般用在前缀有属性改变的时候。
D.neighbor 1.1.1.1 filter-list as-path-access-list-number {in|out}
用as-path-access-list所定义的正则表达式表示的AS-path来过滤.
<Maximum-Prefix>
本命令用来限制路由器最多只能从邻居处接收多少条路由,如果超过,则断开邻居关系。
neighbor 1.1.1.1 maximum-prefix 10 (1)
neighbor 1.1.1.1 maximum-prefix 10 80 (2)
neighbor 1.1.1.1 maximum-prefix 10 80 warning-only (3)
neighbor 1.1.1.1 maximum-prefix 10 80 restart 20 (4)
10后面跟的数字是百分数,默认值为75%
(1)针对Neighbor 1.1.1.1传过来的BGP路由,
如果>7条,则报警;如果>10条,则断开BGP连接。Idle(PfxCt) 一旦断开,就无法再建邻居,必须手工清
(2)如果>8条,则报警;如果>10条,则断开BGP连接。
(3)如果>8条,则报警;如果>10条,也只报警,不断开BGP连接。
(4)如果>8条,则报警;如果>10条,则断开BGP连接。
20分钟后重新连接,如果≤10条,则连接;如果仍然>10条,还是断开,(Neighbor会Up,然后Down).
<允许路由器只接收经过多少AS的路由>
bgp maxas-limit {1-2000} //限制路由器只接受as-path属性里最多有几个AS号的路由更新条目。
<条件路由>
neighbor 1.1.1.1 advertise-map AAA exist-map BBB
当MAP BBB里面匹配的路由存在的话向邻居1.1.1.1通告MAP AAA里面匹配的路由。
neighbor 1.1.1.1 advertise-map AAA non-exist-map CCC
当MAP CCC里面匹配的路由不存在的话向邻居1.1.1.1通告MAP AAA里面匹配的路由。
<Regular Expression>
正则表达式:一种用来做匹配的工具,可用来匹配字符串,在BGP中可用来按AS号进行路由过滤,控制路由器只接受某些特定的AS传来的路由。
常用的通配符:
^ : 代表路径列表(字符串)的开头
$ : 代表路径列表(字符串)的结尾
_ : 代表一个符号(只能是空格/逗号/左括号/右括号)
. : 代表任何一个字符
* : 星号前的字符可重复0次或多次
例子:
100 : 只要AS中包括100都匹配
_100_ : 所有经过AS100的路由
_100$ : 起源于AS100的路由
^100_ : 进入本AS之前的AS必须是100
^100$ : 起源于AS100,并直接传入本AS
100$ : 起源的AS号其最后三位一定是100,例如:100,1100,2100都可以
.* : 所有AS
R1#show ip bgp regexp ^23$
相关文章推荐
- BGP交换前缀列表的出口路由过滤"ORF"技术
- Java过滤特殊字符的正则表达式
- java用正则表达式过滤特殊字符
- PHP过滤常用标签的正则表达式
- java使用正则表达式过滤所有的字符和数字
- javascript 正则表达式过滤sql关键字
- java正则表达式 过滤特殊字符的正则表达式
- WHERE子句使用正则表达式进行搜索过滤
- 过滤全文验证正则表达式的一个小程序
- 20150827-Linux grep文本过滤工具及正则表达式
- shell之文本过滤(正则表达式)
- 可遇不可求的Question之过滤单词字符的正则表达式\w的疑义
- 正则表达式应用之过滤空格(JavaScript,源代码)
- Java正则表达式过滤脚本威胁--封装类
- java使用正则表达式过滤html标签
- 正则表达式过滤某个字符后得到剩余的字符
- PHP过滤常用标签的正则表达式
- java正则表达式 过滤特殊字符的正则表达式
- 正则表达式过滤 成对标签(<key>a</key> 过滤html标签)
- 过滤所有html标签的属性的正则表达式