Cisco started putting labels on top of IP packets since IOS release 11.1(17)CT in 1998 and it was then called tag switching. A tag was the name for what is now known as a label. The MPLS labels are advertised between routers so that they can build a label-to-label mappings.
These labels are attached to the IP packets, enabling the routers to forward the traffic by looking
at the label and not the destination IP address. The packets are forwarded by label switching instead of by IP switching. One MPLS label is a field of 32 bits with a certain structure:
MPLS-capable routers might need more than one label on top of the packet to route that packet through the MPLS network. This is done by packing the labels into a stack. The first label in the
stack is called the top label, and the last label is called the bottom label. In between, you can have
any number of labels. You can view MPLS as OSI Layer 2.5
I've been configuring and troubleshooting MPLS networks back in my old ISP days and I still use those skills in my current enterprise network. I needed to review basic MPLS for an IT project, so I used the Cisco Press book MPLS Fundamentals by Luc de Ghein and the MPLS Fundamentals training videos by Keith Barker. I also setup a lab using the network topology below:
You can directly configure the OSPF process and area ID under the interface in OSPFv2 versus configuring networks that will participate in OSPF (version 1) process under the network command. There's also OSPFv3 that supports IPv4 and IPv6 Address Family (AF).
These are the initial router configurations.
R1-PE1#show run
Building configuration...
Current configuration : 1285 bytes
!
! Last configuration change at 12:38:40 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1-PE1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 100 199
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.1.1.1 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.12.0.1 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R2-P1#show run
Building configuration...
Current configuration : 1322 bytes
!
! Last configuration change at 12:26:18 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2-P1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 200 299
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.2.2.2 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.12.0.2 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
ip address 10.23.0.2 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R3-P2#show run
Building configuration...
Current configuration : 1304 bytes
!
! Last configuration change at 12:26:17 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3-P2
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 300 399
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.3.3.3 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
no ip address
shutdown
duplex half
!
interface FastEthernet1/0
ip address 10.34.0.3 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
interface FastEthernet1/1
ip address 10.23.0.3 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R4-P3#show run
Building configuration...
Current configuration : 1283 bytes
!
! Last configuration change at 12:45:54 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R4-P3
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 400 499
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.4.4.4 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.45.0.4 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
ip address 10.34.0.4 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
router ospf 1
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R5-PE2#show run
Building configuration...
Current configuration : 1285 bytes
!
! Last configuration change at 12:06:50 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R5-PE2
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 500 599
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.5.5.5 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.45.0.5 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
These labels are attached to the IP packets, enabling the routers to forward the traffic by looking
at the label and not the destination IP address. The packets are forwarded by label switching instead of by IP switching. One MPLS label is a field of 32 bits with a certain structure:
MPLS-capable routers might need more than one label on top of the packet to route that packet through the MPLS network. This is done by packing the labels into a stack. The first label in the
stack is called the top label, and the last label is called the bottom label. In between, you can have
any number of labels. You can view MPLS as OSI Layer 2.5
I've been configuring and troubleshooting MPLS networks back in my old ISP days and I still use those skills in my current enterprise network. I needed to review basic MPLS for an IT project, so I used the Cisco Press book MPLS Fundamentals by Luc de Ghein and the MPLS Fundamentals training videos by Keith Barker. I also setup a lab using the network topology below:
Step 1: Configure
basic IP addressing and OSPF routing protocol on the MPLS network (R1 to
R5). 
You can directly configure the OSPF process and area ID under the interface in OSPFv2 versus configuring networks that will participate in OSPF (version 1) process under the network command. There's also OSPFv3 that supports IPv4 and IPv6 Address Family (AF).
R1#
R1#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R1(config)#hostname
R1-PE1 
R1-PE1(config)#
R1-PE1(config)#ip cef       // NEED CEF FOR MPLS (ENABLED BY DEFAULT)
R1-PE1(config)#
R1-PE1(config)#no
ip domain lookup
R1-PE1(config)#
R1-PE1(config)#interface
loopback0
R1(config-if)#
*Nov 11
11:36:09.879: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to up
R1-PE1(config-if)#ip
address 10.1.1.1 255.255.255.255
R1-PE1(config-if)#ip ospf 1 area 0      // CONFIGURE OSPF ON THE INTERFACE IN OSPFv2
R1-PE1(config-if)#
R1-PE1(config-if)#interface
f0/0
R1-PE1(config-if)#ip
address 10.12.0.1 255.255.255.0
R1-PE1(config-if)#no
shutdown
R1-PE1(config-if)#
*Nov 11
11:37:12.787: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Nov 11
11:37:13.787: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0,
changed state to up
R1-PE1(config-if)#end
R1-PE1#
*Nov 11 11:39:52.267: %OSPF-5-ADJCHG: Process 1, Nbr
10.2.2.2 on FastEthernet0/0 from LOADING to FULL, Loading Done
R2#
R2#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R2(config)#hostname
R2-P1
R2-P1(config)#
R2-P1(config)#ip
cef
R2(config)#
R2-P1(config)#no
ip domain lookup
R2-P1(config)#
R2-P1(config)#interface
loopback0
R2-P1(config-if)#
*Nov 11
11:38:48.251: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to up
R2-P1(config-if)#ip
address 10.2.2.2 255.255.255.255
R2-P1(config-if)#ip
ospf 1 area 0                   
R2-P1(config-if)#
R2-P1(config-if)#interface
f0/0
R2-P1(config-if)#ip
address 10.12.0.2 255.255.255.0
R2-P1(config-if)#no
shut
R2-P1(config-if)#
*Nov 11
11:39:38.087: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Nov 11
11:39:39.087: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0,
changed state to up
R2-P1(config-if)#do
ping 10.12.0.1
Type
escape sequence to abort.
Sending
5, 100-byte ICMP Echos to 10.12.0.1, timeout is 2 seconds:
.!!!!
Success
rate is 80 percent (4/5), round-trip min/avg/max = 16/27/56 ms
R2-P1(config-if)#
R2-P1(config-if)#ip
ospf 1 area 0
R2-P1(config-if)#
*Nov 11 11:39:52.199: %OSPF-5-ADJCHG: Process 1, Nbr
10.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
R2-P1(config)#interface
f1/1
R2-P1(config-if)#ip
address 10.23.0.2 255.255.255.0
R2-P1(config-if)#ip
ospf 1 area 0
R2-P1(config-if)#no
shutdown
R2-P1(config-if)#
*Nov 11
11:44:23.403: %LINK-3-UPDOWN: Interface FastEthernet1/1, changed state to up
*Nov 11
11:44:24.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/1,
changed state to up
R2-P1(config-if)#end
R2-P1#
*Nov 11 11:46:09.959: %OSPF-5-ADJCHG: Process 1, Nbr
10.3.3.3 on FastEthernet1/1 from LOADING to FULL, Loading Done
R3#
R3#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R3(config)#hostname
R3-P2
R3-P2(config)#
R3-P2(config)#ip
cef
R3-P2(config)#
R3-P2(config)#no
ip domain lookup
R3-P2(config)#
R3-P2(config)#interface
loopback0
R3-P2(config-if)#
*Nov 11
11:45:14.831: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to up
R3-P2(config-if)#ip
address 10.3.3.3 255.255.255.255
R3-P2(config-if)#ip ospf 1 area 0
R3-P2(config-if)#ip ospf 1 area 0
R3-P2(config-if)#
R3-P2(config-if)#interface
f1/1
R3-P2(config-if)#ip
address 10.23.0.3 255.255.255.0
R3-P2(config-if)#ip
ospf 1 area 0
R3-P2(config-if)#no
shutdown
R3-P2(config-if)#
*Nov 11
11:45:52.807: %LINK-3-UPDOWN: Interface FastEthernet1/1, changed state to up
*Nov 11
11:45:53.807: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/1,
changed state to up
R3-P2(config-if)#
*Nov 11
11:46:00.035: %OSPF-5-ADJCHG: Process 1, Nbr 10.2.2.2 on FastEthernet1/1 from
LOADING to FULL, Loading Done
R3-P2(config-if)#
R3-P2(config-if)#do
ping 10.23.0.2
Type
escape sequence to abort.
Sending
5, 100-byte ICMP Echos to 10.23.0.2, timeout is 2 seconds:
!!!!!
Success
rate is 100 percent (5/5), round-trip min/avg/max = 20/22/28 ms
R3-P2(config-if)#
R3-P2(config-if)#interface
f1/0
R3-P2(config-if)#ip
address 10.34.0.3 255.255.255.0
R3-P2(config-if)#ip
ospf 1 area 0
R3-P2(config-if)#no
shutdown
R3-P2(config-if)#
*Nov 11
11:47:05.563: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
*Nov 11
11:47:06.563: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0,
changed state to up
R3-P2(config-if)#end
R3-P2#
*Nov 11
11:48:59.663: %OSPF-5-ADJCHG: Process 1, Nbr 10.4.4.4 on FastEthernet1/0 from
LOADING to FULL, Loading Done
R4#
R4#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R4(config)#hostname
R4-P3
R4-P3(config)#
R4-P3(config)#ip
cef
R4-P3(config)#
R4-P3(config)#no
ip domain lookup
R4-P3(config)#
R4-P3(config)#interface
loopback0
R4-P3(config-if)#
*Nov 11
11:47:57.395: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to up
R4-P3(config-if)#ip
address 10.4.4.4 255.255.255.255
R4-P3(config-if)#ip
ospf 1 area 0
R4-P3(config-if)#
R4-P3(config-if)#interface
f1/0
R4-P3(config-if)#ip
address 10.34.0.4 255.255.255.0
R4-P3(config-if)#ip
ospf 1 area 0
R4-P3(config-if)#no
shutdown
R4-P3(config-if)#
*Nov 11
11:48:40.419: %LINK-3-UPDOWN: Interface FastEthernet1/0, changed state to up
*Nov 11
11:48:41.419: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0,
changed state to up
R4-P3(config-if)#
*Nov 11
11:48:49.663: %OSPF-5-ADJCHG: Process 1, Nbr 10.3.3.3 on FastEthernet1/0 from
LOADING to FULL, Loading Done
R4-P3(config-if)#do
ping 10.34.0.3
Type
escape sequence to abort.
Sending
5, 100-byte ICMP Echos to 10.34.0.3, timeout is 2 seconds:
!!!!!
Success
rate is 100 percent (5/5), round-trip min/avg/max = 16/24/36 ms
R4-P3(config-if)#
R4-P3(config-if)#interface
f0/0
R4-P3(config-if)#ip
address 10.45.0.4 255.255.255.0
R4-P3(config-if)#ip
ospf 1 area 0
R4-P3(config-if)#no
shutdown
R4-P3(config-if)#
*Nov 11
11:49:34.171: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Nov 11
11:49:35.171: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0,
changed state to up
R4-P3(config-if)#end
R4-P3#
*Nov 11
11:51:10.691: %OSPF-5-ADJCHG: Process 1, Nbr 10.5.5.5 on FastEthernet0/0 from
LOADING to FULL, Loading Done
R5#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R5-PE3(config)#hostname
R5-PE2
R5-PE2(config)#
R5-PE2(config)#ip
cef
R5-PE2(config)#
R5-PE2(config)#no
ip domain lookup
R5-PE2(config)#
R5-PE2(config)#interface
loopback0
R5-PE2(config-if)#
*Nov 11
11:30:08.643: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0,
changed state to up
R5-PE2(config-if)#ip
address 10.5.5.5 255.255.255.255
R5-PE2(config-if)#ip
ospf 1 area 0
R5-PE2(config-if)#
R5-PE2(config-if)#interface
f0/0
R5-PE2(config-if)#ip
address 10.45.0.5 255.255.255.0
R5-PE2(config-if)#ip
ospf 1 area 0
R5-PE2(config-if)#no
shutdown
R5-PE2(config-if)#
*Nov 11
11:30:45.035: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Nov 11
11:30:46.035: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0,
changed state to up
R5-PE2(config-if)#
*Nov 11
11:30:50.191: %OSPF-5-ADJCHG: Process 1, Nbr 10.4.4.4 on FastEthernet0/0 from
LOADING to FULL, Loading Done
R5-PE2(config-if)#end
R5-PE2#
R1-PE1#ping
10.5.5.5 source 10.1.1.1  
Type
escape sequence to abort.
Sending
5, 100-byte ICMP Echos to 10.5.5.5, timeout is 2 seconds:
Packet
sent with a source address of 10.1.1.1 
!!!!!
Success
rate is 100 percent (5/5), round-trip min/avg/max = 40/60/92 ms
Notice the traceroute initially didn't use any MPLS labels.
R1-PE1#traceroute
10.5.5.5 source 10.1.1.1
Type
escape sequence to abort.
Tracing
the route to 10.5.5.5
VRF info:
(vrf in name/id, vrf out name/id)
  1 10.12.0.2 16 msec 16 msec 12 msec
  2 10.23.0.3 24 msec 56 msec 24 msec
  3 10.34.0.4 68 msec 60 msec 60 msec
  4 10.45.0.5 68 msec 60 msec 52 msec
