Configure IP Address and OSPF on Routers
Configure the IP addresses and OSPF on the PE-1, P, and PE-2 routers.
PE-1
#configure terminal | Enter configure mode. |
(config)#interface lo | Specify the loopback interface (lo0) to be configured. |
(config-if)#ip address 1.1.1.1/32 secondary | Set the IP address of the loopback interface to 1.1.1.1/32. |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Specify the interface (xe1) to be configured. |
(config-if)#ip address 10.1.1.1/24 | Set the IP address of the interface to 10.1.1.1/24. |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 100 | Configure the routing process and specify the Process ID (100). The Process ID should be a unique positive integer identifying the routing process. |
(config-router)#network 10.1.1.0/24 area 0 (config-router)#network 1.1.1.1/32 area 0 | Define the interface on which OSPF runs and associate the area ID (0) with the interface. |
(config-router)#commit | Commit the transaction. |
P
#configure terminal | Enter configure mode. |
(config)#interface lo | Specify the loopback interface (lo0) to be configured. |
(config-if)#ip address 9.9.9.9/32 secondary | Set the IP address of the loopback interface to 9.9.9.9/32. |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Specify the interface (xe1) to be configured. |
(config-if)#ip address 10.1.1.2/24 | Set the IP address of the interface to 10.1.1.2/24. |
(config-if)#exit | Exit interface mode. |
(config)#interface xe2 | Specify the interface (xe2) to be configured. |
(config-if)#ip address 20.1.1.1/24 | Set the IP address of the interface to 20.1.1.1/24. |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 100 | Configure the routing process and specify the Process ID (100). The Process ID should be a unique positive integer identifying the routing process. |
(config-router)#network 10.1.1.0/24 area 0 (config-router)#network 20.1.1.0/24 area 0 (config-router)#network 9.9.9.9/32 area 0 | Define the interface on which OSPF runs and associate the area ID (0) with the interface. |
(config-router)#commit | Commit the transaction. |
PE-2
#configure terminal | Enter configure mode. |
(config)#interface lo | Specify the loopback interface (lo0) to be configured. |
(config-if)#ip address 2.2.2.2/32 secondary | Set the IP address of the loopback interface to 2.2.2.2/32. |
(config-if)#exit | Exit interface mode. |
(config)#interface xe1 | Specify the interface (xe1) to be configured. |
(config-if)#ip address 20.1.1.2/24 | Set the IP address of the interface to 20.1.1.2/24. |
(config-if)#exit | Exit interface mode. |
(config)#router ospf 100 | Configure the routing process and specify the Process ID (100). The Process ID should be a unique positive integer identifying the routing process. |
(config-router)#network 20.1.1.0/24 area 0 (config-router)#network 2.2.2.2/32 area 0 | Define the interface on which OSPF runs, and associate the area ID (0) with the interface. |
(config-router)#commit | Commit the transaction. |
Configure MPLS, LDP, and LDP Targeted Peer on Routers
Configure MPLS and LDP on PE-1, P, and PE-2, and LDP targeted peers on PE-1 and PE-2.
Note: If RSVP is used for configuring trunks, LDP must be configured on PE-1 and PE-2, and RSVP must be configured on PE-1, P, and PE-2,
PE-1
#configure terminal | Enter configure mode. |
(config)#router ldp | Enter the Router mode. |
(config)#router-id 1.1.1.1 | Set the router ID to IP address 1.1.1.1 |
(config-router)#transport-address ipv4 1.1.1.1 | Configure the transport address to be used for a TCP session over which LDP will run on an IPv4 interface. |
(config-router)#targeted-peer ipv4 2.2.2.2 | Specify the targeted LDP peer on PE-1. |
(config-router-targeted-peer)# exit | Exit the Router targeted peer mode. |
(config-router)#exit | Exit the Router mode. |
(config)#interface xe1 | Specify the interface (xe1) to be configured. |
(config-if)#label-switching | Enable label switching on interface xe1. |
(config-if)#enable-ldp ipv4 | Enable LDP on interface xe1.. |
(config-if)#commit | Commit the transaction. |
P
#configure terminal | Enter configure mode. |
(config)#router ldp | Enter the Router mode. |
(config)#router-id 9.9.9.9 | Set the router ID to IP address 9.9.9.9 |
(config-router)#transport-address ipv4 9.9.9.9 | Configure the transport address to be used for a TCP session over which LDP will run on an IPv4 interface. |
(config-router)#exit | Exit the Router mode. |
(config)#interface xe1 | Specify the interface (xe1) to be configured. |
(config-if)#label-switching | Enable label switching on interface xe2. |
(config-if)#enable-ldp ipv4 | Enable LDP on interface xe2. |
(config-if)#exit | Exit interface mode. |
(config)#interface xe2 | Specify the interface (xe2) to be configured. |
(config-if)#label-switching | Enable label switching on interface xe2. |
(config-if)#enable-ldp ipv4 | Enable LDP on interface xe2. |
(config-if)#commit | Commit the transaction. |
PE-2
#configure terminal | Enter configure mode. |
(config)#router ldp | Enter the Router mode. |
(config)#router-id 2.2.2.2 | Set the router ID to IP address 2.2.2.2 |
(config-router)#transport-address ipv4 2.2.2.2 | Configure the transport address to be used for a TCP session over which LDP will run on an IPv4 interface. |
(config-router)#targeted-peer ipv4 1.1.1.1 | Specify the targeted LDP peer on PE-2. |
(config-router-targeted-peer)# exit | Exit the Router targeted peer mode. |
(config-router)#exit | Exit the Router mode. |
(config)#interface xe1 | Specify the interface(xe1) to be configured. |
(config-if)#label-switching | Enable label switching on interface xe1. |
(config-if)#enable-ldp ipv4 | Enable LDP on interface xe1. |
(config-if)#commit | Commit the transaction. |
Configure VC
Configure the VC. Each VC ID uniquely identifies the Layer-2 circuit among all the Layer-2 circuits.
Note: Both PE routers (endpoints) must be configured with the same VC-ID (100 in this example).
PE-1
#configure terminal | Enter configure mode. |
(config)#mpls l2-circuit t1 100 2.2.2.2 | Configure the VC for PE-2. In this example, t1 is the VC name, 100 is the VC ID, and 2.2.2.2 is the VC endpoint IP address. |
(config)#commit | Save transaction into the database |
PE-2
#configure terminal | Enter configure mode. |
(config)#mpls l2-circuit t1 100 1.1.1.1 | Configure the VC for PE-1. In this example, t1 is the VC name, 100 is the VC ID, and 1.1.1.1 is the VC endpoint IP address. |
(config)#commit | Commit the transaction. |
Bind Customer Interface to VC
Bind the customer interface to the VC using one of the two procedures described below: Layer-2 untagged traffic or Layer-2 tagged traffic.
Note: Layer 2 VCs can only be bound to Layer 2 interfaces. The VC encapsulation method should be Ethernet (default), VLAN.
Layer 2 Untagged Traffic
Use Access mode for Layer 2 untagged traffic.
PE-1
#configure terminal | Enter configure mode. |
(config)#service-template SUT1 | Create a service template SUT1 |
(config-svc)#match untagged | Allow untagged traffic. |
(config-svc)#exit | Exit the service template mode |
(config)#interface xe3 | Specify the interface (xe3) to be configured. |
(config-if)#switchport | Switch to Layer-2 mode. |
(config-if)#mpls-l2-circuit t1 service-template SUT1 | Bind the interface to the VC with service template. |
(config-if)#commit | Commit the transaction. |
PE-2
#configure terminal | Enter configure mode. |
(config)#service-template SUT1 | Create a service template SUT1 |
(config-svc)#match untagged | Allow untagged traffic. |
(config-svc)#exit | Exit the service template mode |
(config)#interface xe3 | Specify the interface (xe3) to be configured. |
(config-if)#switchport | Switch to Layer-2 mode. |
(config-if)#mpls-l2-circuit t1 service-template SUT1 | Bind the interface to the VC with service template. |
(config-if)#commit | Commit the transaction. |
Layer 2 Tagged Traffic
Use Trunk mode for Layer-2 tagged traffic. The following configuration allows only VLAN 2 and 3 traffic.
PE-1
#configure terminal | Enter configure mode. |
(config)#mpls l2-circuit t2 200 2.2.2.2 | Configure the VC for PE-2. In this example, t2 is the VC name, 200 is the VC ID, and 2.2.2.2 is the VC endpoint IP address. |
(config-pseudowire)#exit | Exit pseudowire config mode. |
(config)#service-template ST1 | Create a service template ST1 |
(config-svc)#match outer-vlan 2 | Allow VLAN 2 traffic on this VC. |
(config-svc)#match outer-vlan 3 | Allow VLAN 3 traffic on this VC. |
(config-svc)#exit | Exit the service template mode |
(config)#interface xe2 | Specify the interface (xe2) to be configured. |
(config-if)#switchport | Switch to Layer-2 mode. |
(config-if)#mpls-l2-circuit t2 service-template ST1 | Bind the interface to the VC with service template. |
(config-if)#commit | Commit the transaction. |
PE-2
#configure terminal | Enter configure mode. |
(config)#mpls l2-circuit t2 200 1.1.1.1 | Configure the VC for PE-2. In this example, t2 is the VC name, 200 is the VC ID, and 1.1.1.1 is the VC endpoint IP address. |
(config-pseudowire)#exit | Exit pseudowire config mode. |
(config)#service-template ST1 | Create a service template ST1 |
(config-svc)#match outer-vlan 2 | Allow VLAN 2 traffic on this VC. |
(config-svc)#match outer-vlan 3 | Allow VLAN 3 traffic on this VC. |
(config-svc)#exit | Exit the service template mode |
(config)#interface xe2 | Specify the interface (xe2) to be configured. |
(config-if)#switchport | Switch to Layer-2 mode. |
(config-if)#mpls-l2-circuit t2 service-template ST1 | Bind the interface to the VC with service template. |
(config-if)#commit | Commit the transaction. |
Validation
Use the show ldp mpls-l2-circuit (Control Plane) command, and the show mpls vc-table (Forwarding Plane) command, to display complete information about the Layer 2 VC.
If the VC State is UP in the output from the show ldp mpls-l2 circuit command, and the Status is Active in the output of the show mpls vc-table command, a ping from CE1 to CE2 should be successful.
#show ldp mpls-l2-circuit
Transport Client VC Trans Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 2.2.2.2
200 xe2 UP Ethernet VLAN 26241 26241 2.2.2.2
#show mpls vc-table
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
VC-ID Vlan-ID Inner-Vlan-ID Access-Intf Network-Intf Out Label Tunnel-Label Nexthop Status
100 N/A N/A xe3 xe1 26240 25600 2.2.2.2 Active
200 N/A N/A xe2 xe1 26241 25600 2.2.2.2 Active
PE2#show ldp mpls-l2-circuit
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 1.1.1.1
200 xe2 UP Ethernet VLAN 26241 26241 1.1.1.1
PE2#sh mpls vc-table
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
VC-ID Vlan-ID Inner-Vlan-ID Access-Intf Network-Intf Out Label Tunnel-Label Nexthop Status
100 N/A N/A xe3 xe1 26240 25601 1.1.1.1 Active 200 N/A N/A xe2 xe1 26241 25601 1.1.1.1 Active
PE1#show ldp mpls-l2-circuit
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 2.2.2.2
200 xe2 UP Ethernet VLAN 26241 26241 2.2.2.2
PE1#show mpls vc-table
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
VC-ID Vlan-ID Inner-Vlan-ID Access-Intf Network-Intf Out Label Tunnel-Label Nexthop Status
100 N/A N/A xe3 xe1 26240 25600 2.2.2.2 Active 200 N/A N/A xe2 xe1 26241 25600 2.2.2.2 Active
PE2#show ldp mpls-l2-circuit
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 1.1.1.1
200 xe2 UP Ethernet VLAN 26241 26241 1.1.1.1
PE2#show mpls vc-table
(m) - Service mapped over multipath transport
(e) - Service mapped over LDP ECMP
VC-ID Vlan-ID Inner-Vlan-ID Access-Intf Network-Intf Out Label Tunnel-Label Nexthop Status
100 N/A N/A xe3 xe1 26240 25601 1.1.1.1 Active 200 N/A N/A xe2 xe1 26241 25601 1.1.1.1 Active
These additional commands can also be used to display information about the Layer 2 virtual circuits.
show ldp mpls-l2-circuit detail
show ldp mpls-l2-circuit VC-ID
show ldp mpls-l2-circuit VC-ID detail
show mpls l2-circuit
PE1
PE1#show ldp mpls-l2-circuit detail
PW ID: 100, VC state is up
Access IF: xe3,up,AC state is up
Session IF: xe1, state is up
Destination: 2.2.2.2, Peer LDP Ident: 2.2.2.2
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26240, remote label: 26240
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow
Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled
MPLS VC UpTime : 00:03:19
PW ID: 200, VC state is up
Access IF: xe2,up,AC state is up
Session IF: xe1, state is up
Destination: 2.2.2.2, Peer LDP Ident: 2.2.2.2
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26241, remote label: 26241
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled
MPLS VC UpTime : 00:01:16
PE1#show ldp mpls-l2-circuit 100
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 2.2.2.2
PE1#show ldp mpls-l2-circuit 200
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
200 xe2 UP Ethernet VLAN 26241 26241 2.2.2.2
PE1#show ldp mpls-l2-circuit
100 detail PW ID: 100, VC state is up
Access IF: xe3,up,AC state is up
Session IF: xe1, state is up
Destination: 2.2.2.2, Peer LDP Ident: 2.2.2.2
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26240, remote label: 26240
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled
MPLS VC UpTime : 00:04:19
PE1#show ldp mpls-l2-circuit 200 detail
PW ID: 200, VC state is up
Access IF: xe2,up,AC state is up
Session IF: xe1, state is up
Destination: 2.2.2.2, Peer LDP Ident: 2.2.2.2
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26241, remote label: 26241
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow
Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled MPLS VC UpTime : 00:02:24
PE1#show mpls l2-circuit
MPLS Layer-2 Virtual Circuit: t1, id: 100 PW-INDEX: 1 service-tpid: dot1.q
Endpoint: 2.2.2.2
Control Word: 0
Flow Label Status: Disabled, Direction: None, Static: No
MPLS Layer-2 Virtual Circuit Group: none
Bound to interface: xe3
Virtual Circuit Type: Ethernet VLAN
Virtual Circuit is configured as Primary
Virtual Circuit is configured as Active
Virtual Circuit is active
Service-template : SUT1
Match criteria : Untagged
MPLS Layer-2 Virtual Circuit: t2, id: 200 PW-INDEX: 2 service-tpid: dot1.q
Endpoint: 2.2.2.2
Control Word: 0
Flow Label Status: Disabled, Direction: None, Static: No
MPLS Layer-2 Virtual Circuit Group: none
Bound to interface: xe2
Virtual Circuit Type: Ethernet VLAN
Virtual Circuit is configured as Primary
Virtual Circuit is configured as Active
Virtual Circuit is active
Service-template : ST1
Match criteria : 2,3
PE2
PE2#show ldp mpls-l2-circuit detail
PW ID: 100, VC state is up
Access IF: xe3,up,AC state is up
Session IF: xe1, state is up
Destination: 1.1.1.1, Peer LDP Ident: 10.143.73.1
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26240, remote label: 26240
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled MPLS VC UpTime : 00:07:08
PW ID: 200, VC state is up
Access IF: xe2,up,AC state is up
Session IF: xe1, state is up
Destination: 1.1.1.1, Peer LDP Ident: 10.143.73.1
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26241, remote label: 26241
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled Local Flow Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled
MPLS VC UpTime : 00:05:05
PE2#show ldp mpls-l2-circuit 100
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
100 xe3 UP Ethernet VLAN 26240 26240 1.1.1.1
PE2#show ldp mpls-l2-circuit 200
Transport Client VC VC Local Remote Destination
VC ID Binding State Type VC Label VC Label Address
200 xe2 UP Ethernet VLAN 26241 26241 1.1.1.1
PE2#show ldp mpls-l2-circuit
PW ID: 200, VC state is up
Access IF: xe2,up,AC state is up
Session IF: xe1, state is up
Destination: 1.1.1.1, Peer LDP Ident: 10.143.73.1
Local vctype: vlan, remote vctype :vlan
Local groupid: 0, remote groupid: 0
Local label: 26241, remote label: 26241
Local MTU: 1500, Remote MTU: 1500
Local Control Word: disabled Remote Control Word: Not-Applicable Current use: disabled
Local Flow Label Direction: Disabled, Static: Disabled
Remote Flow Label Direction: Disabled, Static: Disabled
Local PW Status Capability : disabled
Remote PW Status Capability : disabled
Current PW Status TLV : disabled
MPLS VC UpTime : 00:06:00
PE2#show mpls l2-circuit
MPLS Layer-2 Virtual Circuit: t1, id: 100 PW-INDEX: 1 service-tpid: dot1.q
Endpoint: 1.1.1.1
Control Word: 0
Flow Label Status: Disabled, Direction: None, Static: No
MPLS Layer-2 Virtual Circuit Group: none
Bound to interface: xe3
Virtual Circuit Type: Ethernet VLAN
Virtual Circuit is configured as Primary
Virtual Circuit is configured as Active
Virtual Circuit is active
Service-template : SUT1
Match criteria : Untagged
MPLS Layer-2 Virtual Circuit: t2, id: 200 PW-INDEX: 2 service-tpid: dot1.q
Endpoint: 1.1.1.1
Control Word: 0
Flow Label Status: Disabled, Direction: None, Static: No
MPLS Layer-2 Virtual Circuit Group: none
Bound to interface: xe2
Virtual Circuit Type: Ethernet VLAN
Virtual Circuit is configured as Primary
Virtual Circuit is configured as Active
Virtual Circuit is active
Service-template : ST1
Match criteria : 2,3
Configure a Static Layer-2 VC
For a static MPLS Layer 2 VC configuration:
1. Configure the VC with the manual option
2. Configure the VC FIB entry
3. Bind the VC; all steps are in the configurations that follow.
PE-1
#configure terminal | Enter configure mode. |
PE1(config)#mpls l2-circuit t3 300 2.2.2.2 | Configure the VC ID for PE1 |
PE1(config-pseuodwire)#manual-pseudowire | Configure pseudowire manual (no signaling) |
PE1(config-pseudowire)#exit | Exit pseudowire config mode. |
PE1(config)#service-template ST3 | Create a service template ST3 |
PE1(config-svc)#exit | Exit the service template mode |
PE1(config)#interface xe2 | Add an FTN entry; where 1000 is the incoming label, 2000 is the outgoing label, 2.2.2.2 is the endpoint, xe1 is the incoming interface name, and xe2 is outgoing interface name. |
PE1(config)#switchport | config interface as switch port. |
PE1(config-if)#mpls-l2-circuit t3 service-template ST3 | Bind the interface to the VC with service template. |
PE1(config-if)#exit | Exit interface mode |
PE1(config)#mpls l2-circuit-fib-entry 300 1000 2000 2.2.2.2 xe1 xe2 | Configure the VC ID with the manual option (no signaling used). |
PE1(config)#commit | Commit the transaction. |
PE-2
#configure terminal | Enter configure mode. |
PE2(config)#mpls l2-circuit t3 300 1.1.1.1 | Configure the VC ID for PE2 |
PE2(config-pseuodwire)#manual-pseudowire | Configure pseudowire manual (no signaling) |
PE2(config-pseudowire)#exit | Exit pseudowire config mode. |
PE2(config)#service-template ST3 | Create a service template ST3 |
(config-svc)#exit | Exit the service template mode |
PE2(config)#interface xe2 | Add an FTN entry; where 2000 is the incoming label, 1000 is the outgoing label, 1.1.1.1 is the endpoint, xe1 is the incoming interface name, and xe 2 is outgoing interface name. |
PE1(config)#switchport | config interface as switch port. |
PE2(config-if)#mpls-l2-circuit t3 service-template ST3 | Bind the interface to the VC with service template. |
PE2(config-if)#exit | Exit interface mode. |
PE2(config)#mpls l2-circuit-fib-entry 300 2000 1000 1.1.1.1 xe1 xe2 | Configure the VC ID with the manual option (no signaling used). |
PE2(config)#end | Exit configure mode. |
PE2(config)#commit | Commit the transaction. |
Validation
This example shows number of configured VCs and its status.
#show mpls vc-table count
-------------------------------
Num PWs : 3
Active PWs : 3
OAM-only PWs : 0
Inactive PWs : 0
-------------------------------
#show ldp mpls-l2-circuit count
----------------------------------------------
Num Signaled PWs: 3 [UP: 3]
----------------------------------------------