一般的数据包,在MPLS网络中如下图所示的方法传递:


An incoming IP packet is forwarded by using the FIB table, and can be sent out as an IP packet or as a labeled IP packet. But an incoming labeled packet is forwarded by using the LFIB table and sent out as a labeled IP packet. If a router did not get a label from the next-hop router, the label is removed and an unlabeled IP packet is sent.

The figure illustrates how IP packets are propagated across an MPLS domain. The steps are as
follows:
Step 1 A standard IP packet destined for network X arrives at router A.
Step 2 Router A labels a packet destined for network X by using the next-hop label 25 (CEF switching by using the FIB table).
Step 3 Router A sends the packet toward network X with the MPLS label 25.
Step 4 Router B swaps label 25 with label 47 using the LFIB.
Step 5 Router B forwards the packet to router C (label switching by using the LFIB table).
Step 6 Router C removes (pops) the label.
Step 7 Router C forwards the unlabeled packet to router D (label removed by using the LFIB table).

这里有一个问题,标签到达C时就已经被弹出,为什么不到边缘LSR时再弹出呢?

回答这个问题,只要看看,假设到LER再弹出,会出现什么结果,我们就知道为什么要倒数第二跳弹出了。

如果到LER时再弹出,会如下图的情况:

当带有标签19的数据包到达LER后,LER首先查找LFIB,去除标签;然后再查找FIB,再转发出去。也就是说LER需要比普通的路由器多查一个表。这样,它的负担无疑就重了。如果在倒数第二跳将标签弹出再发到LER,那LER就不需要再查找LFIB了。

问题:

假如没有倒数第二跳,路由器D(LER)的LFIB是什么样的?有倒数第二跳的情况呢?