LSP Verification

LSP verification (LSPV) is the Cisco IOS subsystem that is responsible for anything related to MPLS LSP ping and traceroute. The duties of LSPV include these:

■ Encoding and decoding of MPLS echo requests and MPLS echo replies

■ Maintaining a database of outstanding MPLS echo requests

■ Providing the command-line interface (CLI) for MPLS LSP ping and traceroute

■ Interfacing with IP, MPLS, and AToM on the LSR to send and receive the echo requests and replies

■ Listening to UDP port 3503

■ Handling packets with MPLS TTL expiring and packets with the MPLS Router Alert label

It is important to note that in Cisco IOS, even if MPLS is not enabled on the router, LSPV still functions. The reasoning behind this is that stray packets might still arrive on a router that is not running MPLS because of a malfunctioning on another router. To ensure that echo reply packets are created in response to the erroneously forwarded echo requests, every router in the network should be running LSPV. This ensures that a response is created in the face of problems, rather than no response at all.

On a Cisco router that is running LSPV, the following LSPV debugs are available:

■ Debug mpls lspv error

■ Debug mpls lspv event

■ Debug mpls lspv packet data

■ Debug mpls lspv packet error

MPLS Ping in Cisco IOS

In Cisco IOS, you can send an MPLS LSP ping with the ping mpls command. In Example 14-1, you can see that three options exist: IPv4, traffic-eng, and pseudowire. The pseudowire option is for Virtual Circuit Connection Verification (VCCV), which is explained later in this chapter. The IPv4 option is for sending an echo request for an LSP that is bound to an IPv4 prefix. The FEC is chosen by specifying the IPv4 prefix (network and mask). As such, the corresponding label stack for this IPv4 prefix is put on the echo request. The destination IP address of the echo request is by default 127.0.0.1. Therefore, the router uses the target FEC address you type in to figure out which label stack to put on the packet and on which LSP to forward the packet; it is not used as the real destination IP address in the IP header.

Example 14-1 MPLS LSP Ping new-york#ping mpls ?

ipv4 Target specified as an IPv4 address pseudowire Target VC specified as an IPv4 address and VC ID traffic-eng Target specified as TE tunnel interface <cr>

new-york#ping mpls ipv4 ? A.B.C.D {/nn | | A.B.C.D} Target FEC address with mask new-york#ping mpls ipv4 10.200.254.4 ?

A.B.C.D {/nn | | A.B.C.D} IP prefix and prefix mask

Example 14-1 MPLS LSP Ping (Continued)

new-york#ping mpls ipv4 10.200.254.4/32 ?

destination Destination address or address range dsmap Request dsmap from replying router exp EXP bits in mpls header flags Flag options force-explicit-null force an explicit null label to be added

interval

Send interval between requests in msec

output

Output options

pad

Pad TLV pattern

repeat

Repeat count

reply

Reply mode

revision

Echo Packet TLV versioning

size

Packet size

source

Source specified as an IP address

sweep

Sweep range of sizes

timeout

Timeout in seconds

ttl

Time to live

verbose

verbose output mode

<cr>

In Example 14-1, you can see additional options for the LSP ping for a FEC that is bound to an IPv4 address. You can change the destination address from the default 127.0.0.1 to any IP address. The destination IP address in Cisco IOS can be anything, although theoretically it should be from the range 127.0.0.0/8. You can change the experimental bits value with the exp keyword. This makes it easy to test the QoS treatment of labeled packets along an LSP. The pad keyword allows you to specify the pad filling of the packet. An MPLS LSP ping sends five echo requests by default, but you can change this with the repeat keyword. The size and sweep keywords let you specify the size of the packet. As such, you can test the MTU of the LSP. It is important to note that the router sets the Don't Fragment (DF) bit in the IP header of the echo request packet; that way, an LSR does not fragment the packet if the MTU of a link is not big enough to forward the packet. The Reply mode lets you specify how the echo reply packets are to be sent back. Example 14-2 shows the three possible Reply modes for LSP ping in Cisco IOS.

Example 14-2 MPLS LSP Ping Reply Modes new-york#ping mpls ipv4 10.200.254.4/32 reply mode ?

ipv4 Send reply via IPv4

no-reply Send no reply router-alert Send reply via IPv4 UDP with router alert

The ipv4 keyword is the default; it indicates that the echo reply packet is sent back as a regular IPv4 packet. If the return path is actually an LSP, the echo reply packet is sent back as a labeled packet. This is not something that the sender of the MPLS LSP ping can control. The no-reply keyword indicates that no echo reply packet should be sent back. It might be that you can account for the packets received in another way, such as by another application running on the receiving LSR. The router-alert keyword indicates that the echo reply packet has the IP Router Alert option.

If that echo reply packet is returned labeled, it also has the Router Alert label. This indicates intermediate LSRs to intercept and investigate the packet. The Verbose mode provides additional information. The return code and source IP addresses of the echo reply packets are printed in Verbose mode.

Look at Figure 14-7 for the network topology used for the remainder of this chapter.

Figure 14-7 Network Topology

Loopback 0 10.200.254.5/32

Figure 14-7 Network Topology

Loopback 0 10.200.254.5/32

