带有聚合标签的前缀未在MPLS核心上完全跟踪


9

我有两个路由器,A(Cat6500 w / SUP720-3BXL,IOS 12.2(33)SXH4)和B(Nexus 7K w / SUP1,NX-OS 5.2(4)),它们在MPLS核心上被几跳隔开,每跳VRF ABC。路由器A在此VRF中具有两条直接连接的路由和四条静态路由。

RouterA# show ip bgp vpnv4 vrf ABC labels
   Network          Next Hop      In label/Out label
Route Distinguisher: 65000:123 (ABC)
   10.30.10.0/24    10.30.200.1     154/nolabel
   10.30.20.0/24    10.30.200.1     88/nolabel
   10.30.30.0/24    10.30.200.1     38/nolabel
   10.30.40.0/24    10.30.200.1     147/nolabel
   10.30.200.0/24   0.0.0.0         IPv4 VRF Aggr:95/nolabel(ABC)
   10.90.90.0/24    0.0.0.0         IPv4 VRF Aggr:95/nolabel(ABC)
   10.133.242.0/25  192.168.255.3   nolabel/17
   10.133.242.128/26
                    192.168.255.3   nolabel/18
   10.255.255.224/29
                    192.168.255.3   nolabel/492474

每个路由器上的此VRF使用前缀标记。请注意,两个直接连接的路由收到一个共享的聚合标签(95),而四个静态路由每个都收到一个唯一的标签。

路由器B同意使用VPN标签:

RouterB# show bgp vpnv4 unicast labels vrf ABC
BGP routing table information for VRF default, address family VPNv4 Unicast
BGP table version is 17042469, local router ID is 192.168.255.3
Status: s-suppressed, x-deleted, S-stale, d-dampened, h-history, *-valid, >-best
Path type: i-internal, e-external, c-confed, l-local, a-aggregate, r-redist
Origin codes: i - IGP, e - EGP, ? - incomplete, | - multipath

   Network            Next Hop            In label/Out label
Route Distinguisher: 65000:123     (VRF ABC)
*>i10.30.10.0/24      172.26.64.1         nolabel/154
*>i10.30.20.0/24      172.26.64.1         nolabel/88
*>i10.30.30.0/24      172.26.64.1         nolabel/38
*>i10.30.40.0/24      172.26.64.1         nolabel/147
*>i10.30.200.0/24     172.26.64.1         nolabel/95
*>i10.90.90.0/24      172.26.64.1         nolabel/95
*>l10.255.255.224/29  0.0.0.0             492474/nolabel (ABC)

从路由器B,我可以毫无问题地跟踪路由到路由器A上的两个直接连接的网络:

RouterB# traceroute 10.30.200.10 vrf ABC
traceroute to 10.30.200.10 (10.30.200.10), 30 hops max, 40 byte packets
 1  192.168.254.97 (192.168.254.97) (AS 65000)  19.226 ms  19.369 ms  19.079 ms
      [Label=63 E=0 TTL=1 S=0, Label=95 E=0 TTL=1 S=1]
 2  192.0.2.151 (192.0.2.151) (AS 65000)  23.309 ms  28.027 ms  18.977 ms
      [Label=39 E=0 TTL=1 S=0, Label=95 E=0 TTL=2 S=1]
 3  192.168.251.62 (192.168.251.62) (AS 65000)  21.576 ms  24.265 ms  21.503 ms
      [Label=59 E=0 TTL=1 S=0, Label=95 E=0 TTL=1 S=1]
 4  10.30.200.10 (10.30.200.10) (AS 65000)  19.155 ms *  19.414 ms

但是,到所有静态学习路由的traceroute会在MPLS路径上超时,并且仅在它们的最后一跳才恢复:

RouterB# traceroute 10.30.10.10 vrf ABC
traceroute to 10.30.10.10 (10.30.10.10), 30 hops max, 40 byte packets
 1  * * *
 2  * * *
 3  * * *
 4  10.30.200.10 (10.30.200.10) (AS 65000)  19.065 ms  19.281 ms  18.68 ms
      [Label=154 E=0 TTL=1 S=1]
 5  10.30.10.10 (10.30.10.10) (AS 65000)  19.420 ms  19.377 ms  19.73 ms

