视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
关于BGP AS-PATH的正则表达式
2025-10-02 15:02:35 责编:小OO
文档

∙   < 上一页   下一页 > 
很抱歉,当前无法删除此日志,请稍后再试。
关于BGP AS-PATH的正则表达式

 

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

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

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

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

^   匹配字符的开始

$   匹配字符的结束

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

例:

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

 句号

 匹配任何字符,包括空白

 星号

 *

 匹配模式的0或更多的序列

 加号

 +

 匹配模式的1或更多的序列

 问号

 ?

 匹配模式的0或1次出现

 加字符

 ^

 匹配输入字符串的开始

 美元符

 $

 匹配输入字符串的结束

 下划线

 _

 匹配紧接着的

 方括号

 []

 匹配一定范围中的单字符

 连字符

 `

 分离一个范围的端点

 

 

基于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

 

 

 

下面给出正则表达式及其意义

_300_  匹配所有经过AS300的路由

_300$  匹配所有源在AS300中的路由

^300_  仅匹配接收的路由

^300$  仅指那些源于AS300没有经过任何其他AS的路由

.*     所有路由下载本文

显示全文
专题