<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$
转载于:https://blog.51cto.com/caihaisheng/1263877