Step 2: Configure
MPLS on the core network.
There are just few MPLS commands to enable. I also manually configured the MPLS label range on each router so it's easy to troubleshoot and trace which router is using the labels. 
R1-PE1#
R1-PE1#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R1-PE1(config)#mpls
?
  discovery   
Configure LSP discovery
  export      
Configure periodic export of MPLS PAL table
  ip          
Dynamic MPLS forwarding for IP
  label       
Label properties
  ldp         
Label Distribution Protocol
  oam         
OAM configuration
  static      
MPLS static application
  traffic-eng 
Configure Traffic Engineering parameters
R1-PE1(config)#mpls
label ?
  mode     
MPLS Label allocation mode
  protocol 
Set platform default label distribution protocol
  range    
Label range
R1-PE1(config)#mpls
label range ?
  <16-1048575>  Minimum label value for dynamic label range
R1-PE1(config)#mpls
label range 100 ?
  <100-1048575>  Maximum label value for dynamic label range
R1-PE1(config)#mpls label range 100 199       // MANUALLY CONFIGURE MPLS LABELS TO BE
USED 
R1-PE1(config)#
R1-PE1(config)#mpls  ip      // GLOBALLY ENABLE MPLS
R1-PE1(config)#
R1-PE1(config)#interface
f0/0
R1-PE1(config-if)#mpls
?
  accounting  
