拓扑

实验01 - Redistribution  Basic - 图1

步骤

第1部分

  • R1、R2、R3 分属1个AS
  • R1 和 R2 之间跑EIGRP、OSPF、BGP 3种协议,注意不要用 lazy 配置方式
  1. router eigrp 100
  2. network 10.12.1.0 0.0.0.255
  3. !
  4. router ospf 100
  5. network 10.12.1.0 0.0.0.255 area 0
  6. network 192.168.1.1 0.0.0.0 area 0
  7. !
  8. router bgp 65100
  9. bgp log-neighbor-changes
  10. neighbor 10.12.1.2 remote-as 65100
  11. !
  • 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

实验01 - Redistribution  Basic - 图2

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

实验01 - Redistribution  Basic - 图3

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

实验01 - Redistribution  Basic - 图4

  • 因为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

实验01 - Redistribution  Basic - 图5

第3部分 Mutual Redistribution

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

实验01 - Redistribution  Basic - 图6

第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

实验01 - Redistribution  Basic - 图7