拓扑

步骤
第1部分
- R1、R2、R3 分属1个AS
- R1 和 R2 之间跑EIGRP、OSPF、BGP 3种协议,注意不要用 lazy 配置方式
router eigrp 100
network 10.12.1.0 0.0.0.255
!
router ospf 100
network 10.12.1.0 0.0.0.255 area 0
network 192.168.1.1 0.0.0.0 area 0
!
router bgp 65100
bgp log-neighbor-changes
neighbor 10.12.1.2 remote-as 65100
!
- R1 上增加1个 Lo1 - 192.168.1.2,并在ospf 中执行重分布 redistribute connected subnets。到R2 上观察
- 非BGP,重分布进OSPF的默认类型是E2,Metric 是20
- 192.168.1.1 的cost 为102,是因为我们设置了R2的G0/0 cost 为101

- 现在到R1,把OSPF 重分布进去BGP,看BGP是否会收到192.168.1.2 —— 结果:没有。证明了在1台Router上,重分布不能穿越、跨越

- 我们直接在BGP中进行重分布,可以看到192.168.1.2 的路由有显示 —— 其他协议重分布进入BGP,Weight 被设置为32768

- 因为R1、R2、R3 之间配置了eBGP,我们到R3上查看路由,可以看到R3 收到了192.168.1.2 的路由。证明在不同Router之间,重分布是可以穿越的 —— 这个结论是对的,但是课程这个过程有问题,R3 收到的路由是BGP-BGP-BGP这样的路径,并不是是Static-OSPF - OSPF - BGP -BGP 这样的
- 重新捋了下思路,只要在R1 A协议重分布进B协议,在R2上 B协议重分布进C协议,在R3的C协议上有收到,其实就能证明路由重分布在不同Router之间是可以穿越的
- 那需要做的就是
- 在R1 和 R2之间断开BGP,只跑OSPF
- 在R1 的OSPF里 redistribute connected
- 在R2 的BGP里 redistribute OSPF,需要加上 match external 2 参数
- R2和R3之间只跑BGP
- 然后到R3上查看路由
第2部分
- R1 通过OSPF network 命令宣告Lo 192.168.1.2,R2通过OSPF学到。在R2的BGP上执行 redistribute ospf 100,到R3上确认路由。可以看到,其他协议重分布进BGP的时候,Metric保留为原IGP Metric

第3部分 Mutual Redistribution
- R3上在BGP中宣告Lo0,确保R2有学习到,R1没有(需要断开R1和R2的BGP)
- 在R2的 OSPF里,将BGP路由redistribution。然后到R1上查看路由,可以学习到R3 的Lo0,Metric为1 —— BGP 重分布进OSPF,Metric为1

第4部分 Seed Metric
- 前面我们已经交叉看了一些相关的Metric,我们再来看下 redistribute 进 EIGRP 时的Metric变化。在R3 和 R4 之间构建EIGRP。 然后在R3 的EIGRP中,将通过BGP 学到的路由进行重分布。 可以看到,在redistribute bgp 65300 不带任何参数执行后,R4没有收到任何路由 —— 因为此时的Metric被设为无限大,不会进入到路由表。我们修改了重分布携带的metric 参数(5个K值)之后,可以看到R4 成功地学到了路由
- 注意,被重分布的除了2条通过BGP学到的理由,还有192.168.3.3
