[c-nsp] Bizarre MPLS label problem, hex value?
Oliver Boehmer (oboehmer)
oboehmer at cisco.com
Mon Feb 18 01:51:36 EST 2008
Nathan <> wrote on Monday, February 18, 2008 12:59 AM:
> Hi,
>
> I've tried all the MPLS troubleshooting docs I've been able to find,
> and hard resets of BGP sessions, but I must be missing something.
>
> I have four routers in a row, A B C D, I want packets to go inside a
> VRF from A to D. Packets travel from B to D without any problem, but
> not from A to D. My problem is general over all the VRFs I have
> tested. I've chosen as example a vrf in which all the routers
> concerned have interfaces (so they're all PE routers . . . that's not
> a problem, is it?)
No, it's not. B and C will act as "P" routers for an LSP from A to D.
> A#sh ip cef vrf ${vrf} 0.0.0.0 0.0.0.0
> 0.0.0.0/0, version 109, epoch 0, cached adjacency ${B as seen
> from A} 0 packets, 0 bytes
> tag information set
> local tag: VPN-route-head
> fast tag rewrite with
> Recursive rewrite via ${D loopback} 0x20, tags imposed
> {413} via ${D loopback}, 0 dependencies, recursive
> next hop ${B as seen from A}, GigabitEthernet0/1.7 via ${D
> loopback}/32 valid cached adjacency
> tag rewrite with
> Recursive rewrite via ${D loopback} 0x20, tags imposed
> {413}
>
> What does that 0x20 mean??
I don't know offhand, but in order to proceed, you need to follow the
recursion to find out the outer (IGP/LDP) label of the packet. The "413"
shown above is the vpn label received via MBGP.
A seems to have multiple paths to D, so the final label stack will be
determined at "run-time".
Please do "show ip cef ${D loopback}" on A to find out.
>
> I would have expected something like what I get when I try the same
> diagnostics starting from router B :
>
> B#sh ip cef vrf ${vrf} 0.0.0.0 0.0.0.0
> 0.0.0.0/0, version 105, epoch 0, cached adjacency ${C as seen
> from B} 0 packets, 0 bytes
> tag information set
> local tag: VPN-route-head
> fast tag rewrite with Fa6/0, ${C as seen from B}, tags
> imposed: {396 413}
> via ${D loopback}, 0 dependencies, recursive
> next hop ${C as seen from B}, FastEthernet6/0 via ${D
> loopback}/32 valid cached adjacency
> tag rewrite with Fa6/0, ${C as seen from B}, tags imposed:
> {396 413}
B only has a single IGP path to D, so the full label stack is printed.
> C#sh mpls forwarding-table labels 396
> Local Outgoing Prefix Bytes tag Outgoing Next
> Hop tag tag or VC or Tunnel Id switched interface
> 396 Pop tag ${D loopback}/32 157406938041 Fa1/0 ${D
> seen from C}
>
> D#sh mpls forwarding-table labels 413
> Local Outgoing Prefix Bytes tag Outgoing Next
> Hop tag tag or VC or Tunnel Id switched interface
> 413 Untagged 0.0.0.0/0[V] 1076956933 Fa0/0.12
> 192.168.12.4
>
> If I understand correctly, the MPBGP session between A and D is
> OK, but something is stopping A from learning the local tag on
> B . . . the local tag that I would have expected to see instead of
> VPN-route-head when I did the sh ip cef on B.
As explained above: A looks to have multiple IGP paths, so you need to
do the recursion yourself and verify all possible paths.
oli
More information about the cisco-nsp
mailing list