BGP路由过滤和正则表达式

<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$

 

你可能感兴趣的:(表达式,路由器)