Have you ever think of that what will happen if you are not going to use loopbacks in your MPLS enviorment. The same has been tested in test lab and you will be stumbled across to see the results. Prior reading to this article kindly have a look on PHP first.
LER-1#sh mpls ldp bindings 10.1.1.8 30 detail
tib entry: 10.1.1.0/30, rev 6
local binding: tag: 17
remote binding: tsr: 10.1.1.2:0, tag: 16
As per LER-1 output tag 16 is used for forwarding. It means outgoing label is 16 and it will become the incoming label of LSR-1.
LSR-1#sh mpls ldp bindings 10.1.1.8 30 detail
tib entry: 10.1.1.8/30, rev 6
local binding: tag: 16
remote binding: tsr: 10.1.1.6:0, tag: imp-null
remote binding: tsr: 10.1.1.1:0, tag: 17
LSR-1 is getting imp-null from 10.1.1.6. It means IGP tag is removed here and packet will be forwarded with VPN tag only.
In the above output we actually get the reason for not pinging. The reason is Penultimate Hop Popping (PHP). Actually LSR-1 is getting imp-null from LSR-2 because 10.1.1.8/30 is directly attached subnet. Because of PHP LSR-1 is removing IGP label before forwarding to LSR-2. So LSR-2 is receiving the packet with vpn label and it LFIB it is not able to get the label and subsequently packet drops at LSR-2. From figure 1 you can see the PHP is happening twice for 10.1.1.8/30 subnet because it is directly connected to LSR-2 & LER-2.
After creating loopbacks PHP will take place only once and IGP label will be removed by LSR-2 and end to end ping will be achieved.
Download Full Article