Example: Configuring MPLS on EX-series Switches
You can configure MPLS on your switches to increase transport efficiency in your network. MPLS services can be used to connect various sites to a backbone network or to ensure better performance for low-latency applications such as VoIP and other business-critical functions.
This example shows how to configure an MPLS tunnel:
Requirements
This example uses the following hardware and software components:
- JUNOS Release 9.5 or later for EX-series switches
- Three EX-series switches
Before you begin configuring MPLS, ensure that you have configured either the OSPF or IS-IS routing protocol on the switches. This example includes the configuration of OSPF on the switches.
Overview and Topology
You can configure MPLS on your switches to increase transport efficiency in your network. This example includes an ingress or local provider edge switch, an egress or remote provider edge switch, and one provider (transit) switch. It includes CCCs that tie the customer-edge interface of the local provider edge switch (PE-1) to the customer-edge interface of the remote provider edge switch (PE-2). It also describes how to configure the core interfaces of the provider edge switches and the provider switch to support the transmission of the MPLS packets. In this example, the core interfaces that connect the local provider edge switch and the provider switch are individual interfaces; whereas the core interfaces that connect the remote provider edge switch and the provider switch are aggregated Ethernet interfaces.
![]() |
Note: You do not need to create a LAG for an MPLS connection. This example includes a LAG between the provider switch and the remote provider edge switch, because this type of configuration is another option that you may wish to implement. For information on configuring LAGs, see Configuring Aggregated Ethernet Interfaces (CLI Procedure). |
Figure 1 shows the topology used in this example.
Figure 1: Configuring MPLS on EX-series Switches

Table 1 shows the MPLS configuration components used for the ingress provider edge switch in this example.
Table 1: Components of the Ingress PE Switch in Topology for MPLS with Interface-Based CCC
Table 2 shows the MPLS configuration components used for the egress provider edge switch in this example.
Table 2: Components of the Egress PE Switch in Topology for MPLS with Interface-Based CCC
Table 3 shows the MPLS configuration components used for the provider switch in this example.
Table 3: Components of the Provider Switch in Topology for MPLS with Interface-Based CCC
Configuring the Local Provider Edge Switch
CLI Quick Configuration
To quickly configure the local provider edge switch, copy the following commands and paste them into the switch terminal window of PE-1:
[edit]
set protocols
ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/5.0
set protocols ospf area 0.0.0.0 interface
ge-0/0/6.0
set protocols
mpls label-switched-path lsp_to_pe2_ge1 to 127.1.1.3
set protocols mpls interface ge-0/0/5.0
set protocols mpls interface ge-0/0/6.0
set protocols rsvp interface lo0.0
set protocols rsvp interface ge-0/0/5.0
set protocols rsvp interface ge-0/0/6.0
set interfaces lo0 unit 0 family inet
address 127.1.1.1/32
set
interfaces ge-0/0/5 unit 0 family inet address 10.1.5.1/24
set interfaces ge-0/0/6 unit 0 family
inet address 10.1.6.1/24
set interfaces ge-0/0/5 unit 0 family mpls
set interfaces ge-0/0/6 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 family
ccc
set protocols connections
remote-interface-switch ge-1–to-pe2 interface ge-0/0/1.0
set protocols connections remote-interface-switch
ge-1–to-pe2 transmit-lsp lsp_to_pe2_ge1
set protocols connections remote-interface-switch ge-1–to-pe2
receive-lsp lsp_to_pe1_ge1
Step-by-Step Procedure
To configure the ingress provider edge switch:
- Configure OSPF with traffic engineering enabled:
[edit protocols]
user@switchPE-1# set ospf traffic-engineering - Configure OSPF on the loopback address and core
interfaces:
[edit protocols]
user@switchPE-1# set ospf area 0.0.0.0 interface lo0.0
user@switchPE-1# set ospf area 0.0.0.0 interface ge-0/0/5.0
user@switchPE-1# set ospf area 0.0.0.0 interface ge-0/0/6.0 - Configure MPLS on the switch with a label switched
path to the remote provider edge switch:
[edit protocols]
user@switchPE-1# set mpls label-switched-path lsp_to_pe2_ge1 to 127.1.1.3 - Configure MPLS on the core interfaces:
[edit protocols]
user@switchPE-1# set mpls interface ge-0/0/5.0
user@switchPE-1# set mpls interface ge-0/0/6.0 - Configure RSVP on the loopback address and core
interfaces:
[edit protocols]
user@switchPE-1# set rsvp interface lo0.0
user@switchPE-1# set rsvp interface ge-0/0/5.0
user@switchPE-1# set rsvp interface ge-0/0/6.0 - Configure IP addresses for
the loopback and core interfaces:
[edit]
user@switchPE-1# set interfaces lo0 unit 0 family inet address 127.1.1.1/32
user@switchPE-1# set interfaces ge-0/0/5 unit 0 family inet address 10.1.5.1/24
user@switchPE-1# set interfaces ge-0/0/6 unit 0 family inet address 10.1.6.1/24 - Configure family mpls on the logical unit of the core interface addresses:
[edit]
user@switchPE-1# set interfaces ge-0/0/5 unit 0 family mpls
user@switchPE-1# set interfaces ge-0/0/6 unit 0 family mpls - Configure the logical unit of the
customer-edge interface as a CCC:
[edit interfaces ge-0/0/1 unit 0]
user@PE-1# set family ccc - Configure the interface-based CCC from PE-1 to
PE-2:

