标签分析:
======================================================================================
栈底位(S=1)标签21 :
LSR-PE#sh bgp vpnv4 unicast vrf label labels
Network Next Hop In label/Out label
Route Distinguisher: 64512:1 (label)
10.224.72.1/32 0.0.0.0 25/nolabel(label)
10.224.73.1/32 172.16.255.1 nolabel/21
21标签是由MP-BGP协议的VPNv4地址簇分发的,作为栈底位标签,由对端PE分发,下一跳 172.16.255.1(对端PE的BGP更新源)
======================================================================================
外层标签(S=0)标签26
LSR-PE#sh bgp ipv4 un labels
Network Next Hop In label/Out label
172.16.255.1/32 192.168.255.5 nolabel/26
26标签是MP-BGP协议的iPv4的labeled-unicast地址簇分发的,作为外层标签,由ASBR(自制系统边界路由器)分发,下一跳为192.168.255.5(ASBR的更新源)
======================================================================================
外层标签(S=0)标签23
LSR-PE#sh mpls forwarding-table
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
…
23 23 192.168.255.5/32 0 Gi1 192.168.0.2
23标签是LDP协议分发的,作为外层标签,由LSR-TH分发,下一跳为192.168.0.2(LSR-TH的接口地址)
======================================================================================
MPLS数据包从PE发出到LSR-TH开始标签交换,LSR-TH收到一个栈顶位标签位23的MPLS数据包,开始检查LFIB进行swap动作。
LSR-TH#sh mpls forwarding-table labels 23 detail
Local Outgoing Prefix Bytes Label Outgoing Next Hop
Label Label or Tunnel Id Switched interface
23 23 192.168.255.5/32 7954 Tu0 point2point
MAC/Encaps=14/22, MRU=1496, Label Stack{16 23}, via Gi2
5000000300005000000200018847 0001000000017000
No output feature configured
16标签是RSVP协议分发的MPLS-TE隧道标签(由于我们在LSR-TH与LSR-TE之间做了一个隧道,将BGP的流量引入了隧道),由LSR-P分发,下一跳为隧道末端TE接口
同时我们在隧道的头尾又建立了target-ldp邻居,所以LSR-TE上的针对192.168.255.5/32前缀由LDP协议分发的local-label 23 也由targer-ldp(remote-ldp)传递给了远程LDP邻居。
最后当LSR-TH设备收到一个MPLS栈顶位为23的数据包时,执行的动作为交换23为16|23,则最后生成的MPLS标签栈为 16(rsvp分发)|23(remote-ldp)|26(BGP-iPv4 labeled-unicast)|21(BGP-VPNv4 unicast)