Enable MPLS accounting on this interface
  bgp         
MPLS BGP commands
  ip          
Configure dynamic MPLS forwarding for IP
  l2transport 
Layer 2 packet over MPLS config commands
  label       
Label properties
  ldp         
Configure Label Distribution Protocol (LDP) parameters
  mtu         
Set MPLS Maximum Transmission Unit
  netflow     
Configure Egress Netflow Accounting
  traffic-eng 
Configure Traffic Engineering parameters
R1-PE1(config-if)#mpls ip        // ENABLE MPLS (AND LDP) ON THE SPECIFIED
INTERFACE
R1-PE1(config-if)#end
R1-PE1#
*Nov 11 12:01:36.759: %LDP-5-NBRCHG: LDP Neighbor
10.2.2.2:0 (1) is UP
R2-P1#
R2-P1#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R2-P1(config)#mpls
label range 200 299
R2-P1(config)#mpls
ip
R2-P1(config)#interface
f0/0
R2-P1(config-if)#mpls
ip
R2-P1(config-if)#
*Nov 11 12:01:36.631: %LDP-5-NBRCHG: LDP Neighbor
10.1.1.1:0 (1) is UP
R2-P1(config-if)#
R2-P1(config-if)#interface
f1/1
R2-P1(config-if)#mpls
ip  
*Nov 11 12:26:31.343: %LDP-5-NBRCHG: LDP Neighbor
10.3.3.3:0 (2) is UP     
R2-P1(config-if)#end
R2-P1#
R3-P2#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R3-P2(config)#mpls
label range 300 399
R3-P2(config)#mpls
ip
R3-P2(config)#interface
f1/1
R3-P2(config-if)#mpls
ip
*Nov 11 12:26:21.343: %LDP-5-NBRCHG: LDP Neighbor
10.2.2.2:0 (2) is UP
R3-P2(config-if)#interface
f1/0
R3-P2(config-if)#mpls
ip
R3-P2#
*Nov 11 12:26:20.047: %LDP-5-NBRCHG: LDP Neighbor
10.4.4.4:0 (1) is UP
R3-P2(config-if)#end
R3-P2#
R4-P3#
R4-P3#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R4-P3(config)#mpls
label range 400 499
R4-P3(config)#mpls
ip
R4-P3(config)#
R4-P3(config)#interface
f1/0
*Nov 11 12:26:09.991: %LDP-5-NBRCHG: LDP Neighbor
10.3.3.3:0 (2) is UP
R4-P3(config-if)#mpls
ip
R4-P3(config-if)#interface
f0/0
R4-P3(config-if)#mpls
ip      
*Nov 11 12:12:35.227: %LDP-5-NBRCHG: LDP Neighbor
10.5.5.5:0 (1) is UP 
R4-P3(config-if)#end
R4-P3#
R5-PE2#
R5-PE2#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R5-PE2(config)#mpls
label range 500 599
R5-PE2(config)#mpls
ip
R5-PE2(config)#
R5-PE2(config)#interface
f0/0
R5-PE2(config-if)#mpls
ip
R5-PE2(config-if)#
*Nov 11 11:52:14.691: %LDP-5-NBRCHG: LDP Neighbor
10.4.4.4:0 (1) is UP
R5-PE2(config-if)#end
R5-PE2#
R5-PE2#
R5-PE2#configure
terminal
Enter
configuration commands, one per line. 
End with CNTL/Z.
R5-PE2(config)#mpls
label range 500 599
R5-PE2(config)#mpls
ip
R5-PE2(config)#
R5-PE2(config)#interface
f0/0
R5-PE2(config-if)#mpls
ip
R5-PE2(config-if)#
*Nov 11 11:52:14.691: %LDP-5-NBRCHG: LDP Neighbor
10.4.4.4:0 (1) is UP
R5-PE2(config-if)#end
R5-PE2#
R1-PE1#show
mpls ?
  discovery         Information about LSP discovery
  flow              MPLS netflow information
  forwarding-table  Show the Label Forwarding Table
  interfaces        Per-interface MPLS forwarding
