[c-nsp] C10K - CEF per packet load sharing inside VRF in 12.0(S) ?

David Freedman david.freedman at uk.clara.net
Tue Feb 27 20:29:54 EST 2007


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/hm
p_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














More information about the cisco-nsp mailing list