I wanted to lab up MPLS LDP session protection to reduce the time needed for LDP convergence in the event of a link failure. However, having targeted hellos is a prerequisite. So lets configure it.

Still working off the same topology, I’ll set up and test targeted hello sessions between PE_WEST and P1.

First I am going to shut down the link a P1 towards PE_WEST. The LDP neighbors drop as expected.

P1(config)#int fa1/0
P1(config-if)#shut
4d01h: %OSPF-5-ADJCHG: Process 1, Nbr 100.100.100.100 on FastEthernet1/0 from FULL to DOWN, Neighbor Down: Interface down or detached
4d01h: %LDP-5-NBRCHG: LDP Neighbor 100.100.100.100:0 is DOWN

3d22h: %LDP-5-NBRCHG: LDP Neighbor 1.1.1.1:0 is DOWN

Even though that link is down, connectivity between the loopbacks still work fine.

PE_WEST#ping 1.1.1.1 so lo0

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
Packet sent with a source address of 100.100.100.100
!!!!!

I brought the link back up, and configured targeted hellos between PE_WEST and P1

PE_WEST(config)#mpls ldp neigh 1.1.1.1 targeted ldp

P1(config)#mpls ldp neigh 100.100.100.100 targeted ldp

Now shutting down the link again, the neighbors stay up.

P1#show ip int fa1/0 | i 1/0
FastEthernet1/0 is administratively down, line protocol is down

P1#show mpls ldp neighbor 100.100.100.100 detail
Peer LDP Ident: 100.100.100.100:0; Local LDP Ident 1.1.1.1:0
TCP connection: 100.100.100.100.11194 - 1.1.1.1.646
State: Oper; Msgs sent/rcvd: 35/32; Downstream; Last TIB rev sent 34
Up time: 00:13:26; UID: 10; Peer Id 0;
LDP discovery sources:
Targeted Hello 1.1.1.1 -> 100.100.100.100, active, passive;
holdtime: infinite, hello interval: 10000 ms
Addresses bound to peer LDP Ident:
10.10.11.10     10.20.22.10     100.100.100.100
Peer holdtime: 180000 ms; KA interval: 60000 ms; Peer state: estab
Clients: Dir Adj Client

PE_WEST#show mpls ldp discovery
 Local LDP Identifier:
    100.100.100.100:0
    Discovery Sources:
    Interfaces:
        FastEthernet2/0 (ldp): xmit/recv
        FastEthernet2/1 (ldp): xmit/recv
            LDP Id: 2.2.2.2:0
    Targeted Hellos:
        100.100.100.100 -> 1.1.1.1 (ldp): active/passive, xmit/recv
            LDP Id: 1.1.1.1:0

In the output shows the targeted hello between 1.1.1.1 <-> 100.100.100.100. Turn debug up and verify the transport protocol and port for these hellos.

PE_WEST(config)#access-list 103 permit ip host 100.100.100.100 host 1.1.1.1
PE_WEST(config)#access-list 103 permit ip host 1.1.1.1 host 100.100.100.100

PE_WEST#debug ip packet detail 103

3d22h: IP: s=1.1.1.1 (FastEthernet2/1), d=100.100.100.100, len 62, rcvd 23d22h:     UDP src=646, dst=646
3d22h: IP: s=1.1.1.1 (FastEthernet2/1), d=100.100.100.100, len 62, stop process pak for forus packet
3d22h:     UDP src=646, dst=646
3d22h: IP: s=100.100.100.100 (local), d=1.1.1.1 (FastEthernet2/1), len 62, sending
3d22h:     UDP src=646, dst=646
3d22h: IP: s=1.1.1.1 (FastEthernet2/1), d=100.100.100.100, len 62, rcvd 2
3d22h:     UDP src=646, dst=646

It used UDP with src/dst port for the hellos as before. Only instead of the all routers multicast address they are targeted.

With targeted hellos working, next post I can MPLS LDP session protection.