Restrictions for MPLS-TP
- Penultimate hop popping is not supported. Only ultimate hop popping is supported, because label mappings are configured at the MPLS-TP endpoints.
- Ethernet subinterfaces are not supported.
- IPV6 addressing is not supported.
L2VPN Restrictions
- L2VPN interworking is not supported.
- Local switching with AToM pseudowire as a backup is not supported.
- L2VPN pseudowire redundancy to an AToM pseudowire by one or more attachment circuits is not supported.
- PW ID Forward Equivalence Class (FEC) (type 128) is supported, but generalized ID FEC (type 129) is not supported.
- BFD VCCV AC status signaling is not supported.
- Multisegment Pseudowires are not supported.
Ping and Trace Restrictions
- Ping for Static Pseudowires over MPLS-TP tunnels is not supported.
- Pseudowire ping and traceroute functionality for multisegment pseudowires that have one or more static pseudowire segments is not supported.
- The following packet format is supported:
–
A labeled packet with Generic Associated Channel Label (GAL) at the bottom of the label stack.
–
ACH channel is IP (0x21).
–
RFC 4379-based IP, UDP packet payload with valid source.
–
Destination IP address and UDP port 3503.
- Default reply mode for (1) is 4—Reply via application level control channel. An echo reply consists of the following elements:
–
A labeled packet with a GAL label at the bottom of the label stack.
–
ACH channel is IP (0x21).
–
RFC 4379-based IP, UDP packet payload with valid source.
–
Destination IP address and UDP port 3503.
- The optional “do not reply” mode may be set.
- The following reply modes are not allowed and are disabled in CLI:
–
2—Reply via an IPv4/IPv6 UDP packet
–
3—Reply via an IPv4/IPv6 UDP packet with Router Alert
- Force-explicit-null is not supported with ping and trace.
- Optional Reverse Path Connectivity verification is not supported. See LSP-Ping Extensions for MPLS-TP (draft-nitinb-mpls-tp-lsp-ping-extensions-01.txt).
Information About MPLS-TP
How MPLS-TP Works
MPLS-TP tunnels provide the transport network service layer over which IP and MPLS traffic traverse. MPLS-TP tunnels help transition from SONET/SDH TDM technologies to packet switching to support services with high bandwidth utilization and lower cost. Transport networks are connection oriented, statically provisioned, and have long-lived connections. Transport networks usually avoid control protocols that change identifiers (like labels). MPLS-TP tunnels provide this functionality through statically provisioned bidirectional label switched paths (LSPs), as shown in Figure 65-1.
Figure 65-1 MPLS-TP Tunnel
MPLS-TP Path Protection
MPLS-TP LSPs support 1-to-1 path protection. You can configure the working and protect LSPs as part of configuring the MPLS-TP tunnel. The working LSP is the primary LSP used to route traffic. The protect LSP is a backup for a working LSP. If the working LSP fails, traffic is switched to the protect LSP until the working LSP is restored, at which time forwarding reverts back to the working LSP.
Bidirectional LSPs
MPLS-TP LSPs are bidirectional and co-routed and are comprised of two unidirectional LSPs that are supported by the MPLS forwarding infrastructure. A TP tunnel consists of a pair of unidirectional tunnels providing a bidirectional LSP. Each unidirectional tunnel can optionally be protected with a protect LSP that activates automatically upon failure conditions.
MPLS-TP OAM Support
Several OAM protocols and messages support the provisioning and maintenance of MPLS-TP tunnels and bidirectional LSPs:
- MPLS-TP OAM: GACH: Generic Associated Channel (G-ACh) is the control channel mechanism associated with MPLS LSPs in addition to MPLS pseudowire. The G-ACh Label (GAL) (Label 13) is a generic alert label to identify the presence of the G-ACh in the label packet. It is taken from the reserved MPLS label space.
G-ACh/GAL is used to support in-band OAMs of MPLS LSPs and PWs. The OAM messages are used for fault management, connection verification, continuity check and other functions.
The following OAM messages are forwarded along the specified MPLS LSP:
–
OAM Fault Management: AIS, LDI and LKR messages. (GAL with fault-OAM channel)
–
OAM Connection Verification: ping and traceroute messages. (GAL with IP channel by default)
–
OAM Continuity Check: BFD (non-IP BFD and IP BFD) messages. (GAL with BFD channel or IP channel depending on message format)
The following messages are forwarded along the specified PW:
–
Static PW OAM messages (static PW status)
–
PW ping and traceroute messages
–
PW BFD messages
- MPLS-TP OAM: Fault Management: Link Down Indication (LDI), Alarm Indication Signal (AIS), and Lock Report (LKR) messages. LDI messages are generated at midpoint nodes when a failure is detected. At the midpoint, an LDI message will be sent to the endpoint that is reachable with the existing failure. Similarly, LKR messages will be sent from a midpoint node to the reachable endpoint when an interface is administratively shut. AIS messages are not generated by Cisco, but are processed if received. By default, reception of LDI and LKR on the active LSP at an endpoint will cause a path protection switchover, while AIS will not.
- MPLS-TP OAM: Fault Management: Emulated Protection Switching for LSP Lockout. Cisco implements a form of Emulated Protection Switching in support of LSP Lockout using customized Fault messages. When a Cisco Lockout message is sent, it does not cause the LSP to be administratively down. The Cisco Lockout message causes a path protection switchover and prevents data traffic from using the LSP. The LSP remains up so that BFD and other OAM messages can continue to traverse it. Maintenance of the LSP can take place (such as reconfiguring or replacing a midpoint LSR). The LSP is shown as UP and OAM can verify connectivity before the LSP is put back into service by removing the lockout. Lockout of the working LSP is not allowed if no protect LSP is configured. Alternatively, lockout of the protect LSP is allowed if no working LSP is configured.
- LSP ping and trace: For MPLS-TP connectivity verification, you can use ping mpls tp and trace mpls tp commands. You can specify that the echo requests be sent along either the working LSP, the protect LSP, or the active LSP. You can also specify that the echo request be sent on a locked out MPLS-TP tunnel LSP (either working or protect) if the working or protect LSP is explicitly specified.
- MPLS-TP OAM: Continuity Check via BFD: You can configure BFD sessions running over MPLS-TP LSPs. BFD sessions run on both the working LSP and the protect LSP. In order to perform a path protection switchover within 60 msec on an MPLS-TP endpoint, the BFD Hardware Offload feature enables the router hardware to construct and send BFD messages, which removes the task from the software path. You do not need to configure the BFD Hardware Offload feature. It works automatically on supported platforms. You must enable BFD.
MPLS-TP: Static and Dynamic Pseudowires
MPLS-TP supports the following combinations of static and dynamic pseudowires:
- Static-static
- Static-dynamic
- Dynamic-static
MPLS-TP: L2VPN Pseudowire Redundancy for Static and Dynamic Pseudowires
MPLS-TP supports one-to-one L2VPN pseudowire redundancy for the following combinations of static and dynamic pseudowires:
- Static pseudowire with a static backup pseudowire
- Static pseudowire with a dynamic backup pseudowire
- Dynamic pseudowire with a static backup pseudowire
MPLS-TP: OAM Status for Static and Dynamic Pseudowires
With static pseudowires, status notifications can be provided by BFD over VCCV or static pseudowire OAM protocol. However, BFD over VCCV is not supported. Therefore, static pseudowire OAM protocol is preferred.
MPLS-TP Links and Physical Interfaces
MPLS-TP link numbers may be assigned to physical interfaces only. Bundled interfaces and virtual interfaces are not supported for MPLS-TP link numbers.
The MPLS-TP link is used to create a level of indirection between the MPLS-TP tunnel and midpoint LSP configuration and the physical interface. The mpls tp link command is used to associate an MPLS-TP link number with a physical interface and next-hop node. On point-to-point interfaces or Ethernet interfaces designated as point-to-point using the medium p2p command, the next-hop can be implicit, so the mpls tp link command just associates a link number to the interface.
Multiple tunnels and LSPs may then refer to the MPLS-TP link to indicate they are traversing that interface. You can move the MPLS-TP link from one interface to another without reconfiguring all the MPLS-TP tunnels and LSPs that refer to the link.
Link numbers must be unique on the router or node.
See Configuring MPLS-TP Links and Physical Interfaces for more information.
Tunnel Midpoints
Tunnel LSPs, whether endpoint or midpoint, use the same identifying information. However, it is entered differently.
- At the midpoint, all the information for the LSP is specified with the mpls tp lsp command, which enters the submode for configuring forward and reverse information for forwarding.
- At the midpoint, determining which end is source and which is destination is arbitrary. That is, if you are configuring a tunnel between your router and a coworker’s router, then your router is the source. However, your coworker considers his or her router to be the source. At the midpoint, either router could be considered the source. At the midpoint, the forward direction is from source to destination, and the reverse direction is from destination to source.
- At the endpoint, the local information (source) either comes from the global router ID and global ID, or from locally configured information using the tp source command after you enter the command interface tunnel-tp number command, where number is the local/source tunnel-number.
- At the endpoint, the remote information (destination) is configured using the tp destination command after you enter the command interface tunnel-tp number. The tp destination command includes the destination node ID, optionally the global ID, and optionally the destination tunnel number. If you do not specify the destination tunnel number, the source tunnel number is used.
- At the endpoint, the LSP number is configured in working-lsp or protect-lsp submode. The default is 0 for the working LSP and 1 for the protect LSP.
- When configuring the LSPs at the midpoint routers, make that the configuration does not reflect traffic back to the originating node.
How to Configure MPLS-TP
Configuring the MPLS Label Range
You must specify a static range of MPLS labels using the mpls label range command with the static keyword.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls label range minimum-value maximum-value { static minimum-static-value maximum-static-value }
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
mpls label range minimum-value maximum-value { static minimum-static-value maximum-static-value }
Switch(config)# mpls label range 1001 1003 static 10000 25000 |
Specifies a static range of MPLS labels |
Configuring the Router ID and Global ID
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
mpls tp
4.
router-id node-id
5.
global-id num
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
mpls tp
Switch(config)# mpls tp |
Enters MPLS-TP configuration mode, from which you can configure MPLS-TP parameters for the switch. |
Step 4 |
router-id node-id
Router(config-mpls-tp)# router-id 10.10.10.10 |
Specifies the default MPLS-TP router ID, which is used as the default source node ID for all MPLS-TP tunnels configured on the router. |
Step 5 |
global-id num
Switch(config-mpls-tp)# global-id 1 |
(Optional) Specifies the default global ID used for all endpoints and midpoints. This command makes the switch ID globally unique in a multiprovider tunnel. Otherwise, the router ID is only locally meaningful. The global ID is an autonomous system number, which is a controlled number space by which providers can identify each other. The router ID and global ID are also included in fault messages by routers at tunnel midpoints to help isolate the location of faults. |
Configuring Bidirectional Forwarding Detection Templates
The bfd-template command allows you to create a BFD template and enter BFD configuration mode. The template can be used to specify a set of BFD interval values. You invoke the template as part of the MPLS-TP tunnel. On platforms that support the BFD Hardware Offload feature and can provide 60-ms cutover for MPLS-TP tunnels, it is recommended to use the higher resolution timers in the BFD template.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
bfd-template single-hop template-name
4.
interval [ microseconds ] { both time | min-tx time min-rx time } [ multiplier multiplier-value ]
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
bfd-template single-hop template-name
Switch(config)# bfd-template single-hop mpls-bfd-1
|
Creates a BFD template and enter BFD configuration mode. |
Step 4 |
interval [ microseconds ] { both time | min-tx time min-rx time } [ multiplier multiplier-value ]
Switch(config-bfd)# interval min-tx 99 min-rx 99 multiplier 3 |
Specifies a set of BFD interval values. |
Configuring Pseudowire OAM Attributes
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
pseudowire-static-oam class class-name
4.
timeout refresh send seconds
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
pseudowire-static-oam class class-name
Switch(config)# pseudowire-static-oam class oam-class1 |
Creates a pseudowire OAM class and enters pseudowire OAM class configuration mode. |
Step 4 |
timeout refresh send seconds
Switch(config-st-pw-oam-class)# timeout refresh send 20 |
Specifies the OAM timeout refresh intervals. |
Configuring the Pseudowire Class
When you create the pseudowire class, you specify the parameters of the pseudowire, such as the use of the control word, preferred path, and OAM class.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
pseudowire-class class-name
4.
encapsulation mpls
5.
control-word
6.
protocol { l2tpv2 | l2tpv3 | none } [ l2tp-class-name ]
7.
preferred-path { interface tunnel tunnel-number | peer { ip-address | host-name }} [ disable-fallback ]
8.
status protocol notification static class-name
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
pseudowire-class class-name
Switch(config)# pseudowire-class mpls-tp-class1 |
Creates a pseudowire class and enters pseudowire class configuration mode. |
Step 4 |
encapsulation mpls
Switch(config-pw-class)# encapsulation mpls |
Specifies the encapsulation type. |
Step 5 |
control-word
Switch(config-pw-class)# control-word |
Enables the use of the control word. |
Step 6 |
protocol { l2tpv2 | l2tpv3 | none } [ l2tp-class-name ]
Switch(config-pw-class)# protocol none |
Specifies the type of protocol. |
Step 7 |
preferred-path { interface tunnel tunnel-number | peer { ip-address | host-name }} [ disable-fallback ]
Switch(config-pw-class)# preferred-path interface tunnel-tp2 |
Specifies the tunnel to use as the preferred path. |
Step 8 |
status protocol notification static class-name
Switch(config-pw-class)# status protocol notification static oam-class1
|
Specifies the OAM class to use. |
Configuring the Pseudowire
1.
enable
2.
configure terminal
3.
interface type number
4.
xconnect peer-ip-address vc-id { encapsulation { l2tpv3 [ manual ] | mpls [ manual ]} | pw-class pw-class-name } [ pw-class pw-class-name ] [ sequencing { transmit | receive | both }]
5.
mpls label local-pseudowire-label remote-pseudowire-label
6.
mpls control-word
7.
backup delay { enable-delay-period | never } { disable-delay-period | never }
8.
backup peer peer-router-ip-addr vcid [ pw-class pw-class-name ] [ priority value ]
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
interface type number
Switch(config)# interface Ethernet 1/0 |
Specifies the interface and enters interface configuration mode. |
Step 4 |
xconnect peer-ip-address vc-id { encapsulation { l2tpv3 [ manual ] | mpls [ manual ]} | pw-class pw-class-name } [ pw-class pw-class-name ] [ sequencing { transmit | receive | both }]
Switch(config-if)# xconnect 10.131.191.251 100 encapsulation mpls manual pw-class mpls-tp-class1
|
Binds the attachment circuit to a pseudowire VC and enters xconnect interface configuration mode. |
Step 5 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(config-if-xconn)# mpls label 100 150 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 6 |
mpls control-word
Switch(config-if-xconn)# no mpls control-word |
Specifies the control word. |
Step 7 |
backup delay { enable-delay-period | never } { disable-delay-period | never }
Switch(config-if-xconn)# backup delay 0 never |
Specifies how long a backup pseudowire virtual circuit (VC) should wait before resuming operation after the primary pseudowire VC goes down. |
Step 8 |
backup peer peer-router-ip-addr vcid [ pw-class pw-class-name ] [ priority value ]
Switch(config-if-xconn)# backup peer 10.0.0.2 50 |
Specifies a redundant peer for a pseudowire virtual circuit (VC). |
Configuring the MPLS-TP Tunnel
On the endpoint switchs, create an MPLS TP tunnel and configure its parameters. See the interface tunnel-tp command for information on the parameters.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
interface tunnel-tp number
4.
description tunnel-description
5.
tp tunnel-name name
6.
tp bandwidth num
7.
tp source mode-id [ global-id num ]
8.
tp destination node-id [[ tunnel-tp num ] global-id num ]
9.
bfd bfd-template
10.
working-lsp
11.
in-label num
12.
out-label num out-link num
13.
exit
14.
protect-lsp
15.
in-label num
16.
out-label num out-link num
17.
exit
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
interface tunnel-tp number
Switch(config)# interface tunnel-tp 2 |
Enters tunnel interface configuration mode. Tunnel numbers from 0 to 999 are supported. |
Step 4 |
description tunnel-description
Switch(config-if)# description headend tunnel |
(Optional) Specifies a tunnel description. |
Step 5 |
tp tunnel-name name
Switch(config-if)# tp tunnel-name tunnel22 |
Specifies the name of the MPLS-TP tunnel. The TP tunnel name is displayed in the show mpls tp tunnel command output. This command is useful for consistently identifying the tunnel at all endpoints and midpoints. |
Step 6 |
tp bandwidth num
Switch(config-if)# tp bandwidth 10000 |
Specifies the tunnel bandwidth. |
Step 7 |
tp source node-id [ global-id num ]
Switch(config-if)# tp source 10.10.11.11 global-id 10 |
(Optional) Specifies the tunnel source and endpoint. This command is and not typically used, because the global router ID and global ID can be used to identify the tunnel source at the endpoint. All tunnels on the switch generally use the same (globally specified) source information. |
Step 8 |
tp destination node-id [[ tunnel-tp num ] global-id num ]
Switch(config-if)# tp destination 10.10.10.10 |
Specifies the destination node of the tunnel. |
Step 9 |
bfd bfd-template
Switch(config-if)# bfd mpls-tp-bfd-2 |
Specifies the BFD template. |
Step 10 |
working-lsp
Switch(config-if)# working-lsp |
Specifies a working LSP, also known as the primary LSP. This LSP is used to route traffic. This command enters working LSP interface configuration mode (config-if-working). |
Step 11 |
in-label num
Switch(config-if-working)# in-label 111 |
Specifies the in label. |
Step 12 |
out-label num out-link num
Switch(config-if-working)# out-label 112 out-link 1 |
Specifies the out label and out link. |
Step 13 |
exit
Switch(config-if-working)# exit |
Exits from working LSP interface configuration mode. |
Step 14 |
protect-lsp
Switch(config-if)# protect-lsp |
Specifies a backup for a working LSP. If the working LSP fails, traffic is switched to the protect LSP until the working LSP is restored, at which time forwarding reverts back to the working LSP. This command enters protect LSP interface configuration mode (config-if-protect). |
Step 15 |
in-label num
Switch(config-if-protect)# in-label 100 |
Specifies the in label. |
Step 16 |
out-label num out-link num
Switch(config-if-protect)# out-label 113 out-link 2 |
Specifies the out label and out link. |
Step 17 |
exit
Switch(config-if-protect)# exit |
Exits from protect LSP interface configuration mode. |
Configuring MPLS-TP LSPs at Midpoints
Note
When configuring the LSPs at the midpoint switchs, make that the configuration does not reflect traffic back to the originating node.
1.
enable
2.
configure terminal
3.
mpls tp lsp source node-id [ global-id num ] tunnel-tp num lsp { lsp-num | protect | working } destination node-id [ global-id num ] tunnel-tp num
4.
forward-lsp
5.
bandwidth num
6.
in-label num out-label num out-link num
7.
exit
8.
reverse-lsp
9.
bandwidth num
10.
in-label num out-label num out-link num
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
mpls tp lsp source node-id [ global-id num ] tunnel-tp num lsp { lsp-num | protect | working } destination node-id [ global-id num ] tunnel-tp num
Switch(config)# mpls tp lsp source 10.10.10.10 global-id 2 tunnel-tp 4 lsp protect destination 10.11.11.11 global-id 11 tunnel-tp 12
|
Enables MPLS-TP midpoint connectivity and enters MPLS TP LSP configuration mode. |
Step 4 |
forward-lsp
Switch(config-mpls-tp-lsp)# forward-lsp |
Enters MPLS-TP LSP forward LSP configuration mode. |
Step 5 |
bandwidth num
Switch(config-mpls-tp-lsp-forw)# bandwidth 100 |
Specifies the bandwidth. |
Step 6 |
in-label num out-label num out-link num
Switch(config-mpls-tp-lsp-forw)# in-label 53 out-label 43 out-link 41 |
Specifies the in label, out label, and out link numbers. |
Step 7 |
exit
Switch(config-mpls-tp-lsp-forw)# exit |
Exits MPLS-TP LSP forward LSP configuration mode. |
Step 8 |
reverse-lsp
Switch(config-mpls-tp-lsp)# reverse-lsp |
Enters MPLS-TP LSP reverse LSP configuration mode. |
Step 9 |
bandwidth num
Switch(config-mpls-tp-lsp-rev)# bandwidth 100 |
Specifies the bandwidth. |
Step 10 |
in-label num out-label num out-link num
Switch(config-mpls-tp-lsp-rev)# in-label 33 out-label 23 out-link 44 |
Specifies the in label, out label, and out link numbers. |
Configuring MPLS-TP Links and Physical Interfaces
MPLS-TP link numbers may be assigned to physical interfaces only. Bundled interfaces and virtual interfaces are not supported for MPLS-TP link numbers.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
interface type/num
4.
ip address ip-address mask
5.
mpls tp link link-num { ipv4 ip-address | tx-mac mac-address } rx-mac mac-address
6.
ip rsvp bandwidth [ rdm [ bc0 interface-bandwidth ] [[ single-flow-bandwidth [ bc1 bandwidth | sub-pool bandwidth ]]] [ interface-bandwidth [ single-flow-bandwidth [ bc1 bandwidth | sub-pool bandwidth ]] | mam max-reservable-bw [ interface-bandwidth [ single-flow-bandwidth ] [ bc0 interface-bandwidth [ bc1 bandwidth ]]] | percent percent-bandwidth [ single-flow-bandwidth ]]
7.
exit
8.
exit
9.
show mpls tp link-numbers
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
interface type/num
Switch(config)# interface ethernet 1/0 |
Specifies the interface and enters interface configuration mode. |
Step 4 |
ip address ip-address mask
Switch(config-if)# ip address 10.10.10.10 255.255.255.0 |
Assigns an IP address to the interface. |
Step 5 |
mpls tp link link-num { ipv4 ip-address | tx-mac mac-address } rx-mac mac-address
Switch(config-if)# mpls tp link 1 ipv4 10.0.0.2 |
Associates an MPLS-TP link number with a physical interface and next-hop node. On point-to-point interfaces or Ethernet interfaces designated as point-to-point using the medium p2p command, the next-hop can be implicit, so the mpls tp link command just associates a link number to the interface. Multiple tunnels and LSPs can refer to the MPLS-TP link to indicate they are traversing that interface. You can move the MPLS-TP link from one interface to another without reconfiguring all the MPLS-TP tunnels and LSPs that refer to the link. Link numbers a must be unique on the switch or node. |
Step 6 |
ip rsvp bandwidth [ rdm [ bc0 interface-bandwidth ] [[ single-flow-bandwidth [ bc1 bandwidth | sub-pool bandwidth ]]] [ interface-bandwidth [ single-flow-bandwidth [ bc1 bandwidth | sub-pool bandwidth ]] | mam max-reservable-bw [ interface-bandwidth [ single-flow-bandwidth ] [ bc0 interface-bandwidth [ bc1 bandwidth ]]] | percent percent-bandwidth [ single-flow-bandwidth ]]
Switch(config-if)# ip rsvp bandwidth 1158 100 |
Enables Resource Reservation Protocol (RSVP) bandwidth for IP on an interface. If you configure non-zero bandwidth for the TP tunnel or at a midpoint LSP, make sure that the interface to which the output link is attached has enough bandwidth available. For example, if three tunnel LSPs run over link 1 and each LSP was assigned 1000 with the tp bandwidth command, the interface associated with link 1 needs bandwidth of 3000 with the ip rsvp bandwidth command. |
Step 7 |
exit
Switch(config-if)# exit |
Exits interface configuration mode. |
Step 8 |
exit
Switch(config)# exit |
Exits global configuration mode. |
Step 9 |
show mpls tp link-numbers
Switch# show mpls tp link-numbers |
Displays the configured links. |
Configuring Static-to-Static Multisegment Pseudowires for MPLS-TP
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
l2 vfi name point-to-point
4.
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
5.
mpls label local-pseudowire-label remote-pseudowire-label
6.
mpls control-word
7.
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
8.
mpls label local-pseudowire-label remote-pseudowire-label
9.
mpls control-word
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
l2 vfi name point-to-point
Switch(config)# l2 vfi atom point-to-point
|
Creates a point-to-point Layer 2 virtual forwarding interface (VFI) and enters VFI configuration mode. |
Step 4 |
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
Switch(config-vfi)# neighbor 10.111.111.111 123 pw-class atom |
Sets up an emulated VC. Specify the IP address and the VC ID of the remote switch. Also specify the pseudowire class to use for the emulated VC. Note: Only two neighbor commands are allowed for each l2 vfi point-to-point command. |
Step 5 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(config-vfi)# mpls label 101 201 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 6 |
mpls control-word
Switch(config-vfi)# mpls control-word |
Specifies the control word. |
Step 7 |
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
Switch(config-vfi)# |
Sets up an emulated VC. Specify the IP address and the VC ID of the remote switch. Also specify the pseudowire class to use for the emulated VC. |
Step 8 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(config-vfi)# Switch(config-vfi)# mpls label 102 202 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 9 |
mpls control-word
Switch(config-vfi)# mpls control-word |
Specifies the control word. |
Configuring a Template with Pseudowire Type-Length-Value Parameters
1.
enable
2.
configure terminal
3.
pseudowire-tlv template template-name
4.
tlv [ type-name ] type-value length [ dec | hexstr | str ] value
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
pseudowire-tlv template template-name
Switch(config)# pseudowire-tlv template statictemp |
Creates a template of pseudowire type-length-value (TLV) parameters |
Step 4 |
tlv [ type-name ] type-value length [ dec | hexstr | str ] value
Switch(config-pw-tlv-template)# tlv statictemp 2 4 hexstr 1 |
Specifies the TLV parameters. |
Configuring Static-to-Dynamic Pseudowires for MPLS-TP
When you configure static-to-dynamic pseudowires, you configure the static pseudowire class with the protocol none command, create a dynamic pseudowire class, then invoke those pseudowire classes with the neighbor commands.
1.
enable
2.
configure terminal
3.
pseudowire-class class-name
4.
encapsulation mpls
5.
control-word
6.
protocol none
7.
exit
8.
pseudowire-class class-name
9.
encapsulation mpls
10.
exit
11.
l2 vfi name point-to-point
12.
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
13.
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
14.
mpls label local-pseudowire-label remote-pseudowire-label
15.
mpls control-word
16.
local interface pseudowire-type
17.
tlv [ type-name ] type-value length [ dec | hexstr | str ] value
or
tlv template template-name
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
pseudowire-class class-name
Switch(config)# pseudowire-class mpls-tp-class1 |
Creates a pseudowire class and enters pseudowire class configuration mode. |
Step 4 |
encapsulation mpls
Switch(config-pw-class)# encapsulation mpls |
Specifies the encapsulation type. |
Step 5 |
control-word
Switch(config-pw-class)# control-word |
Enables the use of the control word. |
Step 6 |
protocol { l2tpv2 | l2tpv3 | none } [ l2tp-class-name ]
Switch(config-pw-class)# protocol none |
Specifies the type of protocol. Use the protocol none command to specify a static pseudowire. |
Step 7 |
exit
Switch(config-pw-class)# exit |
Exits pseudowire class configuration mode. |
Step 8 |
pseudowire-class class-name
Switch(config)# pseudowire-class mpls-tp-class1 |
Creates a pseudowire class and enters pseudowire class configuration mode. |
Step 9 |
encapsulation mpls
Switch(config-pw-class)# encapsulation mpls |
Specifies the encapsulation type. |
Step 10 |
exit
Switch(config-pw-class)# exit |
Exits pseudowire class configuration mode. |
Step 11 |
l2 vfi name point-to-point
Switch(config)# l2 vfi atom point-to-point
|
Creates a point-to-point Layer 2 virtual forwarding interface (VFI) and enters VFI configuration mode. |
Step 12 |
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
Switch(config-vfi)# neighbor 10.111.111.111 123 pw-class atom |
Sets up an emulated VC. Specify the IP address and the VC ID of the remote switch. Also specify the pseudowire class to use for the emulated VC. Enters config-vfi-neighbor command mode. Note: Only two neighbor commands are allowed for each l2 vfi point-to-point command. |
Step 13 |
neighbor ip-address vc-id { encapsulation mpls | pw-class pw-class-name }
Switch(config-vfi-neighbor)# neighbor 10.111.111.111 123 pw-class atom |
Sets up an emulated VC. Specify the IP address and the VC ID of the remote switch. Also specify the pseudowire class to use for the emulated VC. Note: Only two neighbor commands are allowed for each l2 vfi point-to-point command. |
Step 14 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(config-vfi-neighbor)# mpls label 101 201 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 15 |
mpls control-word
Switch(config-vfi-neighbor)# mpls control-word |
Specifies the control word. |
Step 16 |
local interface pseudowire-type
Switch(config-vfi-neighbor)# local interface 4 |
Specifies the pseudowire type and enters VFI neighbor interface configuration mode. |
Step 17 |
tlv [ type-name ] type-value length [ dec | hexstr | str ] value or tlv template template-name
Switch(config-vfi-neighbor)# tlv statictemp 2 4 hexstr 1 |
Specifies the TLV parameters or invokes a previously configured TLV template. |
Example
l2 vfi atom point-to-point (static-dynamic MSPW)
neighbor 10.116.116.116 4294967295 pw-class dypw (dynamic)
neighbor 10.111.111.111 123 pw-class stpw (static)
tlv description 3 6 str abcd
tlv descr C 4 hexstr 0505
Configuring the L2VPN Pseudowire Redundancy for Static Pseudowires Backed Up with Static or Dynamic Pseudowires
1.
enable
2.
configure terminal
3.
interface ethernet type/num
4.
service instance id ethernet
5.
encapsulation dot1q vlan-id
6.
xconnect peer-ip-address vc-id { encapsulation { l2tpv3 [ manual ] | mpls [ manual ]} | pw-class pw-class-name } [ pw-class pw-class-name ] [ sequencing { transmit | receive | both }]
7.
mpls label local-pseudowire-label remote-pseudowire-label
8.
mpls control-word
9.
backup delay { enable-delay-period | never } { disable-delay-period | never }
10.
backup peer peer-switch-ip-addr vcid [ pw-class pw-class-name ] [ priority value ]
11.
mpls label local-pseudowire-label remote-pseudowire-label
12.
mpls control-word
DETAILED STEPS
|
|
|
Step 1 |
enable
Switch> enable |
Enables privileged EXEC mode.
- Enter your password if prompted.
|
Step 2 |
configure terminal
Switch# configure terminal |
Enters global configuration mode. |
Step 3 |
interface ethernet type/num
Switch(config)# interface ethernet 1/0 |
Specifies the interfaces and enters interface configuration mode. |
Step 4 |
service instance id ethernet
Switch(config-if)# service instance 1 ethernet |
Specifies the service instance and enters service instance interface configuration mode. |
Step 5 |
encapsulation dot1q vlan-id
Switch(config-if-srv)# encapsulation dot1q 10 |
Enables the interface to accept 802.1Q VLAN packets. |
Step 6 |
xconnect peer-ip-address vc-id { encapsulation { l2tpv3 [ manual ] | mpls [ manual ]} | pw-class pw-class-name } [ pw-class pw-class-name ] [ sequencing { transmit | receive | both }]
Switch(config-if-srv)# xconnect 10.109.10.10 123encapsulation mpls manual pw-class stpw |
Binds the attachment circuit to a pseudowire VC and enters xconnect configuration mode. |
Step 7 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(cfg-if-ether-vc-xconn)# mpls label 100 150 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 8 |
mpls control-word
Switch(cfg-if-ether-vc-xconn)# no mpls control-word |
Specifies the control word. |
Step 9 |
backup delay { enable-delay-period | never } { disable-delay-period | never }
Switch(cfg-if-ether-vc-xconn)# backup delay 0 never |
Specifies how long a backup pseudowire virtual circuit (VC) should wait before resuming operation after the primary pseudowire VC goes down. |
Step 10 |
backup peer peer-switch-ip-addr vcid [ pw-class pw-class-name ] [ priority value ]
Switch(cfg-if-ether-vc-xconn)# backup peer 10.0.0.2 50 |
Specifies a redundant peer for a pseudowire virtual circuit (VC). Enters backup xconnect configuration mode. |
Step 11 |
mpls label local-pseudowire-label remote-pseudowire-label
Switch(cfg-if-ether-vc-xconn-bkup)# mpls label 100 150 |
Configures the static pseudowire connection by defining local and remote circuit labels. |
Step 12 |
mpls control-word
Switch(cfg-if-ether-vc-xconn-bkup)# no mpls control-word |
Specifies the control word. |
Example
service instance 1 ethernet
xconnect 10.113.113.113 123 encapsulation mpls manual pw-class stpw
backup peer 1 0.120.120.120 124 pw-class stpw
Verifying the MPLS-TP Configuration
When the entire tunnel is programmed, use the following commands to verify and help troubleshoot the configuration:
- show mpls tp tunnel-tp lsps: To ensure that both LSPs are up and working from a tunnel endpoint.
- show mpls tp tunnel-tp number detail : To help determine the cause if the tunnel is not up and working.
- show bfd neighbors mpls-tp: To display the state of BFD, which must be up for the endpoint LSPs to be up.
- trace mpls tp and ping mpls tp : To help isolate any connectivity issues.
- debug mpls tp : To enable the display of MPLS-TP error messages.
- logging (MPLS-TP): To enable the display of logging messages related to configuration changes or state changes.
- show mpls l2transport static-oam: To enable the display of MPLS-TP messages related to pseudowires.
Cisco and the Cisco logo are trademarks or registered trademarks of Cisco and/or its affiliates in the U.S. and other countries. To view a list of Cisco trademarks, go to this URL: www.cisco.com/go/trademarks. Third-party trademarks mentioned are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any other company. (1721R)
Any Internet Protocol (IP) addresses and phone numbers used in this document are not intended to be actual addresses and phone numbers. Any examples, command display output, network topology diagrams, and other figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses or phone numbers in illustrative content is unintentional and coincidental.
© 2011 Cisco Systems, Inc. All rights reserved.