实验 6X15 - CCNP Mutual  Redistribution @David - 图1

如何制造环路

  • 环路的原因:1个网段从EIGRP 重分布进入了 OSPF,边界路由中路由类型为O,然后又从OSPF 重分布进了EIGRP —— 双向重分布
  • 重分布能够成功的1个前提是,被重分布的路由协议,和该路由被学到的路由协议一致
    • —— O E2 的AD值,要优于 D EX 的路由,如果对 D EX 重分布,需要保证没有O E2的路由进来
  • 上图拓扑中
    • R11的Lo0(11.11.11.11) 通过在EIGRP中 redistribute connect发布,确保在R1 上的路由类型为 D EX
    • 虚线左侧配置EIGRP,虚线右侧配置OSPF
    • R4的G0/0 先shutdown —— 这一步很重要
    • 然后在R2、R4 配置OSPF <-> EIGRP 的重分布
    • R2 会通过D EX 学习到 11.11.11.11 ,然后重分布进入 OSPF,R3 通过 O E2 学习到11.11.11.11,进而R4也通过O E2学习到了11.11.11.11
    • 开启R4 G0/0,因为R4的EIGRP做了对OSPF的重分布,而且11.11.11.11 确实是从OSPF学习到的 —— 所以重分布生效,R1 会收到来自R4 的11.11.11.11 宣告 —— 对于R1来说,从R11学到的11.11.11.11 AD 是170,Metric 是130816,而从R4 学到的路由 AD是170,Metric是3072,于是从R4学到的路由成为最优,进入路由表 —— 于是环路形成
      • 在Metric设置恰当的情况下,还会出现EIGRP的 非等价路由 现象。 即同时显示走R1 和 R4 的路径。—— 最简单的实现方式,在R11 上做静态路由重分布时也使用相同的Metric 参数 : redistribute connected metric 1000000 1 255 255 1500
      • 关于Metric的计算,请参考 Redistribution Into Eigrp

实验 6X15 - CCNP Mutual  Redistribution @David - 图2

  1. - 假如没有对R4 G0/0 shutdown/ no shutdown 操作,R411.11.11.11 也会是从D EX 学习到,最终在R3 形成2OSPF 的等价路由

实验 6X15 - CCNP Mutual  Redistribution @David - 图3

如何避免环路

  • 对来自内、外不同区域的路由,进行Route Tag
  • 然后在R2、R4 对称地允许 和 拒绝
    • R2 对 OSPF->EIGRP 设置Tag10,同时拒绝Tag20的路由
    • R4 对 OSPF->EIGRP 设置Tag20,同时拒绝Tag10的路由
    • 这样就避免了将R1-R2-R4的路由,再通过R4发出
  1. R2(config-router)#do show run | b router eigrp
  2. router eigrp 100
  3. network 10.12.1.0 0.0.0.255
  4. redistribute ospf 1 metric 1000000 1 255 255 1500 route-map OSPF->EIGRP
  5. !
  6. router ospf 1
  7. redistribute eigrp 100 subnets route-map EIGRP->OSPF
  8. network 2.2.2.2 0.0.0.0 area 0
  9. network 10.23.1.0 0.0.0.255 area 0
  10. !
  11. route-map EIGRP->OSPF deny 10
  12. match tag 20
  13. !
  14. route-map OSPF->EIGRP permit 10
  15. set tag 10
  16. !
  17. R4(config-route-map)#do show run | b router eigrp
  18. router eigrp 100
  19. network 10.14.1.0 0.0.0.255
  20. redistribute ospf 1 metric 1000000 1 255 255 1500 route-map OSPF->EIGRP
  21. !
  22. router ospf 1
  23. redistribute eigrp 100 subnets route-map EIGRP->OSPF
  24. network 4.4.4.4 0.0.0.0 area 0
  25. network 10.34.1.0 0.0.0.255 area 0
  26. !
  27. route-map EIGRP->OSPF deny 10
  28. match tag 10
  29. !
  30. route-map OSPF->EIGRP permit 10
  31. set tag 20
  32. !
  • 效果,R2的EIGRP 中的重分布路由只剩下了Tag为10的

实验 6X15 - CCNP Mutual  Redistribution @David - 图4

  • EIGRP 的特别之处,从D 直接学到的 AD是90, 从 D EX(重分布) 学到的路由是170。 而 OSPF 从O 和 O E2 学到的路由的AD 都是110,但是Metric不同,后者默认是20

这种情况只发生在 OSPF 进 EIGRP吗,EIGRP 进OSPF不会发生?

  • 我们把R4 的 G0/1 端口断掉,此时R4 会通过左侧R1学习到 D EX的去往R33 —— 33.33.33.33 的路由。再将G0/1 恢复,R4会学习到 AD为110 的来自R3 的OSPF 路由,从而导致R4 上 对EIGRP的重分布失效
  • 重述1遍,当前处于路由表中的路由条目的AD值,以及新学到的路由条目的AD值,是影响环路是否可以形成的关键因素

实验 6X15 - CCNP Mutual  Redistribution @David - 图5