网络拓扑
网络需求
- 1️⃣ 在R4上配置PreVal策略,确保R4通过R3到达5.5.5.5
- 2️⃣ 在R4上配置AS_path策略,确保R4通过R3到达9.9.9.9
- 3️⃣ 在R2和R3上配置MED策略,确保R4通过R3到达6.6.6.6
- 4️⃣ 在R2上配置Local Preference策略,确保R1通过R3到达4.4.4.4
- 5️⃣ 在R1上配置Local Preference策略,确保R1通过R3到达8.8.8.8
- 6️⃣ 在R5上配置AS策略,不接收任何始发AS123的路由
- 7️⃣ 在R4上配置Community策略,确保7.7.7.7的路由不会宣告到AS5
策略一 PreVal
修改引入路由的本地优先级 手动认定合适的下一跳地址
# R4修改引入的路由条目
# 匹配数据流
ip prefix-list 5555 permit 5.5.5.5 32
# 创建路由策略
route-policy pv permit node 10
if-match ip address prefix-list 5555
apply preferred-value 100 // 应用优先级为100
# 进入BGP视图应用路由策略
bgp 4
address-family ipv4
peer 34.0.0.3 route-policy pv import
存在问题
- 只引入了5.5.5.5路由 6.6.6.6与9.9.9.9因为没有匹配被过滤 所以需要创建一个空允许策略
# 解决办法
route-policy pv permit node 20 // 创建空的路由策略
最终效果
策略二 AS_path
根据as_path越少越优先的规则 修改引入路由条目的as_path数量 将次优路径下一跳as_path增多
相关命令
- apply as-path { as-number&<1-32> [ delete | replace ] | clear }
| 参数 | 备注 |
|---|---|
| delete | 在原有的AS_Path属性中删除指定的AS号 |
| replace | 替换原有AS号。如果未指定本参数,则在原AS路径前加入AS号 |
| clear | 清空原有的AS_Path属性 |
设备配置
# R4修改引入的路由条目
# 匹配数据流
ip prefix-list 9999 permit 9.9.9.9 32
route-policy as permit node 10
if-match ip address prefix-list 9999
apply as_path 123 123 123 123
route-policy as permit node 20
bgp 4
address-family ipv4
peer 24.0.0.2 route-policy as import
最终效果
策略三 MED
影响邻居的路由表选择 MED开销越小越优先
# R2配置
ip prefix-list 6666 permit 6.6.6.6 32
route-policy med permit node 10
if-match ip address prefix-list 6666
apply cost 100
route-policy med permit node 20
bgp 123
address-family ipv4
peer 24.0.0.4 route-policy med export
# R3配置
ip prefix-list 6666 permit 6.6.6.6 32
route-policy med permit node 10
if-match ip address prefix-list 6666
apply cost 50
route-policy med permit node 20
bgp 123
address-family ipv4
peer 34.0.0.4 route-policy med export
最终效果
策略四 Local Preference出方向
该策略出方向入方向都可应用 出方向影响邻居 入方向影响自己 默认100 越大越优先
# R2出方向
ip prefix-list 4444 permit 4.4.4.4 32
route-policy lp permit node 10
if-match ip address prefix-list 4444
apply local-preference 50
route-policy lp permit node 20
bgp 123
address-family ipv4
peer 1.1.1.1 route-policy lp export
最终效果
策略五 Local Preference入方向
# R1入方向
ip prefix-list 8888 permit 8.8.8.8 32
route-policy lp permit node 10
if-match ip address prefix-list 8888
apply local-preference 50
route-policy lp permit node 20
bgp 123
address-family ipv4
peer 2.2.2.2 route-policy lp import
最终效果
策略六 AS过滤器
使用正则表达式匹配as路径 从而通过as_path过滤路由条目
# R1宣告L10-10.10.10.10 R5配置入方向AS过滤
ip as-path 1 deny 123$
ip as-path 1 permit .*
bgp 5
address-family ipv4
peer 15.0.0.1 as-path 1 import
最终效果
策略七 团体属性
# R4配置
ip prefix-list 7777 permit 7.7.7.7 32
route-policy community permit node 10
if-match ip address prefix-list 7777
apply community no-export
route-policy community permit node 20
bgp 4
address-family ipv4
peer 24.0.0.2 route-policy community export
peer 24.0.0.2 advertise-community
# R2配置
bgp 123
address-family ipv4
peer 1.1.1.1 advertise-community // 配置将团体属性保留发给邻居 默认丢弃团体属性
最终效果
故障排查
- 造成原因: 路由未选择2.2.2.2 选择的是3.3.3.3 因为3.3.3.3不带团体属性 所以路由传递到R5
策略八 团体过滤器的使用
# R2配置
ip community-list 1 permit internet
route-policy 7777 permit node 10
if-match community 1
apply community no-advertise
bgp 123
address-family ipv4
peer 1.1.1.1 route-policy 7777 export