as-path access-list、filter-list.note
(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