information
  ip                MPLS IP information
  l2transport       MPLS circuit transport info
  label             Label information
  ldp               Label Distribution Protocol
information
  memory            Memory usage information
  oam               OAM information
  static            Show MPLS static information
  traffic-eng       Traffic engineering information
R1-PE1#show
mpls ldp ?
  backoff           LDP session setup backoff table
  bindings          Show the LDP Label Information Base
(LIB)
  capabilities      Display LDP Capabilities information
  discovery         Display sources for locally generated
LDP Discovery Hello
                    PDUs
  graceful-restart  Show Graceful Restart summary
  igp               IGP-related info
  neighbor          Display LDP neighbor information
  parameters        Display LDP configuration parameters
R1-PE1#show
mpls ldp bindings 
  lib entry: 10.1.1.1/32, rev 2
        local binding:  label: imp-null
        remote binding: lsr: 10.2.2.2:0, label:
200
  lib entry: 10.2.2.2/32, rev 4
        local binding:  label: 100
        remote binding: lsr: 10.2.2.2:0, label:
imp-null
  lib entry: 10.4.4.4/32, rev 6
        local binding:  label: 101
        remote binding: lsr: 10.2.2.2:0, label:
201
  lib entry:
10.5.5.5/32, rev 8
        local
binding:  label: 102
        remote
