拓扑

基础配置
- 接口IP
- R4、R5、R6的OSPF,使用环回接口作为 peering 地址
- 全部R的BGP,其中R4、R5、R6 配置 Full Mesh iBGP
- 注意R4 和 R6 的配置 next-hop-self
目标1
- R4、R5 到 172.16.0.0/24,走R6、R3、R1
配置
- 注意 route-map 的写法,需要跟上后面的号码,即使没有内容
- 在R4 上对从R2 的进站路由172.16 设置AS_PATH 的 prepend
- set prepend 后面的 ASN,可以随便写,但不建议乱写。建议使用已有的ASN,或者ASN
#R4
ip prefix-list 172_16 seq 5 permit 172.16.0.0/24
!
route-map RM_AS_PREPEND_IN permit 10
match ip address prefix-list 172_16
set as-path prepend last-as 2
!
route-map RM_AS_PREPEND_IN permit 20
!
router bgp 65400
neighbor 10.24.1.1 route-map RM_AS_PREPEND_IN in
校验
- R4 上确认BGP路由,可以看到 last-as (对于R4 来讲 last-as就是65200)按照我们的设置重复了2遍

- R5 上确认路由,到172.16 只剩下走R6 的路由。是因为
- 此时R4 也知道走R6 是更优的,所以R4撤回了之前宣告的路由
- 另外R4这个走R6 的最优路由时通过R5学到,所以即使更优,也不会再宣告给R5

效果
- 在R4上,对R2 发来的路由(进站)做了配置,导致R4 (出站)去到目标的路径发生了变化
目标2
- R2 到 192.168.5.5 走R1、R3、R5
配置
- 在R5 上将 192.168.5.5 通过BGP network 对外宣告
- 此时在R1 上有2条到达 192.168.5.5 的路径,其中走R2的为最优 —— 为什么是R2. Sean的教程里是R3 最优,谁先被收到,谁更优 Rule10

- 确认R3 的路由,到192.168.5.5 也有2条路可以走,1条是R1->R2->R4->R5,另一条是走R6 最佳

- 在 R6上进行Outbound策略配置,把65400加长,让R3不走R6,改走R1->R2->R4->R5
ip prefix-list 192_5 seq 5 permit 192.168.5.5/32
!
route-map RM_192_5 permit 10
match ip address prefix-list 192_5
set as-path prepend 65400 65400 65444
router bgp 65400
neighbor 10.36.1.1 route-map RM_192_5 out
校验
- 在R3上确认路由,走R6 的Path 发生变化,最佳路径开始走R1

- 同时在R1上,到192.168.5.5 只剩下了走R2的1条路由

建议
no bgp default ipv4-unicast
address-family ipv4
neighbor 10.12.1.2 activate