Usage Guidelines
Use the
traceroute mpls command to validate, test, or troubleshoot IPv4 LDP LSPs and IPv4 Resource Reservation Protocol (RSVP) TE tunnels.
UDP Destination Address Usage
The destination address is a valid 127/8 address. You can specify a single 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 localhost (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 Keyword 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.
Pseudowire Usage
The following keywords are not available with the
traceroute mpls pseudowire command:
-
flags
-
force-explicit-null
-
output
-
revision
-
ttl
Revision Keyword Usage
The
revision keyword allows you to issue a
traceroute mpls ipv4
or
traceroute 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 any images were shipped.
|
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 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.
|
Examples
The following example shows how to trace packets through an MPLS LDP LSP:
Router# traceroute mpls ipv4 10.131.191.252/32
Alternatively, you can use the interactive mode:
Protocol [ip]: mpls
Target IPv4, pseudowire or traffic-eng [ipv4]: <ipv4 |pseudowire |tunnel> ipv4
Target IPv4 address: 10.131.191.252
Target mask: /32
Repeat [1]:
Packet size [100]:
Timeout in seconds [2]:
Extended commands? [no]: yes
Destination start address:
Destination end address:
Source address:
EXP bits in mpls header [0]:
TimeToLive [255]:
Reply mode (2-ipv4 via udp, 3-ipv4 via udp with router alert) [2]:
Reply ip header DSCP bits [0]:
Tracing MPLS Label Switched Path to 10.131.191.252/32, 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.
0 10.131.159.245 mtu 1500 []
! 1 10.131.191.252 100 ms
The following example shows how to trace packets through an MPLS TE tunnel:
Router# traceroute mpls traffic-eng Tunnel 0
Tracing MPLS TE Label Switched Path on Tunnel0, 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.
0 10.131.159.230 mtu 1500 [Labels: 22 Exp: 0]
R 1 10.131.159.225 mtu 1500 [Labels: 22 Exp: 6] 72 ms
R 2 10.131.191.229 mtu 1504 [implicit-null] 72 ms
! 3 10.131.191.252 92 ms
Alternatively, you can use the interactive mode:
Router# traceroute
Protocol [ip]: mpls
Target IPv4 or tunnel [ipv4]: traffic-eng
Tunnel number [0]:
Repeat [1]:
Timeout in seconds [2]:
Extended commands? [no]:
Tracing MPLS TE Label Switched Path on Tunnel0, 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.
0 10.131.159.230 mtu 1500 [Labels: 22 Exp: 0]
R 1 10.131.159.225 mtu 1500 [Labels: 22 Exp: 6] 72 ms
R 2 10.131.191.229 mtu 1504 [implicit-null] 72 ms
! 3 10.131.191.252 92 ms
Use the
show running-config command to verify the configuration of Tunnel 0 (shown in bold). The tunnel destination has the same IP address as the one
in the earlier trace IPv4 example, but the trace takes a different path, even though tunnel 0 is not configured to forward
traffic by means of autoroute or static routing. The
trace mpls traffic-eng
command is powerful; it enables you to test the tunnels to verify that they work before you map traffic onto them.
Router# show running-config interface tunnel 0
Building configuration...
Current configuration : 210 bytes
!
interface Tunnel0
ip unnumbered Loopback0
no ip directed-broadcast
tunnel destination 10.131.191.252 <----
Tunnel destination IP address.
tunnel mode mpls traffic-eng
tunnel mpls traffic-eng path-option 5 explicit name as1pe-long-path
end
Router# show mpls traffic-eng tunnels tunnel 0 brief
Signalling Summary:
LSP Tunnels Process: running
RSVP Process: running
Forwarding: enabled
Periodic reoptimization: every 3600 seconds, next in 1369 seconds
Periodic FRR Promotion: Not Running
Periodic auto-bw collection: disabled
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
PE_t0 10.131.191.252 - Et0/0 up/up
Router# show ip cef 10.131.191.252
10.131.191.252/32, version 37, epoch 0, cached adjacency 10.131.159.246
0 packets, 0 bytes
tag information set, all rewrites owned
local tag: 21
via 10.131.159.246, Ethernet1/0, 0 dependencies
next hop 10.131.159.246, Ethernet1/0
valid cached adjacency
tag rewrite with Et1/0, 10.131.159.246, tags imposed {}
The following example performs a trace operation on a multisegment pseudowire. The trace operation goes to segment 2 of the
multisegment pseudowire.
Router# traceroute mpls pseudowire 10.10.10.9 220 segment 2
Tracing MS-PW segments within range [1-2] peer address 10.10.10.9 and timeout 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 label entry,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
L 1 10.10.9.9 4 ms [Labels: 18 Exp: 0]
local 10.10.10.22 remote 10.10.10.9 vc id 220
! 2 10.10.3.3 4 ms [Labels: 16 Exp: 0]
local 10.10.10.9 remote 10.10.10.3 vc id 220