as-path access-list、filter-list.note

noteId: WEBc59f56fd905f867f9bea295307c32a54 · 原始路径:/ALL/网络 - C模块/1-路由协议合集、路由控制、策略路由/BGP (TCP-179)/as-path access-list、filter-list.note · 图片:1 · 附件待处理:0

 
 
(1)BGP(配置as-path acl使用):
只能通过 AS-PATH 属性过滤
# 定义 as-path list(这个需要使用正则表达式匹配):
## 匹配本地始发的路由(next-hop为:0.0.0.0的路由):
ip as-path access-list 10 permit ^$
 
## 匹配所有BGP路由:
ip as-path access-list 10 permit .*
 
## 只接收AS 200的路由(匹配AS PATH中只有AS 200的路由):
ip as-path access-list 10 permit ^200$
ip as-path access-list 10 deny .*
 
## 禁止将AS-PATH包含AS 100的路由通告(过滤经过AS 100的路由):
ip as-path access-list 10 deny _100_
ip as-path access-list 10 permit .*
 
## 匹配以 AS 100结尾的路由(匹配始发于AS 100的路由):
ip as-path access-list 10 permit _100$
ip as-path access-list 10 deny .*
 
## 匹配以AS 100开头的路由:
ip as-path access-list 10 permit ^100_
ip as-path access-list 10 deny .*
 
### as-path access-list 默认末尾有一条 deny .* 拒绝所有的规则
# AS-PATH的方向:
左边 = 离你最近的 AS
右边 = 路由的始发 AS / Origin AS
# 例如:
100 200 300
这条路由经过AS 300始发,经过AS 200,再经过AS 100,最后传到这里
 
需要注意如果开了反射器之类的、有多路径之类的,把最优路由拒绝了该路由是否会通过其他邻居的次优路径再传进来
neighbor ... filter-list 10 in:邻居传入路由时,将路由用as-path access-list 过滤一遍
neighbor ... filter-list 10 out:传路由给邻居前,将路由用as-path access-list 过滤一遍
# 允许始发于AS 200的路由,过滤经过AS 200的路由:
ip as-path access-list 10 permit _200$
ip as-path access-list 10 deny _200_
ip as-path access-list 10 permit .*
 
router bgp 400
 neighbor 100.2.4.2 filter-list 10 in
 neighbor 100.3.4.3 filter-list 10 in