Re: Issue with Cell Mode MPLS

From: Raffy Armistead (Raffy.Armistead@gmail.com)
Date: Thu Feb 26 2009 - 00:59:37 ARST


I am using OSPF for my IGP. I have tried both a /24 and a /32 for my
loopback. Originally I thought it was just the mask because I originally had
it configured as a /24 but OSPF was advertising a /32. I configured 'ip ospf
network point-to-point' but it didnt fix the issue. With the /32 it does the
same thing. I tried configuring one of the other routers with the same
configurations and it is working properly so I don't think it is the config.
This appears to be specific to cell mode MPLS with double stacked packets.
The one thing I can see is that the traffic is showing up with two labels on
R9 (0 and 30). I am not sure if cell mode MPLS should be doing PHP or not. I
configured the same VRF configuration that was done on R9 on R2 and the
configuration is working properly as it is doing PHP before it receives R2.

On R9 it shows 7.7.7.7 with label 31 for the VPN label and it uses 1/34 for
the VC for 150.1.3.3.

Rack1R9#show ip cef vrf MGMT 7.7.7.7 detail
> 7.7.7.7/32, epoch 0
> recursive via 150.1.3.3 label 31
> nexthop 150.1.109.254 ATM3/0.109 label 65570
> Rack1R9#show ip bgp vpnv4 all labels | in 7.7.7.7
> 7.7.7.7/32 150.1.3.3 nolabel/31
> 7.7.7.7/32 150.1.3.3 nolabel/31
> Rack1R9#show mpls forwarding-table 150.1.3.3
> Local Outgoing Prefix Bytes Label Outgoing Next Hop
> Label Label or VC or Tunnel Id Switched interface
> 17 1/34 150.1.3.0/24 0 AT3/0.109
> point2point
> Rack1R9#

Here are the mpls packets on R1 when I am pinging from R9 9.9.9.9 to R7
7.7.7.7. The packets highlighted in blue are coming from R9 to R7. The
packets in green are coming from R7 to R9.

> Rack1R1#
00:07:47: MPLS turbo: AT3/0.101: rx: Len 112 Stack {0 0 254} {31 0 255} -
ipv4 data
00:07:47: MPLS turbo: Se2/1: tx: Len 108 Stack {31 0 253} - ipv4 data
00:07:47: MPLS turbo: Se2/1: rx: Len 112 Stack {17 0 254} {31 0 254} - ipv4
data
00:07:47: MPLS turbo: AT3/0.101: tx: Len 112 Stack {0 0 253} {31 0 254} -
ipv4 data
Rack1R1#
00:07:49: MPLS turbo: AT3/0.101: rx: Len 112 Stack {0 0 254} {31 0 255} -
ipv4 data
00:07:49: MPLS turbo: Se2/1: tx: Len 108 Stack {31 0 253} - ipv4 data
00:07:49: MPLS turbo: Se2/1: rx: Len 112 Stack {17 0 254} {31 0 254} - ipv4
data
00:07:49: MPLS turbo: AT3/0.101: tx: Len 112 Stack {0 0 253} {31 0 254} -
ipv4 data
Rack1R1#
00:07:51: MPLS turbo: AT3/0.101: rx: Len 112 Stack {0 0 254} {31 0 255} -
ipv4 data
00:07:51: MPLS turbo: Se2/1: tx: Len 108 Stack {31 0 253} - ipv4 data
00:07:51: MPLS turbo: Se2/1: rx: Len 112 Stack {17 0 254} {31 0 254} - ipv4
data
00:07:51: MPLS turbo: AT3/0.101: tx: Len 112 Stack {0 0 253} {31 0 254} -
ipv4 data
Rack1R1#
00:07:53: MPLS turbo: AT3/0.101: rx: Len 112 Stack {0 0 254} {31 0 255} -
ipv4 data
00:07:53: MPLS turbo: Se2/1: tx: Len 108 Stack {31 0 253} - ipv4 data
00:07:53: MPLS turbo: Se2/1: rx: Len 112 Stack {17 0 254} {31 0 254} - ipv4
data
00:07:53: MPLS turbo: AT3/0.101: tx: Len 112 Stack {0 0 253} {31 0 254} -
ipv4 data
Rack1R1#
00:08:00: MPLS turbo: AT3/0.101: rx: Len 52 Stack {0 6 254} - ipv4 data
Rack1R1#
00:08:03: MPLS turbo: Se2/1: rx: Len 67 Stack {17 6 255} - ipv4 data
00:08:03: MPLS turbo: AT3/0.101: tx: Len 67 Stack {0 6 254} - ipv4 data
00:08:04: MPLS turbo: AT3/0.101: rx: Len 48 Stack {0 6 254} - ipv4 data
Rack1R1#

On R1 I can see both traffic coming from R9 and going to R9. It is coming in
with label 0/31 from ATM3/0.101. It is then doing PHP and sending it out
Se2/1 as label 31.

Rack1R1#show mpls forwarding-table 150.1.3.3
> Local Outgoing Prefix Bytes Label Outgoing Next Hop
> Label Label or VC or Tunnel Id Switched interface
> 16 Pop Label 150.1.3.0/24 8957 Se2/1
> point2point
> Rack1R1#
>

The traffic is then coming in from Se2/1 as label 17/31 and sending it out
as 0/31 on ATM3/0.101.

Rack1R3#show ip cef vrf MGMT 9.9.9.9
> 9.9.9.9/32, version 13, epoch 0, cached adjacency to Serial1/2
> 0 packets, 0 bytes
> tag information set
> local tag: VPN-route-head
> fast tag rewrite with Se1/2, point2point, tags imposed: {17 31}
> via 150.1.9.9, 0 dependencies, recursive
> next hop 150.1.13.1, Serial1/2 via 150.1.9.9/32
> valid cached adjacency
> tag rewrite with Se1/2, point2point, tags imposed: {17 31}
> Rack1R3#
> Rack1R1#show mpls forwarding-table 150.1.9.9
> Local Outgoing Prefix Bytes Label Outgoing Next Hop
> Label Label or VC or Tunnel Id Switched interface
> 17 1/36 150.1.9.9/32 6755 AT3/0.101
> point2point
> Rack1R1#
>

Is there a debug command that I can use to verify that the labels are being
stripped properly and it is processing the IP packet? On R9 it shows in the
LFIB that it is an aggregate route so it should be processing the traffic.

Rack1R9#show mpls forwarding-table vrf MGMT 9.9.9.9 detail
> Local Outgoing Prefix Bytes Label Outgoing Next Hop
> Label Label or VC or Tunnel Id Switched interface
> 31 Pop Label 9.9.9.9/32[V] 0 aggregate/MGMT
> MAC/Encaps=0/0, MRU=0, Label Stack{}
> VPN route: MGMT
> No output feature configured
> Rack1R9#

I have also tried different IOS versions and those don't appear to be
fixing the issue. I have reloaded the whole topology under GNS3 and that
doesn't appear to fix the issue also. Are there any restrictions on
cell-mode mpls under dynamips?

c7200-k91p-mz.122-25.S15.bin
c7200-k91p-mz.122-31.SB14.bin

-- 
Raffy Armistead
CCIE# 16248

Blogs and organic groups at http://www.ccie.net



This archive was generated by hypermail 2.1.4 : Sun Mar 01 2009 - 09:44:12 ARST