binding: lsr: 10.2.2.2:0, label: 202
  lib entry: 10.12.0.0/24, rev 10
        local binding:  label: imp-null
        remote binding: lsr: 10.2.2.2:0, label:
imp-null
  lib entry: 10.23.0.0/24, rev 12
        local binding:  label: 103
        remote binding: lsr: 10.2.2.2:0, label:
imp-null
  lib entry: 10.34.0.0/24, rev 14
        local binding:  label: 104
        remote binding: lsr: 10.2.2.2:0, label:
203
  lib entry: 10.45.0.0/24, rev 16
        local binding:  label: 105
        remote binding: lsr: 10.2.2.2:0, label:
204
R1-PE1#
R1-PE1#show
mpls ldp bindings ?
  A.B.C.D             Destination prefix
  advertisement-acls  Show advertisement access lists
  all                 Display LIB information in all
VRFs
  detail              Show detailed information
  local               Display only locally assigned
labels
  local-label         Match locally assigned label values
  neighbor            Display labels from LDP neighbor
  remote-label        Match remotely assigned label values
  vrf                 VRF Routing/Forwarding
instance information
  |                   Output modifiers
  <cr>
R1-PE1#show
mpls ldp bindings 10.5.5.5 ?
  <0-32>  
Mask length
  A.B.C.D 
