关于BGP_AS-PATH的正则表达式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

< 上一

页下一

页>

关于BGP AS-PA TH的正则表达式

. 匹配任意单个字符,包括空格

* 匹配零个或多个模式的出现

+ 匹配一个或多个模式的出现

?匹配零个或多个模式的出现

^ 匹配字符的开始

$ 匹配字符的结束

_ 匹配逗号,左大括号,右大括号,左小括号,右小括号

例:

c* 匹配行中任意多个c的出现,包括不出现c

c+ 匹配行中一个或多个字符c的出现

ca?b 匹配cb或者cab

[Aa] 匹配单个字符A或a,

[1-35-7] 匹配指为1,2,3,4,5,6,7的单个字符

^[bB] 匹配以b或B开头的行

[2-5]$ 匹配以2,3,4,5结尾的行。在方括号中的脱字符号(^)用于反转字符的意义

[^1-3] 匹配字符0和4-9

路由含义

^$ 从该as起源的路由

^2_ 所有从直接相连的位于as 2的邻居来的路由

^2$ 源于as2中的邻居路由

_3_ 路由包含as 3

{1 2} 使用as-path 选项聚合路由,从as 1和as 2来的路由形成聚合

(65530) 与对等体形式联盟,该对等体在as 65530

as-path路径过滤器的格式为:

ip as-path access-list <#> permit <正则表达式>

ip as-path access-list <#> deny <正则表达式>

理解:

^ 标志一个表达式的开始,如果不用这个字符,那么默认就没有开始的限制了。

如:当使用permit ^254,那么表示的意思就是和本地相连的AS是254传过来的路由全部都允许了。如果使用简单的permit 254,那么就是只要是经过了AS 254的路由,全部都被允许了,其实和permit _254_表达的意思相同。

$ 标志一个表达式的结束,如果不用这个字符,那么默认就没有结束的限制了。

如:当使用了permit 254$,那么表示的意思就是起源于AS 254的路由全部被接受,如果permit 254那么见上面的解释。

? 标志匹配前面的一个字符,注意:只是匹配一个字符。?允许前面的字符出现一次或者是空。

如:permit 254[0-9]?$,那么就是只匹配起源于AS 254/2540---2549的路由,注意?在CISCO 路由器上用CTRL-V来替代。

* 标志匹配前面的一个字符,注意,和?不同的是,*允许前面的字符出现许多次或者是空,而?只允许匹配出现一次或者是空。

如:permit 254[0-9]*$,那么就是只匹配起源于AS 254/2540---25499999........的路由如果是permit 254[5-9],那么就是匹配起源自AS 254/2545-2549/25455-25459/254555- 254599............

+和*的区别就是*可以匹配空,但是+必须匹配一个值才行.

如permit ^254+$,表示起源于254或者2544/25444........而permit ^254*$则可以匹配起源于AS 25/254/25444。

句号.标志匹配任意一个字符,包括空格,

如:当我们使用permit .*的时候,表示匹配所有的路由。

BGP正则表达式以及基于AS路径的过滤

(filter-list)

(2005-10-18 15:34:06)

转载

分类:~~~ BGP ~~~

基于AS路径的过滤

配置一个过滤列表相结合的正则表达式,以阻止通过BGP发送来的AS300的路由。当一个特定AS的所有路由都需要过滤时,基于AS路径信息的过滤是很有用的。如果不使用基于AS路径的过滤,我们将不得不一个接一个地列出一个前缀上的每个路由。

我们需要区分基于已定义的正则表达式的AS路径并将此信息通过一个过滤器列表应用到一个BGP邻居上。

1、定义与此同时表达式以否定通过AS300的任意路由

///// router c /////

ip as-path access-list 1 deny _300_ //拒绝任何通过AS300的路由

ip as-path access-list 1 permit .*

使用命令show ip bgp regexp 命令来看正则表达式匹配了哪些路由。注意2.0.0.0是需要匹配正则表达式(_300_)的唯一路由。此命令在确定正则表达式覆盖到了你想覆盖的路由时是很有用的。

show ip bgp regexp _300_

*>2.0.0.0 193.1.1.1 .... 100 300 400 i

* I 192.1.1.1 .... 100 300 400 i

对BGP邻居195.1.1.1应用此过滤列表。

//// router c ///////

router bgp 200

neighbor 195.1.1.1 filter-list 1 out

clear ip bgp *

show ip as-path-access-list

as path access list 1

deny _300_

permit .*

在路由器C上用命令show ip bgp filter-list 1显示被配置的BGP过滤器。

//// router c ////

show ip bgp filter-list 1

*> 2.0.0.0 193.1.1.1 0

* i 192.1.1.1 0

在路由器D上用命令show ip bgp显示BGP表。注意经过路由C到达1.0.0.0的路由不再存在

////// router d/////////

show ip bgp

*>i 1.0.0.0 192.1.1.1

* i 2.0.0.0 193.1.1.1

*>i 192.1.1.1

相关文档
最新文档