上面的两个跟踪路由都应遵循完全相同的路径,并且沿途没有过滤机制。同样的事情也发生在相反的方向。我想念什么?在MPLS /标签转发方面,通过直接连接学习到的BGP路由与静态配置之间有什么区别?


话题错了吗?看起来聚合标签traceroute很好,普通标签不是吗?这是什么平台?是否已针对TTL隐藏或其他任何特定命令进行了配置?在VPN中,traceroute总是在生成TTL超出值之前通向出口PE,因此出于某些原因,对于非聚合标签,您实际上并没有生成TTL超出值。
ytti 2013年

更新了问题以反映平台(IOS和NX-OS)。
杰里米·舒尔特

硬件也应理解,在MPLS环境中处理TTL递减时sup720-3bxl具有硬件限制。您是双向还是单向都遇到问题?
ytti 2013年

静态学习的路由也会发生相反的情况。路由器A正在运行SUP720-3BXL;能否详细说明您提到的限制?
Jeremy Stretch

不幸的是,更多地思考sup720-3blx(或者确切地说是PFC3B,PFC3C是固定的)问题并不能解释这一点。从那时起,您将只完全错过traceroute中的出口PE(无星号)。而且在两个方向上都不会出现相同的问题,这让我最好奇,问题是从nexus7k到7600以及从76​​00到nexus7k怎么发生。
ytti 2013年

Answers:


9

聚合标签和普通标签之间的区别在于普通标签直接指向L2重写详细信息(接口和L2地址)。这意味着正常标签将由出口PE节点直接切换出标签,而无需进行IP查找。

相反,聚合标签可能表示许多不同的出口选项,因此L2重写信息不与标签本身关联。这意味着出口PE节点必须对数据包执行IP查找,以确定适当的L2重写信息。

为什么使用聚合标签而不是普通标签的典型原因是:

  1. 需要执行邻居发现(IPv4 ARP,IPv6 ND)
  2. 需要执行ACL查找(客户界面中的出口ACL)
  3. 在单个标签(表标签)下运行整个VRF

其中一些限制(尤其是2个)并非对所有平台都有效。

传输P在MPLS VPN环境中如何影响traceroute,当生成TTL超出消息时,将不知道如何返回(它没有到发送者的路由表条目)。因此,传输P节点将一直将带有原始标签栈的TTL超出消息发送到出口PE节点,以希望出口PE注释具有如何将TTL超过消息返回给发送方的想法。
此功能在Cisco IOS中自动启用,但需要在Juniper JunOS中配置“ icmp-tunneling”。

基于此,我怀疑您的CE设备可能在源地址为P节点链接网络时不接受数据包,并且由于它们不接受ICMP消息,因此无法将其返回给发送方。
对该理论进行可能的测试方法是启用每个vrf标签:

  • iOS:mpls标签模式all-vrfs协议bgp-vpnv4 per-vrf
  • JunOS:设置路由实例FOO vrf-table-label

一般来说,我不建议传播TTL,尤其是在VPN环境中,至少在我们这种情况下,客户会对此感到困惑和焦虑。他们担心为什么他们的VPN会显示外部地址。

另一个使人们产生混乱的原因是,他们正在运行从英国到美国的跟踪路由,因为他们看到英国的两个核心路由器之间的延迟大于100毫秒,而没有意识到整个路径具有相同的延迟一直到美国西海岸,因为所有小包都从那里绕道而行。

这个问题在设计上通常是无法修复的,但是在IOS中,可以确定生成TTL时最多可以弹出多少个标签(mpls ip ttl-expiration pop N)。如果INET == 1标签,VPN ==> 1标签,这将为您提供一个不错的近似值,因此您可以对其进行配置,以使VPN流量通过隧道传输并且INET流量直接返回而无需出口PE节点绕行。但是正如我所说,这只是所需功能的近似值,因为运输途中维修之类的功能可能会导致同一服务的标签堆栈大小不总是相同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.