Destination mask
R1-PE1#show
mpls ldp bindings 10.5.5.5 32
  lib entry: 10.5.5.5/32, rev 8
        local binding:  label: 102
        remote binding: lsr: 10.2.2.2:0, label: 202
R1-PE1#show
mpls forwarding-table ?
  A.B.C.D             Destination prefix
  X:X:X:X::X/<0-128>  Destination IPv6 prefix
  detail              Detailed information
  interface           Match outgoing interface
  labels              Match label values
  next-hop            Match next hop neighbor
  slot                Specify the slot
  vrf                 Show entries for a VPN
Routing/Forwarding instance
  |                   Output modifiers
  <cr>
R1-PE1#show
mpls forwarding-table 10.5.5.5
Local      Outgoing  
Prefix           Bytes Label   Outgoing  
Next Hop    
Label      Label     
or Tunnel Id     Switched      interface              
102       
202        10.5.5.5/32      0             Fa0/0      10.12.0.2 
R2-P1#show
mpls ldp bindings 10.5.5.5 32 
  lib entry: 10.5.5.5/32, rev 8
        local binding:  label: 202
        remote binding: lsr: 10.1.1.1:0, label: 102
        remote binding: lsr: 10.3.3.3:0, label: 304
R2-P1#show
mpls forwarding-table 10.5.5.5  
Local      Outgoing  
Prefix           Bytes Label   Outgoing  
Next Hop    
Label      Label     
or Tunnel Id     Switched      interface              
202        304        10.5.5.5/32      0             Fa1/1      10.23.0.3   
R3-P2#show
mpls ldp bindings 10.5.5.5 32 
  lib entry: 10.5.5.5/32, rev 14
        local binding:  label: 304
        remote binding: lsr: 10.4.4.4:0, label: 402
        remote binding: lsr: 10.2.2.2:0, label: 202
R3-P2#show
mpls forwarding-table 10.5.5.5 
Local      Outgoing  
Prefix           Bytes Label   Outgoing  
Next Hop    
Label      Label     
or Tunnel Id     Switched      interface              
304        402        10.5.5.5/32      0             Fa1/0      10.34.0.4
R4-P3#show
mpls ldp bindings 10.5.5.5 32
  lib entry: 10.5.5.5/32, rev 8
        local binding:  label: 402
        remote binding: lsr: 10.5.5.5:0, label: imp-null      // DIRECTLY
CONNECTED ROUTE ON R5 (PENULTIMATE HOP POPPING/POP)
        remote binding: lsr: 10.3.3.3:0, label: 304
