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

Josef Buchsteiner josefb at juniper.net
Mon Mar 8 05:59:40 EST 2004


Daniel,
       this  is  coming from the fact that for local generated traffic
       we  put  TTL=255  in  the outermost label which is what you see
       here.  This  is an artifact from the old FPC where we could not
       write  into  the  second  label and on EFPC and onwards we can.
       Corrected  since  a few days, we check now what hardware we have
       underneath  and set the TTL and EXP values accordingly during a
       double push  operation. Again this is only for local generated
       traffic aka ping, traceroute and others in case of a double-push

       hope this helps
       Josef

Monday, March 8, 2004, 5:15:16 AM, you wrote:

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


DR> Best regards,
DR> Daniel
DR> _______________________________________________
DR> juniper-nsp mailing list juniper-nsp at puck.nether.net
DR> http://puck.nether.net/mailman/listinfo/juniper-nsp

 



More information about the juniper-nsp mailing list