[c-nsp] 6500/SRA: vpnv4 vs. equal-cost multipath ?
Alexandre Snarskii
snar at paranoia.ru
Mon Jan 21 13:15:25 EST 2008
Hi!
Summary: looks like IOS 12.2(33)SRA* can't handle vpnv4 routes
which comes from peer reachable via two equal paths.
May be it's known issue, just run into it and want to share experience..
Our topology is really simple,
RouterA -------- RouterB
| |
| |
RouterC -------- RouterD
all routers are 65xx/Sup720/PFC3BXL, IOS version on RouterA is 12.2(33)SRA3,
on RouterD - 12.2(33)SRA1, all links are 10ge (6704-based, if it matters)
with same ospf cost of 4.
Configuring simple MPLS/BGP VPN between RouterA and RouterD,
configuration is straightforward. But I was unable to ping
one router from another within VPN... :(
After some digging, i found that however RouterA knows vpnv4 route
from RouterD:
RouterA#show ip bgp vpnv4 vrf LOCAL 192.168.103.120
BGP routing table entry for MyAS:230:192.168.103.120/29, version 14208
Paths: (1 available, best #1, table LOCAL)
Not advertised to any peer
Local
RouterD.234 (metric 20) from RouterD.234 (192.168.10.133)
Origin incomplete, metric 0, localpref 100, valid, internal, best
Extended Community: RT:MyAS:230
mpls labels in/out nolabel/535
this route is not installed in MPLS Forwarding table (at least not
installed in correct way):
RouterA#show mpls forwarding-table vrf LOCAL 192.168.103.120 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or VC or Tunnel Id Switched interface
None 535 192.168.103.120/29[V] \
0
Recursive paths, Label Stack{535}
00217000
VPN route: LOCAL
No output feature configured
- you see, no outgoing interface mentioned in output, and label
stack is just incorrect - it consists only from one (final) label...
As insane as it sounds, source of problem was in the fact that RouterA
has two equal paths to RouterD:
RouterA#show ip route RouterD.234
Routing entry for RouterD.234/32
Known via "ospf MyAS", distance 110, metric 20, type extern 2, forward metric 8
Last update from CoreNet.197 on TenGigabitEthernet6/4, 00:01:43 ago
Routing Descriptor Blocks:
CoreNet.197, from RouterD.234, 00:01:43 ago, via TenGigabitEthernet6/4
Route metric is 20, traffic share count is 1
* CoreNet.169, from RouterD.234, 00:01:43 ago, via TenGigabitEthernet6/1
Route metric is 20, traffic share count is 1
After lowering ospf metrics on one of our links and this getting rid of
ECMP, mpls forwarding table became normal:
RouterA#show mpls forwarding-table vrf LOCAL 192.168.103.120 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or VC or Tunnel Id Switched interface
None 535 192.168.103.120/29[V] \
0 Te6/1 CoreNet.169
MAC/Encaps=14/22, MRU=9212, Label Stack{1828 535}
00D02B18A5000004DEFEC8008847 0072400000217000
VPN route: LOCAL
No output feature configured
and now everything works just as expected...
PS: well, our topology is simple enough to easily avoid equal-cost path's
but in more complex networks this workaround may be inacceptable...
More information about the cisco-nsp
mailing list