R4-P3#
R4-P3#show
mpls forwarding-table 10.5.5.5
Local      Outgoing  
Prefix           Bytes Label   Outgoing  
Next Hop    
Label      Label     
or Tunnel Id     Switched      interface              
402       
Pop Label  10.5.5.5/32      0             Fa0/0      10.45.0.5 
R5-PE2#show
mpls ldp bindings 10.5.5.5 32
  lib entry: 10.5.5.5/32, rev 8
        local binding:  label: imp-null
        remote binding: lsr: 10.4.4.4:0, label: 402
R5-PE2#show
mpls forwarding-table 10.5.5.5
Local      Outgoing  
Prefix           Bytes Label   Outgoing  
Next Hop    
Label      Label     
or Tunnel Id     Switched      interface              
None      
No Label   10.5.5.5/32      0  
Notice the traceroute displays an MPLS label.
R1-PE1#traceroute
10.5.5.5 source 10.1.1.1
Type
escape sequence to abort.
Tracing
the route to 10.5.5.5
VRF info:
(vrf in name/id, vrf out name/id)
  1 10.12.0.2 [MPLS:
Label 202 Exp 0] 128 msec 56 msec 68 msec
  2 10.23.0.3 [MPLS:
Label 304 Exp 0] 40 msec 60 msec 40 msec
  3 10.34.0.4 [MPLS:
Label 402 Exp 0] 44 msec 8 msec 40 msec
  4 10.45.0.5 68 msec 104 msec 40 msec
These are the initial router configurations.
R1-PE1#show run
Building configuration...
Current configuration : 1285 bytes
!
! Last configuration change at 12:38:40 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1-PE1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 100 199
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.1.1.1 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.12.0.1 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R2-P1#show run
Building configuration...
Current configuration : 1322 bytes
!
! Last configuration change at 12:26:18 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2-P1
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 200 299
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.2.2.2 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.12.0.2 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
ip address 10.23.0.2 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R3-P2#show run
Building configuration...
Current configuration : 1304 bytes
!
! Last configuration change at 12:26:17 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3-P2
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 300 399
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.3.3.3 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
no ip address
shutdown
duplex half
!
interface FastEthernet1/0
ip address 10.34.0.3 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
interface FastEthernet1/1
ip address 10.23.0.3 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R4-P3#show run
Building configuration...
Current configuration : 1283 bytes
!
! Last configuration change at 12:45:54 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R4-P3
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 400 499
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.4.4.4 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.45.0.4 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
ip address 10.34.0.4 255.255.255.0
ip ospf 1 area 0
duplex auto
speed auto
mpls ip
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
router ospf 1
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end
R5-PE2#show run
Building configuration...
Current configuration : 1285 bytes
!
! Last configuration change at 12:06:50 UTC Sun Nov 11 2018
upgrade fpd auto
version 15.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R5-PE2
!
boot-start-marker
boot-end-marker
!
!
!
no aaa new-model
no ip icmp rate-limit unreachable
!
!
!
!
!
!
no ip domain lookup
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
mpls label range 500 599
!
!
!
!
!
!
!
!
!
!
redundancy
!
!
ip tcp synwait-time 5
!
!
!
!
!
!
!
!
!
!
interface Loopback0
ip address 10.5.5.5 255.255.255.255
ip ospf 1 area 0
!
interface FastEthernet0/0
ip address 10.45.0.5 255.255.255.0
ip ospf 1 area 0
duplex half
mpls ip
!
interface FastEthernet1/0
no ip address
shutdown
duplex auto
speed auto
!
interface FastEthernet1/1
no ip address
shutdown
duplex auto
speed auto
!
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
!
no cdp log mismatch duplex
!
!
!
control-plane
!
!
!
mgcp profile default
!
!
!
gatekeeper
shutdown
!
!
line con 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line aux 0
exec-timeout 0 0
privilege level 15
logging synchronous
stopbits 1
line vty 0 4
login
transport input all
!
!
end

 
No comments:
Post a Comment