Look at Example 14-3 for a successful MPLS LSP ping. The return code 3 indicates that the egress LSR for the FEC returned the echo reply. The MPLS LSP ping was thus successful, as indicated by the exclamation marks (!).

Example 14-3 Successful MPLS LSP Ping new-york#ping mpls ipv4 10.200.254.4/32 verbose Sending 5, 100-byte MPLS Echos to 10.200.254.4/32, timeout is 2 seconds, send interval is 0 msec:

Codes: '!' - success, 'Q' - request not sent, '.' - timeout,

- labeled output interface, 'B' - unlabeled output interface,

- DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

- malformed request, 'm' - unsupported tlvs, 'N' - no label entry,

- no rx intf label prot, 'p' - premature termination of LSP,

- transit router, 'I' - unknown upstream index,

Type escape sequence to abort.

! size 100, reply addr 10.200.214.2, return code 3

Example 14-3 Successful MPLS LSP Ping (Continued)

! size 100, reply addr 10.200.214.2, return code 3

! size 100, reply addr 10.200.214.2, return code 3

! size 100, reply addr 10.200.214.2, return code 3

! size 100, reply addr 10.200.214.2, return code 3

Success rate is 100 percent (5/5), round-trip min/avg/max = 60/72/92 ms

Look at Example 14-4. It shows the same MPLS LSP ping, but with a TTL of 2. Because the egress LSR is three hops away, the TTL of the echo request packets expires at the penultimate hop LSR on the LSP. That LSR sends back an echo reply packet with a return code of 8, indicating that the packet was correctly labeled but that it is not the target router for this FEC (the egress LSR). This is indicated with an L in the output.

Example 14-4 Early Terminated MPLS LSP Ping new-york#ping mpls ipv4 10.200.254.4/32 ttl 2 verbose

Sending 5, 100-byte MPLS Echos to 10.200.254.4/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 label entry,

'P' - no rx intf label prot, 'p' - premature termination of LSP,

'R' - transit router, 'I' - unknown upstream index,

Type escape sequence to abort.

L size 100, reply addr 10.200.211.2, return code 8

L size 100, reply addr 10.200.211.2, return code 8

L size 100, reply addr 10.200.211.2, return code 8

L size 100, reply addr 10.200.211.2, return code 8

L size 100, reply addr 10.200.211.2, return code 8

Success rate is 0 percent (0/5)

NOTE In Table 14-2, return code 6 is "Upstream Interface Index Unknown." In Cisco IOS versions that use an MPLS OAM implementation released before RFC 4379 was finalized, return code 6 is frequently seen in the output of ping mpls. A few implementations were based on the drafts leading up to RFC 4379. In these older Cisco IOS versions, return code 6 meant, "Replying router is one of the 'Downstream Routers,' and its mapping for this FEC on the received interface is the given label." This corresponds to return code 8 in the RFC. You can choose to use a certain revision of the draft/RFC by using the revision keyword for the ping mpls and traceroute mpls commands.

A prerequisite for receiving any echo reply is that the LSR that is receiving the echo request must run LSPV. If the LSR does not run LSPV, it drops all packets that are destined for UDP port 3503, and the MPLS LSP ping times out, which is indicated by a period (.) in the output. The receiver sends an ICMP message "time exceeded" (TTL expired)—because the destination IP address is 127.0.0.1—, but this is not shown in the "ping mpls" output.

You can also use MPLS LSP ping to verify a TE LSP. On the head end router of the TE tunnel, the echo request packet is forced onto the TE tunnel. Note that the TE tunnel does not need to have autoroute announce or forwarding adjacency. Without either configured, the TE tunnel does not actually forward IP traffic. The great advantage of MPLS LSP ping is that it can verify the TE tunnel before it attracts data to be forwarded. Example 14-5 shows an MPLS LSP ping onto a TE tunnel.

Example 14-5 MPLS LSP Ping onto TE Tunnel new-york#ping mpls traffic-eng Tunnel 1 verbose

Sending 5, 100-byte MPLS Echos to Tunnell, timeout is 2 seconds, send interval is 0 msec:

'!' - success, 'Q' - request not sent, '.' - timeout,

- labeled output interface, 'B' - unlabeled output interface,

- DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,

- malformed request, 'm' - unsupported tlvs, 'N' - no label entry,

- no rx intf label prot, 'p' - premature termination of LSP,

- transit router, 'I' - unknown upstream index,

escape sequence

to abort.

size

100,

reply

addr 1

0.200

214

2,

return

code

3

size

100,

reply

addr 1

0.200

214

2,

return

code

3

size

100,

reply

addr 1

0.200

214

2,

return

code

3

size

100,

reply

addr 1

0.200

214

2,

return

code

3

size

100,

reply

addr 1

0.200

214

2,

return

code

3

Success rate is 100 percent (5/5), round-trip min/avg/max = 60/69/88 ms

Success rate is 100 percent (5/5), round-trip min/avg/max = 60/69/88 ms

Micro Expression Master

Micro Expression Master

If You Could Read Everyone Life A Book You Can Have Better Career, Great Relationships And Become Successful. This Book Is One Of The Most Valuable Resources In The World When It Comes To Reading the smallest and tiniest body Language and know what people are thinking about.

Get My Free Ebook


Post a comment