Example: Layer 2 Circuit Traffic Engineering over Multiple LSPs Configuration
Figure 1 shows
a network topology designed to traffic engineer different Layer 2
circuits over select LSPs. Across provider edge routers PE1 and PE2,
an ATM AAL5 mode Layer 2 circuit connects customer edge routers
CE1 and CE2, and a Frame Relay Layer 2 circuit connects routers
CE3 and CE4. To maintain traffic separation, the ATM traffic is mapped
onto LSP1 with a community named gold
, and the Frame Relay
traffic is mapped onto LSP2 with a community named silver
. LSP1 takes the direct route between routers PE1 and PE2, while
LSP2 travels from Router PE1 to PE2 through Router P0.
In addition to traffic engineering, you can send Layer 2 control information in the control word of a Layer 2 circuit. In this case, Frame Relay discard eligible (DE), forward explicit congestion notification (FECN), and backward explicit congestion notification (BECN) information is mapped into the control word. Likewise, ATM cell loss priority (CLP) and explicit forward congestion indicator (EFCI) information is mapped into the control word.
To traffic engineer Layer 2 circuits over
multiple LSPs, you assign a set of Layer 2 circuits to a community
and then apply a policy to send the community traffic over a desired
LSP. To create communities, include the community
community-name
statement at the [edit
policy-options]
hierarchy level. To assign a Layer 2 circuit
to a community, include the community community-name
statement at the [edit protocols l2circuit neighbor neighbor-id interface interface-name]
hierarchy level. To send community traffic over a specific
LSP, include the community community-name
statement at the [edit policy-options policy-statement policy-name term term-name from]
hierarchy level and the install-next-hop lsp lsp-name
statement at the [edit policy-options policy-statement policy-name term term-name then]
hierarchy level.
On Router CE1, configure the ATM2 IQ interface at-0/0/1.32
to handle ATM AAL5 traffic:
Router CE1
[edit] interfaces { at-0/0/1 { description "to PE1 at-1/1/0"; atm-options { pic-type atm2; # Layer 2 circuits are compatible with vpi 0; # ATM2 IQ interfaces. } unit 0 { encapsulation atm-vc-mux; # Use ATM VC MUX encapsulation on the CE. point-to-point; vci 0.32; family inet { address 10.0.0.1/30; } } } }
On Router CE3, configure the SONET/SDH interface at so-0/0/1
to handle Frame Relay traffic:
Router CE3
[edit] interfaces so-0/0/1 { description “to PE1 so-1/1/1” encapsulation frame-relay; # Use Frame Relay encapsulation on the CE router. unit 0 { encapsulation frame-relay; point-to-point; dlci 512; family inet { address 10.10.0.1/30; } } }
On Router PE1, configure the ATM2 IQ-based CE1-facing interface at-1/1/0
with ATM VC multiplexing CCC encapsulation on the
logical interface. Also enable the corresponding Layer 2 circuit
modes at the [edit chassis]
hierarchy level. In this case,
you must configure AAL5 mode on PIC 1
in FPC 1.
Once you configure the ATM2 IQ-based Layer 2 circuit, the CLP
and EFCI bits are mapped to the control word by default.
Next, configure the Frame Relay interface so-1/1/1
with Frame Relay CCC encapsulation on both the physical and logical
interface. Map the DE, FECN, and BECN bits to the control word with
the translate-fecn-and-becn
and translate-discard-eligible
statements at the [edit interfaces so-fpc/pic/port unit unit-number family ccc]
hierarchy level.
Establish your Layer 2 circuits with configuration of the l2circuit
statement at the [edit protocols]
hierarchy
level. Remember to include in your Layer 2 circuit configuration
the IP address of your remote PE neighbor (usually the loopback address
of the neighbor), the interfaces connected to the CE router,
and a virtual circuit identifier for each VC. In this case, you will
establish one VC for ATM AAL5 traffic and a second VC for Frame Relay
traffic. Then, configure MPLS, LDP, and an IGP (such as OSPF) to enable
signaling for your Layer 2 circuit. Two LSPs are established
for the ATM and Frame Relay traffic: LSP1 for ATM traffic going directly
to Router PE2 and LSP 2 for Frame Relay traffic going through
Router P0 before going on to Router PE2.
Finally, configure a community for traffic separation for the
ATM and Frame Relay Layer 2 circuits. Assign community gold
to the ATM VC and community silver
to the Frame Relay
VC. Remember to give the communities numerical values and configure
a routing policy to match the communities to specific LSPs. This policy
is applied as an export
policy for the forwarding table
at the [edit routing-options]
hierarchy level.
Router PE1
[edit] chassis { fpc 1 { pic 1 { atm-l2circuit-mode { aal5; # This dedicates FPC 1 PIC 1 to AAL5 mode. } } } } interfaces { at-1/1/0 { description "to CE1 at-0/0/2"; atm-options { pic-type atm2; # Layer 2 circuits are compatible with vpi 0; # ATM2 IQ interfaces. } unit 0 { encapsulation atm-ccc-vc-mux; # CLP/EFCI bits are mapped to control word. vci 0.32; } } so-0/1/0 { description "to P0 so-0/0/0"; unit 0 { family inet { address 192.168.27.17/30; } family mpls; # Include the MPLS family on core-facing interfaces. } } so-1/1/0 { description "to PE2 so-1/0/1"; unit 0 { family inet { address 192.168.27.10/30; } family mpls; # Include the MPLS family on core-facing interfaces. } } so-1/1/1 { description "to CE3 so-0/0/1"; dce; encapsulation frame-relay-ccc; unit 0 { encapsulation frame-relay-ccc; point-to-point; dlci 512; family ccc { translate-fecn-and-becn; # Option to map FECN/BECN bits to control word. translate-discard-eligible; # Option to map DE bit to control word. } } } lo0 { unit 0 { family inet { address 10.255.17.2/32; } } } } routing-options { forwarding-table { export layer2communities; # This applies communities to the Layer 2 circuits. } } protocols { mpls { label-switched-path lsp1 { # ATM LSP 1 goes directly to PE2. to 10.255.17.4; primary direct; } label-switched-path lsp2 { # Frame Relay LSP 2 goes through P0. to 10.255.17.4; primary thruP0; } path direct { 192.168.27.9 strict; } path thruP0 { 192.168.27.18 strict; 192.168.27.25 strict; } interface so-0/0/1.0; interface so-1/1/0.0; } ospf { traffic-engineering; area 0.0.0.0 { interface so-0/0/1.0; interface so-1/1/0.0; interface lo0.0; } } ldp { # LDP is required as the signaling protocol for Layer 2 circuits. interface so-0/0/1.0; interface so-1/1/0.0; interface lo0.0; } l2circuit { neighbor 10.255.17.4 {# This points to the loopback of the PE neighbor. interface at-1/1/0.32 { # Here you include the local CE-facing interface. virtual-circuit-id 1; # Be sure this ID matches the ID of your PE neighbor. community gold;# Assigns the ATM Layer 2 circuit to the gold community. } } neighbor 10.255.17.4 {# This points to the loopback of the PE neighbor. interface so-1/1/1.512 { # Here you include the local CE-facing interface. virtual-circuit-id 2; # Be sure this ID matches the ID of your PE neighbor. community silver; # Assigns the Frame Relay Layer 2 circuit to silver. } } } } policy-options { policy-statement layer2communities { # Here you map the communities to LSPs. term 10 { from community gold; # Apply community gold to LSP 1. then { install-nexthop lsp lsp1; accept; } } term 20 { from community silver; # Apply community silver to LSP 2. then { install-nexthop lsp lsp2; accept; } } } community gold members 103:1; # Assign numerical value to community gold. community silver members 103:2; # Assign numerical value to community silver. }
On Router P0, configure LDP, MPLS, and OSPF on the interfaces connected to the PE routers. The core router provides the MPLS backbone needed to tunnel Layer 2 traffic from the ingress PR router to the egress PE router. Only LSP 2 for Frame Relay passes through Router P0.
Router P0
[edit] interfaces { so-1/1/1 { description "to PE1 so-0/0/1"; unit 0 { family inet { address 192.168.27.18/30; } family mpls; # Include the MPLS family on core interfaces. } } so-1/1/2 { description "to PE2 so-0/1/1"; unit 0 { family inet { address 192.168.27.26/30; } family mpls; # Include the MPLS family on core interfaces. } } lo0 { unit 0 { family inet { address 10.255.17.3/32; } } } } protocols { mpls { interface so-1/1/1.0; interface so-1/1/2.0; } ospf { traffic-engineering; area 0.0.0.0 { interface so-1/1/1.0; interface so-1/1/2.0; } } ldp {# LDP is required as the signaling protocol for Layer 2 circuits. interface so-1/1/1.0; interface so-1/1/2.0; } }
On Router PE2, complete the Layer 2 circuit by configuring statements to match those previously set on Router PE1.
Establish your Layer 2 circuits with configuration of the l2circuit
statement at the [edit protocols]
hierarchy
level. Remember to include in your Layer 2 circuit configuration
the IP address of your remote PE neighbor (usually the loopback address
of the neighbor), the interfaces connected to the CE router, and a
virtual circuit identifier for each VC. In this case, you will establish
one VC for ATM AAL5 traffic and a second VC for Frame Relay traffic.
Then, configure MPLS, LDP, and an IGP (such as OSPF) to enable signaling
for your Layer 2 circuit. Two LSPs are established for the ATM
and Frame Relay traffic: LSP1 for ATM traffic going directly to Router PE2
and LSP 2 for Frame Relay traffic going through Router P0 before
going on to Router PE2.
Finally, configure a community for traffic separation for the
ATM and Frame Relay Layer 2 circuits. The ATM VC has community gold
and the Frame Relay VC has community silver
. Remember to give the communities numerical values and configure
a routing policy to match the communities to specific LSPs. This policy
is applied as an export
policy for the forwarding table
at the [edit routing-options]
hierarchy level.
Router PE2
[edit] chassis { fpc 1 { pic 0 { atm-l2circuit-mode { aal5; # This dedicates FPC 1 PIC 0 to AAL5 mode. } } } } interfaces { at-1/0/1 { description "to CE2 at-1/1/2"; atm-options { pic-type atm2; # Layer 2 circuits are compatible with vpi 0; # ATM2 IQ interfaces. } unit 0 { encapsulation atm-ccc-vc-mux; # CLP and EFCI appear in the control word. vci 0.32; } } so-0/1/1 { description "to P0 so-1/1/2"; unit 0 { family inet { address 192.168.27.25/30; } family mpls; # Include the MPLS family on core-facing interfaces. } } so-1/0/1 { description "to PE1 so-1/1/0"; unit 0 { family inet { address 192.168.27.9/30; } family mpls; # Include the MPLS family on core-facing interfaces. } } so-1/1/1 { description "to CE4 so-1/1/2"; dce; encapsulation frame-relay-ccc; unit 0 { encapsulation frame-relay-ccc; point-to-point; dlci 512; family ccc { translate-fecn-and-becn; # Option to map FECN/BECN bits to control word. translate-discard-eligible; # Option to map DE bit to control word. } } } lo0 { unit 0 { family inet { address 10.255.17.4/32; } } } } routing-options { forwarding-table { export layer2communities; # This maps communities to the Layer 2 circuits. } } protocols { mpls { label-switched-path lsp1 { # ATM LSP 1 goes directly to Router PE2. to 10.255.17.2; primary direct; } label-switched-path lsp2 { # Frame Relay LSP 2 goes through Router P0. to 10.255.17.2; primary thruP0; } path direct { 192.168.27.10 strict; } path thruP0 { 192.168.27.26 strict; 192.168.27.17 strict; } interface so-0/1/1.0; interface so-1/0/1.0; } ospf { traffic-engineering; area 0.0.0.0 { interface so-0/1/1.0; interface so-1/0/1.0; interface lo0.0; } } ldp { # LDP is required as the signaling protocol for Layer 2 circuits. interface so-0/1/1.0; interface so-1/0/1.0; interface lo0.0; } l2circuit { neighbor 10.255.17.2 {# This points to the loopback of the PE neighbor. interface at-1/0/1.32 { # Here you include the local CE-facing interface. virtual-circuit-id 1; # Be sure this ID matches the ID of your PE neighbor. community gold;# Assigns the ATM Layer 2 circuit to the gold community. } } neighbor 10.255.17.2 {# This points to the loopback of the PE neighbor. interface so-1/1/1.512 { # Here you include the local CE-facing interface. virtual-circuit-id 2; # Be sure this ID matches the ID of your PE neighbor. community silver; # Assigns the Frame Relay Layer 2 circuit to silver. } } } } policy-options { policy-statement layer2communities { # Here you map communities to LSPs. term 10 { from community gold; # Apply community gold to LSP 1. then { install-nexthop lsp lsp1; accept; } } term 20 { from community silver; # Apply community silver to LSP 2. then { install-nexthop lsp lsp2; accept; } } } community gold members 103:1; # Assign numerical value to community gold. community silver members 103:2; # Assign numerical value to community silver. }
On Router CE2, configure the ATM2 IQ interfaces to handle
ATM traffic. Interface at-1/0/1
handles AAL5 traffic.
Router CE2
[edit] interfaces { at-1/1/2 { description "to PE2 at-1/0/1"; atm-options { pic-type atm2; # Layer 2 circuits are compatible with vpi 0; # ATM2 IQ interfaces. } unit 0 { encapsulation atm-vc-mux; # Use ATM VC MUX encapsulation on the CE. point-to-point; vci 0.32; family inet { address 10.0.0.2/30; } } } }
On Router CE4, configure the SONET/SDH interface at so-1/1/2
to handle Frame Relay traffic:
Router CE3
[edit] interfaces { so-1/1/2 { description “ to PE2 so-1/1/1”; encapsulation frame-relay-ccc; # Use Frame Relay encapsulation on the CE. unit 0 { encapsulation frame-relay-ccc; point-to-point; dlci 512; family inet { address 10.10.0.2/30; } } } }
Verifying Your Work
To verify proper operation of traffic engineered Layer 2 circuits, use the following command:
show route table mpls.0 detail
On Router PE1, you can see that ATM traffic is
part of the gold
community that has a value of 103:1
and is associated with LSP 1. Likewise, Frame Relay traffic is part
of the silver
community that has a value of 103:2
and is associated with LSP 2:
user@PE1> show route table mpls.0 detail mpls.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) at-1/1/0.32 (1 entry, 1 announced) *L2CKT Preference: 7 Next hop: 192.168.27.9 via so-1/1/0.0 weight 1, selected Label-switched-path lsp1 Label operation: Push 100032 Offset: -4 Next hop: via so-0/0/1.0 weight 1 Label-switched-path lsp2 Label operation: Push 100032 Offset: -4 Protocol next hop: 10.255.17.4 Push 100032 Offset: -4 Indirect next hop: 8576bd0 300 State: <Active Int> Age: 7:18 Task: Common L2 VC Announcement bits (2): 0-KRT 1-Common L2 VC AS path: I Communities: 103:1 # This is the gold community. so-1/1/1.512 (1 entry, 1 announced) *L2CKT Preference: 7 Next hop: 192.168.27.9 via so-1/1/0.0 weight 1 Label-switched-path lsp1 Label operation: Push 100048 Offset: -4 Next hop: via so-0/0/1.0 weight 1, selected Label-switched-path lsp2 Label operation: Push 100048 Offset: -4 Protocol next hop: 10.255.17.4 Push 100048 Offset: -4 Indirect next hop: 860f1f8 293 State: <Active Int> Age: 5:15 Task: Common L2 VC Announcement bits (2): 0-KRT 1-Common L2 VC AS path: I Communities: 103:2 # This is the silver community.