拓扑

前置配置 - 图1

配置

  • 如图配置各接口IP和BGP。从R11 上用network 命令宣告2个Lo。
  • 此时可以看到即使R2设置了到R3 的 next-hop-self,但这2条路由到R3就停止了,R3没有再继续向R4 宣告任何路由。R2会给R3,但R3不会给R4,需要解决R3 给R4 的问题 —— 除了解决给的问题,对方还需要解决可达的问题,因为给你的不一定你可达
    • show ip bgp ipv4 unicast neighbors 10.34.1.4 advertise-routes
    • 为什么:从iBGP 收到的路由不能再发给iBGP
    • 怎么解决:要么构建Full Mesh,要么使用 RR
  • 我们在65100里来使用RR,在65300里来使用Full Mesh,解决Confederation内部路由传递的问题

前置配置 - 图2

  • 在AS65100里,我们把R4 设置成R3的RR Client。这样满足了RR的 Rule1 —— 从 non-RR 即R2 收到的路由,会发给RR Client。之后可以看到R4 顺利收到了路由

前置配置 - 图3

  • 但是 !!!!!!!!!!!! R3 传过来的路由中 next hop 10.23.1.2 ,对于R4来说不可达,所以R4 依然不具备向后传递的条件。即使在R3 上设置了 neighbor 10.34.1.4 next-hop-self,对R4来说也是无效 —— 这里是1个新的发现和确认,next-hop-self 只在AS的边界路由器上生效

前置配置 - 图4

  • 在65100 内跑IGP肯定是可以解决问题的,但看起来必要性不大。待定我们先来跑1个R4 上的静态路由试试。可以看到R5收到了路由,但是R5也不具备向后传递的条件,R5上看到的下一跳地址仍然是10.23.1.2,对于R5来说是不可达的

前置配置 - 图5

  • 我们在R4 向R5 的链路上设置 next-hop-self ,此时R5上正常,可以向R6 传递。

前置配置 - 图6

  • 但是R6 看到的下一跳地址是10.45.1.4,对于R6来说也是不可达。我们来调整R5到R6 的 next-hop-self,实现R6正常如图,此时下一跳地址变为10.56.1.5

前置配置 - 图7

  • 此时R6 向R7 传递,R7看到的 next-hop 是10.56.1.5. 所以需要在R6 到 R7 链路上也设置 next-hop-self,然后R7正常,看到的下一跳变为 10.67.1.6

前置配置 - 图8

  • 此时R7 到 R8的链路,又遇到了和前面R3 到R4一样的问题,R7上满足向后传递的条件,但不会发给R8.我们在R6、R7、R8 所在的 65300 内来跑Full Mesh,这里还需要1个前提是底层IGP需要先建立起来,如果环境相对简单,就没有静态路由方便。—— 我们跑1个RIP,然后配基于环回接口的Full Mesh

前置配置 - 图9

  • 在Full mesh 构建完成后,R8即收到来自R6 的通告如图

前置配置 - 图10

  • R8 满足传播条件,向R9 通告路由。因为是从1个AS 到另1个 AS,所以next hop 变成R8自己的接口地址,R9 学到这条路由的AS路径是 50 - 100 - 200

前置配置 - 图11

  • R9 满足传播条件,向R12 通告,R12 正常收到

前置配置 - 图12