拓扑

实验02 - Community  No-Export - 图1

步骤

  • 按照如图配置IP地址,BGP
  • R1 上 network 宣告2个Lo
  • R2、R5配置对下游Router 的 next-hop-self
  • R2收到宣告,修改next hop 为自己的G0/1 10.23.1.2 并继续对外发送。
  • R3收到,确认10.23.1.2 可达,将2条路由写入路由表,并继续对外发送。
  • R4收到,发现10.23.1.2 不可达,路由的传播停止
  • 如何使得后续的R5、R6、R7能够收到R1宣告的2个环回地址。实践可行的2个办法
    • 方法1:在R4、R5上增加去往10.23.1.2 的静态路由
    • 方法2:在R3、R4上都增加对下游Router 的 next-hop-self. 这个实验里R2、R3、R4、R5、R6 都是边界Router,所以可以使用 next-hop-self. 如果不是边界Router,next-hop-self 不生效
  • 在R1上修改route-map ,改为set community no-export。需要特别注意的是,community 是默认不对外宣告的,所以需要在R2 到R5 上,针对所有的下游链路设置 send-community

实验02 - Community  No-Export - 图2

  • R6 不需要对R7 设置 send-community,需要确保收到的 192.168.1.2 条目中包含了 no-export 信息,如下图

实验02 - Community  No-Export - 图3

  • 此时在R7上,将不再展示192.168.1.2 的路由

实验02 - Community  No-Export - 图4

发现

  • Confederation 内部的 sub-as 之间不存在 iBGP 的关系,在R3 上试图将R4 设置为RR Client,提示无效。

实验02 - Community  No-Export - 图5

  • 但是Confederation 内部的 sub-as 之间,R2带上的 next-hop 10.23.1.2 却可以一直传递
  • Confederation 内部的 sub-as 之间