加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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   
* 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
2.0.0.0    193.1.1.1
*>i            192.1.1.1
 
 
 
下面给出正则表达式及其意义
_300_  匹配所有经过AS300的路由
_300$  匹配所有源在AS300中的路由
^300_  仅匹配接收的路由
^300$  仅指那些源于AS300没有经过任何其他AS的路由
.*     所有路由
 
 
 
 
 
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有