BGP正则表达式以及基于AS路径的过滤(filter-list)
BGP正则表达式以及基于AS路径的过滤(filter-list)
句号
.
匹配任何字符,包括空白
星号
*
匹配模式的0或更多的序列
加号
+
匹配模式的1或更多的序列
问号
?
匹配模式的01次出现
加字符
^
匹配输入字符串的开始
美元符
$
匹配输入字符串的结束
下划线
_
匹配紧接着的
方括号
[]
匹配一定范围中的单字符
连字符
`
分离一个范围的端点
基于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的路由
.* 所有路由

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。