CCNP-ISCW MPLS Review
MPLS terms:
Cisco Express Forwarding (CEF)
Prerequist for MPLS, builds a forwarding table for hardware switching instead of process switching (routing), runs in the control plane.
Forwarding information base (FIB)
The FIB is built by CEF baised on the entrys in the routing table, resides in the dataplane.
Label Distrabution Protocol (LDP)
Protocol (rfc3036) that forwards labels to neighbours an generates and label information base (LIB), runs int the control plane.
Label Forward Information Base (LFIB)
The LFIB is the next hop table formed from the LIB, it runs in the data plane.
Label Switch Router (LSR)
Router witch is performing MPLS label switching
Edge Label Switch Router (edgeLSR)
Router performing MPLS label switching, label imposing and label removal.
Label Switch Path (LSP)
Path which the label packet with take through the MPLS network.
Provider Router (P)
Router that is only doing label switching in MPLS
Provider Edge (PE)
Router that has interfaces in the MPLS network and IP network
Customer Edge (CE)
Router that resides at the customer site connects to the PE routers using IP
Lab setup:
This is a messy setup but it was one that I slapped on the play with MPLS, I also wanted to play with MP-BGP and VPNs hence the extra un-named routers that I will used later at some point.
I have configured this using mainly GNS3 which I broke out onto real equipment using USB NICs, PE-3 is a real 2621 router as is the Internet as I broke out and used PAT to get out onto the internet.
- Configure P routers with OSPF interfaces all in area0
- Configure P2 & P4 interface with OSPF area 1
- Configure PE router with OSPF interfaces in area 1
- Configure CE routers with static routes pointing at next hop interfaces.
This is the interface config before the MPLS config is applied,
! interface Loopback0 ip address 100.0.0.100 255.255.255.255 ip ospf 1 area 1 ! interface FastEthernet0/0 description link-to-CE-1r1 ip vrf forwarding phillips ip address 50.0.0.5 255.255.255.252 duplex full speed auto ! interface GigabitEthernet1/0 description link-to-P2-backbone ip address 100.0.0.17 255.255.255.252 ip ospf authentication message-digest ip ospf authentication-key june ip ospf 1 area 1 negotiation auto ! PE-1#sh mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 25 Aggregate 50.0.0.4/30[V] 0 !
Add the config, first to Gig1/0 which is the interface facing into the WAN,
notice the message below, a LDP adjacancy formed with 100.0.0.0.18
! PE-1(config)#int g1/0 PE-1(config-if)#mpls label protocol ldp PE-1(config-if)#mpls mtu 1508 PE-1(config-if)#mpls ip PE-1(config-if)#^Z PE-1# *Jun 16 18:48:04.603: %LDP-5-NBRCHG: LDP Neighbor 100.0.0.18:0 (1) is UP !
The adjacancy with 100.0.0.18 means we get all the labels for upstream LSRs, look at the entry for 100.0.0.102/32 which is the loopback0 address for PE-2. The local tag is 16 and outgoing tag is 23 which has been recieived by P2. On P2 we can see an entry for 100.0.0.102/32, if we get a tagged frame with the lable 23 it will get swapped for lable 23 and sent out Gi1/0 to P1
! PE-1#sh mpls forwarding-table Local Outgoing Prefix Bytes tag Outgoing Next Hop tag tag or VC or Tunnel Id switched interface 16 23 100.0.0.102/32 0 Gi1/0 100.0.0.18 17 19 100.0.0.103/32 0 Gi1/0 100.0.0.18 18 20 100.0.0.4/30 0 Gi1/0 100.0.0.18 19 Pop tag 100.0.0.0/30 0 Gi1/0 100.0.0.18 20 21 100.0.1.0/30 0 Gi1/0 100.0.0.18 21 17 100.0.0.12/30 0 Gi1/0 100.0.0.18 22 Pop tag 100.0.0.8/30 0 Gi1/0 100.0.0.18 23 22 100.0.0.20/30 0 Gi1/0 100.0.0.18 24 18 100.0.0.24/30 0 Gi1/0 100.0.0.18 25 Aggregate 50.0.0.4/30[V] 0 !
LFIB table from P2
P2-backbone#sh mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 100.0.0.100/32 1587 Gi3/0 100.0.0.17
17 Pop tag 100.0.0.12/30 0 Gi2/0 100.0.0.10
18 Pop tag 100.0.0.24/30 0 Gi2/0 100.0.0.10
19 Pop tag 100.0.0.103/32 252 Gi2/0 100.0.0.10
20 Pop tag 100.0.0.4/30 0 Gi1/0 100.0.0.1
21 Pop tag 100.0.1.0/30 0 Gi1/0 100.0.0.1
22 21 100.0.0.20/30 0 Gi2/0 100.0.0.10
22 100.0.0.20/30 732 Gi1/0 100.0.0.1
23 22 100.0.0.102/32 0 Gi2/0 100.0.0.10
23 100.0.0.102/32 3761 Gi1/0 100.0.0.1
50.0.0.0/30[V] 0 Gi1/0 100.0.0.18
PE-1#
A great overview on MPLS from Keith Barker CCIE #6783
