[j-nsp] Weird traceroute across MPLS core using labeled-unicast IBGP

Daniel Roesen dr at cluenet.de
Sun Mar 7 23:15:16 EST 2004


Hi,
                                                                                
I'm having weird results with JunOS 6.2 traceroutes across an LDP/MPLS
lab setup.
                                                                                
  A1
    \
     +--B--C--D -- 10.0.0.1/30
    /
  A2
                                                                                
A1, B, C, D are JunOS 6.2R1.5
A2 is IOS 12.2(18)S3
                                                                                
The network is running IS-IS, LDP and IBGP using labeled(!)-unicast.
MPLS TTL propagation is active. 10.0.0.1/30 is an IP attached to a
looped interface on router D and exported to IBGP (labeled).
                                                                                
RIB/FIBs:
                                                                                
A1:
10.0.0.0/30  *[BGP/170] 00:05:12, localpref 100, from 192.168.0.5
                AS path: I
              > to 192.168.0.46 via ge-0/0/0.100, Push 100176, Push
              > 100064(top)
                                                                                
A2#sh ip bg 10.0.0.1
BGP routing table entry for 10.0.0.0/30, version 4
Paths: (1 available, best #1, table Default-IP-Routing-Table)
  Not advertised to any peer
  Local, (received & used)
    192.168.0.5 (metric 30) from 192.168.0.5 (192.168.0.5)
      Origin IGP, localpref 100, valid, internal, best,
      mpls labels in/out unknown/100176
                                                                                
A2#sh ip cef 10.0.0.1
10.0.0.0/30, version 47, epoch 0, cached adjacency 192.168.0.53
0 packets, 0 bytes
  tag information set, all rewrites owned
    local tag: BGP route head
    fast tag rewrite with Fa3/1/1, 192.168.0.53, tags imposed: {100064
100176}
  via 192.168.0.5, 0 dependencies, recursive
    next hop 192.168.0.53, FastEthernet3/1/1 via 192.168.0.5/32
    valid cached adjacency
    tag rewrite with Fa3/1/1, 192.168.0.53, tags imposed: {100064
100176}
                                                                                
So both routers A1 and A2 have basically the same picture. Route
10.0.0.0/30 is reachable via MPLS, with inner label 10176 advertised
by PE router D.
                                                                                
But traceroutes are quite different.
                                                                                
Following a traceroute from A1:
                                                                                
 1  10.0.0.1 (10.0.0.1)  1.099 ms  0.825 ms  0.795 ms
     MPLS Label=100176 CoS=0 TTL=1 S=1
 2  10.0.0.1 (10.0.0.1)  0.799 ms  0.775 ms  0.754 ms
                                                                                
"Uhm?"
                                                                                
As a comparision, a beautiful (and looking as expected) traceroute
from A2:
                                                                                
  1 192.168.0.53 [MPLS: Labels 100064/100176 Exp 0] 0 msec 0 msec 0 msec
  2 192.168.0.58 [MPLS: Labels 100064/100176 Exp 0] 0 msec 4 msec 0 msec
  3 10.0.0.1 0 msec 0 msec 0 msec
                                                                                
A2 pushes label 100176 (inner, from labeled-unicast IBGP) and sends
the traceroute packets out towards B (192.168.0.53), further to
penultimate router C (192.168.0.58) to router D, who replies for
10.0.0.1 on so-0/2/0.0.
                                                                                
Turning off labeled-unicast in IBGP and using plain unicast NLRI,
traceroutes from A1 to D are looking as expected again:
                                                                                
traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets
 1  192.168.0.46 (192.168.0.46)  0.987 ms  0.796 ms  0.747 ms
     MPLS Label=100064 CoS=0 TTL=1 S=1
 2  192.168.0.58 (192.168.0.58)  0.926 ms  0.792 ms  0.810 ms
     MPLS Label=100064 CoS=0 TTL=1 S=1
 3  10.0.0.1 (10.0.0.1)  0.905 ms  0.764 ms  0.742 ms
                                                                                
So something is wrong(?) when the traceroute destination is reachable
via labeled-unicast. It looks like JunOS is doing something wrong
as traceroute source.
                                                                                
Do I overlook something? Is there any rational explanation for what
I'm seeing? Is that a bug? :-)


Best regards,
Daniel


More information about the juniper-nsp mailing list