JunOS iBGP 和返回路径奇怪的行为

网络工程 路由 路由器 bgp 杜松 瞻博网络
2021-08-04 14:20:16

我有一个有点基本的 iBGP 配置,在两个 Juniper vSRX 之间有一个“全局”路由实例- 每个 Juniper vSRX 都有自己的上行链路,来自不同的传输提供商,具有默认路由。在IBGP的路由实例“全球性”的作品如预期,未能在两者之间超过好听。

但是,当添加另一个路由实例时,假设“client-1”具有默认路由和“global.inet.0”流量的下一个表,在通过另一个 vSRX 进入或离开时不会流动。

出站有点好,因为我可以对通过 iBGP 和本地传输的路由设置相同的优先级,但显然入站超出了我的控制 - 所以在下面的示例中,如果传输 2 是我的入站路由 1.2.3.4 将无法 ping 通但 1.2.3.5 会。

例子

我已经检查了基本信息,例如安全区域上的主机入站节、启用全局 ping 等。

当 ping 1.2.3.4 并且传输 2 是示例中的入站路由时,vSRX 1 可以看到 ping 数据包到达(正确的位置),但没有给出 ICMP 响应:

vsrx2# run show security flow session destination-prefix 1.2.3.4/32    
Session ID: 289005, Policy name: self-traffic-policy/1, Timeout: 6, Valid
  In: home.ip/2103 --> 1.2.3.4/31;icmp, Conn Tag: 0x0, If: ge-0/0/2.203, Pkts: 1, Bytes: 60, 
  Out: 1.2.3.4/31 --> home.ip/2103;icmp, Conn Tag: 0x0, If: .local..7, Pkts: 0, Bytes: 0, 
Total sessions: 1

有趣的是,在这种情况下,vSRX 1 上的环回位于“全局”路由实例中,路由在 via Transit 2 中是可访问的。

知道为什么 ping 数据包到达正确的位置,但没有得到响应吗?

1个回答

出站流量正在使用您的next-table策略在隔离的路由实例之间跳跃- 您是否有返回路由到 1.2.3.0/26 inet.0in vsrx2(反之亦然)next-table client-1.inet.0您是否有vsrx2下一跳为 1.2.3.4 的更具体的路由vsrx1

否则,我认为这不会奏效——特别是对于 SRX 接口地址——如果我没记错的话,返回的流量vsrx2将看到1.2.3.0/26带有下一个表的静态路由client-1.inet.0并尝试在本地出口(这将打破流程)。

我对你的流输出有点困惑vsrx2- 根据你的图表,1.2.3.4是 on vsrx1,但流输出说它来自vsrx2并显示了一个返回接口local(表明目标地址 1.2.3.4 是一个拥有的 IP vsrx2) - 我希望看到vsrx2之间的逻辑接口vsrx1