MPLS forwarding in partial mesh frame-relay networks

From: Steve Shaw <shaw38_at_gmail.com>
Date: Mon, 18 Jan 2010 11:48:18 -0500

Guys (and Gals),

I came across this scenario in a mock lab. Three routers sharing a single
subnet (10.123.123.0/24) frame relay network:

   - A, B, C where A is the hub site with a single multi-point
   sub-interface
   - B/C as spokes with single point-to-point sub-interfaces with PVCs to A
   - All are running OSPF (Non-broadcast, A is the DR) and MPLS LDP
   - Loopbacks are A (1.1.1.1/32), B (2.2.2.2/24) and C (3.3.3.3/32) and
   advertised in OSPF with the correct mask
   - Targeted LDP session built between B and C

The issue I can't wrap my head around is how B and C know there is are
incomplete MPLS-VPN LSPs between them. I *believe* this is a sanity check
function of MPLS forwarding on the router but looking for a confirmation.

From the perspective of B as the ingress LSR to C as the egress LSR:

B is learning the loopback of C (3.3.3.3/32) with the next-hop unchanged so
it appears directly connected:

B#show ip cef 3.3.3.3
3.3.3.3/32, version 28, epoch 0, cached adjacency to Serial0/0.1
0 packets, 0 bytes
  tag information set
    local tag: 17
  via 10.123.123.3, Serial0/0.1, 0 dependencies
    next hop 10.123.123.3, Serial0/0.1
    valid cached adjacency
    tag rewrite with Se0/0.1, point2point, tags imposed: {}

In B's LIB, B is being told to pop the IGP label prior to forwarding to C
which would be correct if they were directly connected:

B#show mpls ldp bindings 3.3.3.3 32
  tib entry: 3.3.3.3/32, rev 6
        local binding: tag: 17
        remote binding: tsr: 1.1.1.1:0, tag: 17
        remote binding: tsr: 3.3.3.3:0, tag: imp-null

However, in the LFIB, B is removing the label stack completely:

B#show mpls forwarding-table 3.3.3.3
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
17 Untagged 3.3.3.3/32 0 Se0/0.1 point2point

From a layer 3 perspective, routers B and C appear to be directly connected.
But from a layer 2 perspective, there is actually 2 hops from B to C through
the frame-relay network and hub router A.

Based on the LIB, if B was to attempt to forward an MPLS-VPN labeled packet
to C, B would:

   1. Pop the top (IGP) label
   2. Forward the frame out it's serial interface toward A
   3. A would receive the labeled packet, attempt to do a lookup on the
   MPLS-VPN label (now top label w/ BoS bit set) and drop the packet

To prevent the above scenario from occurring, does B place an entry in the
LFIB to completely remove the stack since it knows the LSP is incomplete?

Thanks for the help,

Steve

Blogs and organic groups at http://www.ccie.net
Received on Mon Jan 18 2010 - 11:48:18 ART

This archive was generated by hypermail 2.2.0 : Thu Feb 04 2010 - 20:28:41 ART