Note: You can also configure a tagged VLAN interface as a CCC. See Configuring MPLS on Provider Edge Switches (CLI Procedure).
[edit protocols]
user@PE-1# set connections remote-interface-switch ge-1–to-pe2 interface ge-0/0/1.0
user@PE-1# set connections remote-interface-switch ge-1–to-pe2 transmit-lsp lsp_to_pe2_ge1
user@PE-1# set connections remote-interface-switch ge-1–to-pe2 receive-lsp lsp_to_pe1_ge1
Results
Display the results of the configuration:
user@switchPE-1> show configuration
- interfaces {
-
- ge-0/0/1 {
-
- unit 0 {
- family ccc;
- }
- }
-
- ge-0/0/5 {
-
- unit 0 {
-
- family inet {
- address 10.1.5.1/24;
- }
- family mpls;
- }
- }
-
- ge-0/0/6 {
-
- unit 0 {
-
- family inet {
- address 10.1.6.1/24;
- }
- family mpls;
- }
- }
-
- lo0 {
-
- unit 0 {
-
- family inet {
- address 127.1.1.1/32;
- }
- }
- }
- protocols {
-
- rsvp {
- interface lo0.0;
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- }
-
- mpls {
-
- label-switched-path lsp_to_pe2_ge1 {
- to 127.1.1.3;
- }
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- }
-
- ospf {
- traffic-engineering;
-
- area 0.0.0.0 {
- interface lo0.0;
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- }
- }
-
- connections {
-
- remote-interface-switch ge-1-to-pe2 {
- interface ge-0/0/1.0;
- transmit-lsp lsp_to_pe2_ge1;
- receive-lsp lsp_to_pe1_ge1;
- }
- }
Configuring the Remote Provider Edge Switch
CLI Quick Configuration
To quickly configure the remote provider edge switch, copy the following commands and paste them into the switch terminal window of PE-2:
[edit]
set protocols
ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ae0
set protocols mpls label-switched-path
lsp_to_pe1_ge1 to 127.1.1.1
set protocols mpls interface ae0
set protocols rsvp interface lo0.0
set protocols rsvp interface ae0
set interfaces lo0 unit 0 family inet address 127.1.1.3/32
set interfaces ae0 unit 0 family inet
address 10.1.9.2/24
set
interfaces ae0 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 family ccc
set protocols connections remote-interface-switch ge-1-to-pe1
interface ge-0/0/1.0
set protocols connections remote-interface-switch ge-1-to-pe1 transmit-lsp
lsp_to_pe1_ge1
set protocols
connections remote-interface-switch ge-1-to-pe1 receive-lsp lsp_to_pe2_ge1Step-by-Step Procedure
To configure PE-2:
- Configure OSPF with traffic engineering enabled:
[edit protocols]
user@switchPE-2# set ospf traffic-engineering - Configure OSPF on the loopback address and core
interface of PE-2:
[edit protocols]
user@switchPE-2# set ospf area 0.0.0.0 interface lo0.0
user@switchPE-2# set ospf area 0.0.0.0 interface ae0 - Configure MPLS on the switch with a label switched
path to the remote provider edge switch:
[edit protocols]
user@switchPE-2# set mpls label-switched-path lsp_to_pe1_ge1 to 127.1.1.1 - Configure MPLS on the core interface:
[edit protocols]
user@switchPE-2# set mpls interface ae0 - Configure RSVP on the loopback address and core
interface of PE-2:
[edit protocols]
ser@switchPE-2# set rsvp interface lo0.0
user@switchPE-2# set rsvp interface ae0 - Configure IP addresses for the loopback and core
interfaces:
[edit]
user@switchPE-2# set interfaces lo0 unit 0 family inet address 127.1.1.3/32
user@switchPE-2# set interfaces ae0 unit 0 family inet address 10.1.9.2/24 - Configure family mpls on the logical unit
of the core interface address of PE-2:
[edit]
user@switchPE-2# set interfaces ae0 unit 0 family mpls - Configure the logical unit of the customer-edge
interface as a CCC:
[edit interfaces ge-0/0/1 unit 0]
user@PE-2# set family ccc - Configure the interface-based CCC from PE-2 to
PE-1:
[edit protocols]
user@PE-2# set connections remote-interface-switch ge-1–to-pe2 interface ge-0/0/1.0
user@PE-2# set connections remote-interface-switch ge-1–to-pe2 transmit-lsp lsp_to_pe1_ge1
user@PE-2# set connections remote-interface-switch ge-1–to-pe2 receive-lsp lsp_to_pe2_ge1
Results
Display the results of the configuration:
user@switchPE-2> show configuration
- interfaces {
-
- ge-0/0/1 {
-
- unit 0 {
- family ccc;
- }
- }
-
- ae0 {
-
- unit 0 {
-
- family inet {
- address 10.1.9.2/24;
- }
- family mpls;
- }
- }
-
- lo0 {
-
- unit 0 {
-
- family inet {
- address 127.1.1.3/32;
- }
- }
- }
- }
- protocols {
-
- rsvp {
- interface lo0.0;
- interface ae0.0;
- }
-
- mpls {
-
- label-switched-path lsp_to_pe1_ge1 {
- to 127.1.1.1;
- }
- interface ae0.0;
- }
-
- ospf {
- traffic-engineering;
-
- area 0.0.0.0 {
- interface ae0.0;
- }
- }
-
- connections {
-
- remote-interface-switch ge-1-to-pe1 {
- interface ge-0/0/1.0;
- transmit-lsp lsp_to_pe1_ge1;
- receive-lsp lsp_to_pe2_ge1;
- }
- }
- }
Configuring the Provider Switch
CLI Quick Configuration
To quickly configure the provider switch, copy the following commands and paste them into the switch terminal window:
[edit]
set protocols
ospf traffic-engineering
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/5.0
set protocols ospf area 0.0.0.0 interface
ge-0/0/6.0
set protocols
ospf area 0.0.0.0 interface ae0
set protocols mpls interface ge-0/0/5.0
set protocols mpls interface ge-0/0/6.0
set protocols mpls interface ae0
set protocols rsvp interface lo0.0
set protocols rsvp interface ge-0/0/5.0
set protocols rsvp interface ge-0/0/6.0
set protocols rsvp interface ae0
set interfaces lo0 unit 0 family inet
address 127.1.1.2/32
set
interfaces ge-0/0/5 unit 0 family inet address 10.1.5.1/24
set interfaces ge-0/0/6 unit 0 family
inet address 10.1.6.1/24
set interfaces ae0 unit 0 family inet address 10.1.9.1/24
set interfaces ge-0/0/5 unit 0 family
mpls
set interfaces ge-0/0/6
unit 0 family mpls
set interfaces
ae0 unit 0 family mpls
Step-by-Step Procedure
To configure the provider switch:
- Configure OSPF with traffic engineering enabled:
[edit protocols]
user@switchP# set ospf traffic-engineering - Configure OSPF on the loopback and core interfaces:
[edit protocols]
user@switchP# set ospf area interface lo0.0
user@switchP# set ospf area interface ae0 - Configure MPLS on the core interfaces on the switch:
[edit protocols]
user@switchP# set mpls interface ge-0/0/5
user@switchP# set mpls interface ge-0/0/6
user@switchP# set mpls interface ae0 - Configure RSVP on the loopback address and core
interfaces:
[edit protocols]
user@switchP# set rsvp interface lo0.0
user@switchP# set rsvp interface ge-0/0/5
user@switchP# set rsvp interface ge-0/0/6
user@switchP# set rsvp interface ae0 - Configure IP addresses for the loopback and core
interfaces:
[edit]
user@switchP# set interfaces lo0 unit 0 family inet address 127.1.1.2/32
user@switchP# set interfaces ge-0/0/5 unit 0 family inet address 10.1.5.1/24
user@switchP# set interfaces ge-0/0/6 unit 0 family inet address 10.1.6.1/24
user@switchP# set interfaces ae0 unit 0 family inet address 10.1.9.1/24 - Configure family mpls on the logical unit
of the core interface addresses:
[edit]
user@switchP# set interfaces ge-0/0/5 unit 0 family mpls
user@switchP# set interfaces ge-0/0/6 unit 0 family mpls
user@switchP# set interfaces ae0 unit 0 family mpls
Results
Display the results of the configuration:
user@switchP> show configuration
- interfaces {
-
- ge-0/0/5 {
-
- unit 0 {
-
- family inet {
- address 10.1.5.1/24;
- }
- family mpls;
- }
- }
-
- ge-0/0/6 {
-
- unit 0 {
-
- family inet {
- address 10.1.6.1/24;
- }
- family mpls;
- }
- }
- }
-
- ae0 {
-
- unit 0 {
-
- family inet {
- address 10.1.9.1/24;
- }
- family mpls;
- }
- }
-
- lo0 {
-
- unit 0 {
-
- family inet {
- address 127.1.1.2/32;
- }
- }
- }
- protocols {
-
- rsvp {
- interface lo0.0;
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- interface ae0.0;
- }
-
- mpls {
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- interface ae0.0;
- }
-
- ospf {
- traffic-engineering;
-
- area 0.0.0.0 {
- interface lo0.0;
- interface ge-0/0/5.0;
- interface ge-0/0/6.0;
- interface ae0.0;
- }
- }
Verification
To confirm that the configuration is working properly, perform these tasks:
- Verifying the Physical Layer on the Switches
- Verifying the Routing Protocol
- Verifying the Core Interfaces Being Used for the MPLS Traffic
- Verifying RSVP
- Verifying the Assignment of Interfaces for MPLS Label Operations
- Verifying the Status of the CCC
Verifying the Physical Layer on the Switches
Purpose
Verify that the interfaces are up. Perform this verification task on each of the switches.
Action
user@switchPE-1> show interfaces terseInterface Admin Link Proto Local Remote ge-0/0/0 up up ge-0/0/0.0 up up ge-0/0/1.0 up up ccc ge-0/0/2.0 up up eth-switch ge-0/0/3.0 up up eth-switch ge-0/0/4.0 up up eth-switch ge-0/0/5.0 up up inet 10.1.5.1/24
mpls
ge-0/0/6.0 up up inet 10.1.6.1/24
mpls
Meaning
The show interfaces terse command displays status information about the Gigabit Ethernet interfaces on the switch. This output verifies that the interfaces are up. The output for the protocol family (Proto column) shows that interface ge-0/0/0.1 is configured as a circuit cross-connect. The output for the protocol family of the core interfaces (ge-0/0/0.5 and ge-0/0/0.6), shows that these interfaces are configured as both inet and mpls. The Local column for the core interfaces shows the IP address configured for these interfaces.
Verifying the Routing Protocol
Purpose
Verify the state of the configured routing protocol. Perform this verification task on each of the switches. The state should be Full.
Action
user@switchPE-1> show ospf neighborAddress Interface State ID Pri Dead 127.1.1.2 ge—0/0/5 Full 10.10.10.10 128 39
Meaning
The show ospf neighbor command displays the status of the routing protocol. This output shows that the state is Full, meaning that the routing protocol is operating correctly—that is, hello packets are being exchanged between directly connected neighbors.
Verifying the Core Interfaces Being Used for the MPLS Traffic
Purpose
Verify that the state of the MPLS interface is Up. Perform this verification task on each of the switches.
Action
user@switchPE-1> show mpls interfaceInterface State Administrative groups ge—0/0/5 Up <none>
ge—0/0/6 Up <none>
Meaning
The show mpls interface command displays the status of the core interfaces that have been configured to belong to family mpls. This output shows that the interface configured to belong to family mpls is Up.
Verifying RSVP
Purpose
Verify the state of the RSVP session. Perform this verification task on each of the switches.
Action
user@switchPE-1> show rsvp sessionIngress RSVP: 1 sessions To From State Rt Style Labelin Labelout LSPname 127.1.13 127.1.1.1 Up 0 1 FF - 300064 lsp_to_pe2_ge1 Total 1 displayed, Up 1, Down 0 Egress RSVP: 1 sessions To From State Rt Style Labelin Labelout LSPname 127.1.1.1 127.1.1.3 Up 0 1 FF 299968 - lsp_to_pe1_ge1 Total 1 displayed, Up 1, Down 0 Transit RSVP: 0 sessions Total 0 displayed, Up 0, Down 0
Meaning
This output confirms that the RSVP sessions are Up.
Verifying the Assignment of Interfaces for MPLS Label Operations
Purpose
Verify which interface is being used as the beginning of the CCC and which interface is being used to push the MPLS packet to the next hop. Perform this task only on the provider edge switches.
Action
user@switchPE-1> show route forwarding-table family mplsMPLS: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 dscd 50 1 0 user 0 recv 49 3 1 user 0 recv 49 3 2 user 0 recv 49 3 299776 user 0 Pop 541 2 ge-0/0/1.0 ge-0/0/1.0 (CCC) user 0 2.0.0.1 Push 299792 540 2 ge-0/0/5.0
Meaning
This output shows that the CCC has been set up on interface ge-0/0/1.0. The switch receives ingress traffic on ge-0/0/1.0 and pushes label 299792 onto the packet, which goes out through interface ge-0/0/5.0. The output also shows when the switch receives an MPLS packet with label 29976, it pops the label and sends the packet out through interface ge-0/0/1.0
After you have checked the local provider edge switch, run the same command on the remote provider edge switch.
Verifying the Status of the CCC
Purpose
Verify the status of the CCC. Perform this task only on the provider edge switches.
Action
user@switchPE-1> show connections
CCC and TCC connections [Link Monitoring On] Legend for status (St) Legend for connection types UN -- uninitialized if-sw: interface switching NP -- not present rmt-if: remote interface switching WE -- wrong encapsulation lsp-sw: LSP switching DS -- disabled tx-p2mp-sw: transmit P2MP switching Dn -- down rx-p2mp-sw: receive P2MP switching -> -- only outbound conn is up <- -- only inbound conn is up Legend for circuit types Up -- operational intf -- interface RmtDn -- remote CCC down tlsp -- transmit LSP Restart -- restarting rlsp -- receive LSP Connection/Circuit Type St Time last up # Up trans ge1-to-pe2 rmt-if Up Feb 17 05:00:09 1 ge-0/0/1.0 intf Up lsp_to_pe1_ge1 tlsp Up lsp_to_pe2_ge1 rlsp Up
Meaning
The show connections command displays the status of the CCC connections. This output verifies that the CCC interface and its associated transmit and receive LSPs are Up. After you have checked the local provider edge switch, run the same command on the remote provider edge switch.
