Usage Guidelines
Note |
It is recommended that you use the
mpls oam global configuration command instead of this command.
|
Use the
ping mpls command to validate, test, or troubleshoot IPv4 LDP LSPs, IPv4 Resource Reservation Protocol (RSVP) TE tunnels, and AToM
VCs.
With the introduction of Cisco IOS-XE Release 3.6, the
interval keyword value range changed from 0 to 3,600,000 ms to 0 or 100 to 3,600,000 ms between successive MPLS echo requests.
UDP Destination Address Usage
The destination address is a valid 127/8 address. You have the option to specify a single x.y.z-address
or a range of numbers from 0.0.0 to
x.y.z , where
x ,
y , and
z are numbers from 0 to 255 and correspond to the 127.x.y.z
destination address.
The MPLS echo request destination address in the UDP packet is not used to forward the MPLS packet to the destination router.
The label stack that is used to forward the echo request routes the MPLS packet to the destination router. The 127/8 address
guarantees that the packets are routed to the local host (the default loopback address of the router processing the address)
if the UDP packet destination address is used for forwarding.
In addition, the destination address is used to adjust load balancing when the destination address of the IP payload is used
for load balancing.
Time-to-Live Usage
The time-to-live value indicates the maximum number of hops a packet should take to reach its destination. The value in the
TTL field in a packet is decremented by 1 each time the packet travels through a router.
For MPLS LSP ping, the TTL is a value after which the packet is discarded and an MPLS echo reply is sent back to the originating
router.
For MPLS multipath LSP traceroute, the TTL is a maximum time-to-live value and is used to discover the number of downstream
hops to the destination router. MPLS LSP traceroute incrementally increases the TTL value in its MPLS echo requests (TTL =
1, 2, 3, 4, ...) to accomplish this.
Downstream Map TLVs
The presence of a downstream map in an echo request is interpreted by the responding transit (not egress) router to include
downstream map information in the echo reply. Specify the
ttl and
dsmap keywords to cause TTL expiry during LSP ping to interrogate a transit router for downstream information.
Pseudowire Usage
The following keywords are not available with the
ping mpls pseudowire command:
-
dsmap
-
flags
-
force-explicit-null
-
output
-
revision
-
ttl
The
ping mpls pseudowire command is not supported when flow label (FAT) is enabled. If you enter the
ping mpls pseudowire command when FAT is enabled the following message is displayed:
% Pseudowire Target Not Supported
Revision Keyword Usage
The
revision keyword allows you to issue a
ping mpls ipv4 ,
ping mpls pseudowire , or
trace mpls traffic-eng command based on the format of the TLV. The table below lists the revision option and usage guidelines for each option.
Table 2. Revision Options and Option Usage Guidelines
Revision Option
|
Option Usage Guidelines
|
11
|
Not supported in Cisco IOS Release 12.4(11)T or later releases.
Version 1 (draft-ietf-mpls-ping-03).
For a device running Cisco IOS Release 12.0(27)S3 or a later release, you must use the
revision 1 keyword when you send LSP ping or LSP traceroute commands to devices running Cisco IOS Release 12.0(27)S1 or 12.0(27)S2.
|
2
|
Version 2 functionality was replaced by Version 3 functionality before an image was released.
|
3
|
Version 3 (draft-ietf-mpls-ping-03).
-
For a device implementing Version 3 (Cisco IOS Release 12.0(27)S3 or a later release), you must use the
revision 1 keyword when you send the LSP
ping or LSP
traceroute command to a device implementing Version 1 (that is, either Cisco IOS Release 12.0(27)S1 or Release 12.0(27)S2).
-
A
ping mpls
mpls pseudowire command does not work with devices running Cisco IOS Release 12.0(27)S1 or Release 12.0(27)S2.
|
4
|
-
Version 8 (draft-ietf-mpls-ping-08)--Applicable before Cisco IOS Release 12.4(11)T. All echo packet’s TLVs are formatted
as specified in Version 8.
-
RFC 4379 compliant--Applicable after Cisco IOS Release 12.4(11)T. All echo packet’s TLVs are formatted as specified in RFC
4379.
|
With the introduction of Cisco IOS
Examples
The following example shows how to use the
ping mpls command to test connectivity of an IPv4 LDP LSP:
Router# ping mpls ipv4 10.131.191.252/32 repeat 5 exp 5 verbose
Sending 5, 100-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
! 10.131.191.230, return code 3
! 10.131.191.230, return code 3
! 10.131.191.230, return code 3
! 10.131.191.230, return code 3
! 10.131.191.230, return code 3
Success rate is 100 percent (5/5), round-trip min/avg/max = 100/102/112 ms
The following example shows how to invoke the
ping mpls command in the interactive mode to check MPLS LSP connectivity:
Router# ping
Protocol [ip]: mpls
Target IPv4, pseudowire or traffic-eng [ipv4]: ipv4
Target IPv4 address: 10.131.159.252
Target mask: 255.255.255.255
Repeat count [5]: 1
Datagram size [100]:
Timeout in seconds [2]:
Send interval in msec [0]:
Extended commands? [no]: yes
Destination address or destination start address: 127.0.0.1
Destination end address: 127.0.0.1
Destination address increment: 0.0.0.1
Source address:
EXP bits in mpls header [0]:
Pad TLV pattern [ABCD]:
Time To Live [255]:
Reply mode ( 2-ipv4 via udp, 3-ipv4 via udp with router alert) [2]:
Reply ip header DSCP bits [0]:
Verbose mode? [no]: yes
Sweep range of sizes? [no]:
Sending 1, 100-byte MPLS Echos to 10.131.159.252/32,
timeout is 2 seconds, send interval is 0 msec:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
Destination address 127.0.0.1
! 10.131.159.245, return code 3
Destination address 127.0.0.1
! 10.131.159.245, return code 3
Destination address 127.0.0.1
! 10.131.159.245, return code 3
Success rate is 100 percent (3/3), round-trip min/avg/max = 40/48/52 ms
Note |
The “Destination end address” and “Destination address increment” prompts display only if you enter an address at the “Destination
address or destination start address” prompt. Also, the “Sweep min size,” “Sweep max size,” and “Sweep interval” prompts display
only if you enter “yes” at the “Sweep range of sizes? [no]” prompt.
|
The following example shows how to determine the destination address of an AToM VC:
Router# show mpls l2transport vc
Local intf Local circuit Dest address VC ID Status
------------- ----------------------- --------------- ---------- ----------
Et2/0 Ethernet 10.131.191.252
333 UP
Router# show mpls l2transport vc detail
Local interface: Et2/0 up, line protocol up, Ethernet up
Destination address: 10.131.191.252, VC ID: 333, VC status: up
Preferred path: not configured
Default path: active
Tunnel label: imp-null, next hop 10.131.159.246
Output interface: Et1/0, imposed label stack {16}
Create time: 06:46:08, last status change time: 06:45:51
Signaling protocol: LDP, peer 10.131.191.252:0 up
MPLS VC labels: local 16, remote 16
Group ID: local 0, remote 0
MTU: local 1500, remote 1500
Remote interface description:
Sequencing: receive disabled, send disabled
VC statistics:
packet totals: receive 0, send 0
byte totals: receive 0, send 0
packet drops: receive 0, send 0
This
ping mpls pseudowire command can be used to test the connectivity of the AToM VC 333 discovered in the preceding
show command:
Router# ping mpls pseudowire 10.131.191.252 333 repeat 200 size 1400
Sending 1, 100-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!
Success rate is 100 percent (1/1), round-trip min/avg/max = 92/92/92 ms
This ping is particularly useful because the VC might be up and the LDP session between the PE and its downstream neighbor
might also be up, but LDP might be configured somewhere in between. In such cases, you can use an LSP ping to verify that
the LSP is actually up.
A related point concerns the situation when a pseudowire has been configured to use a specific TE tunnel. For example:
Router# show running-config interface ethernet 2/0
Building configuration...
Current configuration : 129 bytes
!
interface Ethernet2/0
no ip address
no ip directed-broadcast
no cdp enable
xconnect 10.131.191.252 333 pw-class test1
end
Router# show running-config
| begin pseudowire
pseudowire-class test1
encapsulation mpls
preferred-path interface Tunnel0
In such cases, you can use an LSP ping to verify the connectivity of the LSP that a certain pseudowire is taking, be it LDP
based or a TE tunnel:
Router#
ping mpls pseudowire 10.131.191.252 333 repeat 200 size 1400
Sending 200, 1400-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent (200/200), round-trip min/avg/max = 72/85/112 ms
You can also use the
ping mpls command to verify the maximum packet size that can be successfully sent. The following command uses a packet size of 1500
bytes:
Router# ping mpls pseudowire 10.131.191.252 333 repeat 5 size 1500
Sending 5, 1500-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
QQQQQ
Success rate is 0 percent (0/5)
The Qs indicate that the packets are not sent.
The following command uses a packet size of 1476 bytes:
Router# ping mpls pseudowire 10.131.191.252 333 repeat 5 size 1476
Sending 5, 1476-byte MPLS Echos to 10.131.191.252, timeout is 2 seconds:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 80/83/92 ms
The following example shows how to test the connectivity of an MPLS TE tunnel:
Router# ping mpls traffic-eng tunnel tun3 repeat 5 verbose
Sending 5, 100-byte MPLS Echos to Tunnel3,
timeout is 2 seconds, send interval is 0 msec:
Codes:
'!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
! 10.131.159.198, return code 3
! 10.131.159.198, return code 3
! 10.131.159.198, return code 3
! 10.131.159.198, return code 3
! 10.131.159.198, return code 3
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/37/40 ms
The MPLS LSP ping feature is useful if you want to verify TE tunnels before actually mapping traffic onto them.
The following example shows a
ping mpls command that specifies segment 2 of a multisegment pseudowire:
Router# ping mpls pseudowire 10.131.191.252 333 segment 2