[c-nsp] C10K - CEF per packet load sharing inside VRF in 12.0(S) ?
Rodney Dunn
rodunn at cisco.com
Thu Mar 1 16:00:20 EST 2007
This should work I think.
I remember an old bug fixed back in 12.0(23)S2 timeframe around this:
CSCdy23609 pplb on VRF interfaces not working
Can you open a TAC case on it?
On Wed, Feb 28, 2007 at 12:27:49AM -0000, David Freedman wrote:
>
> I seem unable to perform CEF per-packet load sharing within
> a VRF on this particular box.
>
> The only striking thing about it is that it is a C10K and running 12.0(S).
> I found a document at
>
> http://www.cisco.com/univercd/cc/td/doc/product/software/ios124/124cg/hmp_c/
> part20/mpbkvplb.htm#wp1076346
>
> which seems to claim that such things are unsupported in 12.0S where TFIB
> architecture (forwarding?) is being used but I am using LDP (LFIB) instead
> and assumed that this does not apply (unless wording assumes both?)
>
> If this is the case then please somebody nudge me so , otherwise
> the full gory details are below:
>
>
>
>
>
> Architecture:
> -------------
>
> C1008 with dual PRE-1, dual ch4OC3 cards and dual GigE cards.
> GigE forms PE->P links and 4OC3 cards form PE->CE links.
>
>
> Version:
> --------
>
> # sh ver
>
> Cisco Internetwork Operating System Software
> IOS (tm) 10000 Software (C10K-K4P10-M), Version 12.0(30)S4, RELEASE SOFTWARE
> (fc1)
>
> Config:
> ------
>
> (IF A)
>
> !
> interface Se4/0/1.1/1/2/2:0.200
> desc Interface A to CE router
> ip vrf forwarding ABCD
> ip address 10.44.34.57 255.255.255.252
> ip load-sharing per-packet
> !
>
> #sh cef int Se4/0/1.1/1/2/2:0.200 | in CEF
> IP Distributed CEF switching enabled
> IP VPN CEF switching turbo vector
>
> (IF B)
>
> !
> interface Se4/0/1.1/1/2/3:0.200
> desc Interface B to CE router
> ip vrf forwarding ABCD
> ip address 10.44.34.53 255.255.255.252
> ip load-sharing per-packet
> !
>
> #sh cef int Se4/0/1.1/1/2/3:0.200 | in CEF
> IP Distributed CEF switching enabled
> IP VPN CEF switching turbo vector
>
> Static routes:
> --------------
>
> #sh run | in 10.9.4.0
>
> ip route vrf CLUK10106 10.9.4.0 255.255.252.0 10.44.34.58
> ip route vrf CLUK10106 10.9.4.0 255.255.252.0 10.44.34.54
>
> RIB:
> ---
>
> #sh ip ro vrf ABCD 10.9.4.1
> Routing entry for 10.9.4.0/22
> Known via "static", distance 1, metric 0
> Redistributing via bgp 1234
> Advertised by bgp 1234
> Routing Descriptor Blocks:
> * 10.44.34.58
> Route metric is 0, traffic share count is 1
> 10.44.34.54
> Route metric is 0, traffic share count is 1
>
> CEF Data:
> --------
>
> #sh ip cef vrf ABCD 10.9.4.0
>
> 10.9.4.0/22, version 465, epoch 0, per-packet sharing
> 0 packets, 0 bytes
> tag information set, all rewrites owned
> local tag: 483
> via 10.44.34.58, 0 dependencies, recursive
> traffic share 1, current path
> next hop 10.44.34.58, Serial4/0/1.1/1/2/2:0.200 via 10.44.34.56/30
> (ABCD)
> valid adjacency
> tag rewrite with Se4/0/1.1/1/2/2:0.200, point2point, tags imposed {}
> via 10.44.34.54, 0 dependencies, recursive
> traffic share 1
> next hop 10.44.34.54, Serial4/0/1.1/1/2/3:0.200 via 10.44.34.52/30
> (ABCD)
> valid adjacency
> tag rewrite with Se4/0/1.1/1/2/3:0.200, point2point, tags imposed {}
> 0 packets, 0 bytes switched through the prefix
> tmstats: external 0 packets, 0 bytes
> internal 0 packets, 0 bytes
>
> Internal CEF Data:
> ------------------
>
> #sh ip cef vrf ABCD 10.9.4.0 internal
> 10.9.4.0/23, version 47, epoch 0, per-packet sharing
> 0 packets, 0 bytes
> tag information set, all rewrites owned
> local tag: 483
> via 10.44.34.58, 0 dependencies, recursive
> traffic share 1, current path
> next hop 10.44.34.58, Serial4/0/1.1/1/2/2:0.200 via 10.44.34.56/30
> (ABCD)
> valid adjacency (0x6902E3A0)
> tag rewrite with Se4/0/1.1/1/2/2:0.200, point2point, tags imposed {}
> via 10.44.34.54, 0 dependencies, recursive
> traffic share 1
> next hop 10.44.34.54, Serial4/0/1.1/1/2/3:0.200 via 10.44.34.52/30
> (ABCD)
> valid adjacency (0x6902E0A0)
> tag rewrite with Se4/0/1.1/1/2/3:0.200, point2point, tags imposed {}
>
> 0 packets, 0 bytes switched through the prefix
> tmstats: external 0 packets, 0 bytes
> internal 0 packets, 0 bytes
> Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 1)
> Tags distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (addr 69A66D18)
>
> Hash OK Interface Address Packets Tags imposed
> 1 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 2 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 3 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 4 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 5 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 6 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 7 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 8 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 9 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 10 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 11 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 12 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 13 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 14 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
> 15 Y Serial4/0/1.1/1/2/2:0.200 point2point 0 none
> 16 Y Serial4/0/1.1/1/2/3:0.200 point2point 0 none
>
>
> CEF Tests:
> ----------
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/2:0.200 (next hop
> 10.44.34.58)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/3:0.200 (next hop
> 10.44.34.54)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/2:0.200 (next hop
> 10.44.34.58)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/3:0.200 (next hop
> 10.44.34.54)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/2:0.200 (next hop
> 10.44.34.58)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/3:0.200 (next hop
> 10.44.34.54)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/2:0.200 (next hop
> 10.44.34.58)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/3:0.200 (next hop
> 10.44.34.54)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/2:0.200 (next hop
> 10.44.34.58)
>
> #sh ip cef vrf ABCD exact-route 10.44.254.18 10.9.4.1
> 10.44.254.18 -> 10.9.4.1 : Serial4/0/1.1/1/2/3:0.200 (next hop
> 10.44.34.54)
>
>
>
> Actual Experience:
> ------------------
>
> $ traceroute-nanog -n 10.9.4.1
> traceroute to 10.9.4.1 (10.9.4.1), 64 hops max, 40 byte packets
> 1 10.44.254.28 1 ms 0 ms 0 ms
> 2 10.44.34.53 [MPLS: Label 483 Exp 0] 1 ms 1 ms 1 ms
> 3 10.9.4.1 4 ms 3 ms 3 ms
>
> $ traceroute-nanog -n 10.9.4.1
> traceroute to 10.9.4.1 (10.9.4.1), 64 hops max, 40 byte packets
> 1 10.44.254.28 1 ms 0 ms 0 ms
> 2 10.44.34.53 [MPLS: Label 483 Exp 0] 1 ms 1 ms 1 ms
> 3 10.9.4.1 4 ms 3 ms 3 ms
>
> $ traceroute-nanog -n 10.9.4.1
> traceroute to 10.9.4.1 (10.9.4.1), 64 hops max, 40 byte packets
> 1 10.44.254.28 1 ms 0 ms 0 ms
> 2 10.44.34.53 [MPLS: Label 483 Exp 0] 1 ms 1 ms 1 ms
> 3 10.9.4.1 4 ms 3 ms 3 ms
>
>
> >From PE itself:
>
> #ping vrf ABCD 10.9.4.1
>
> Type escape sequence to abort.
> Sending 5, 100-byte ICMP Echos to 10.9.4.1, timeout is 2 seconds:
> !!!!!
> Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms
>
> Feb 27 21:32:49: ICMP: echo reply rcvd, src 10.9.4.1, dst 10.44.34.57
> Feb 27 21:32:49: ICMP: echo reply rcvd, src 10.9.4.1, dst 10.44.34.57
> Feb 27 21:32:49: ICMP: echo reply rcvd, src 10.9.4.1, dst 10.44.34.57
> Feb 27 21:32:49: ICMP: echo reply rcvd, src 10.9.4.1, dst 10.44.34.57
> Feb 27 21:32:49: ICMP: echo reply rcvd, src 10.9.4.1, dst 10.44.34.57
>
>
> Many thanks,
>
> David Freedman
>
>
>
>
>
>
>
>
>
>
>
>
> _______________________________________________
> cisco-nsp mailing list cisco-nsp at puck.nether.net
> https://puck.nether.net/mailman/listinfo/cisco-nsp
> archive at http://puck.nether.net/pipermail/cisco-nsp/
More information about the cisco-nsp
mailing list