我最近一直在使用MPLS技术。在阅读了MPLS的一些功能后,我心中有这个疑问。

A---B---c
    |    |
    D----E


路由器A,E是LER,B,C,D是LSR,我们要从A-> E发送流量。
我了解到,只有LSR可以初始分配标签,而在LDP中,下游路由器会启动标签的分配,并且标签/ FEC绑定。

Can someone please explain me
1.)how A(LER) can transmit the packets to B(LSR).
2.)how can B know which label and port to forward,if it receives the distribution from C(Where C and D are downstream routers)


感谢。

#1 楼

标签本身是聚合标签,这意味着标签没有附加的重写信息,因此它既不知道出口接口,也不知道出口MAC地址。例如,聚合标签用于连接的网络。
聚合标签意味着在MPLS查找之后您不知道出口信息,因此必须进行常规IP查找才能确定出口信息。

正常标签附加了出口重写信息,即根据标签查找将返回出口接口(具有所有必要的信息,例如MAC地址,VLAN等)

假定所有链接均为IGP度量标准1,除BC为度量标准2.

要使A发送到E的环回(192.0.2.5),将发生以下情况


E将分配显式(0)或隐式(默认)对于192.0.2.5/32
E将使用LDP将前缀+标签(FEC)分配给C和D
C将为此分配本地标签,例如100(可以是任何值)

C将对FIB条目进行编程,以便标签100指向E的接口,而MPLS标签操作如果显式为null则为'SWAP 0',如果隐式为null则为'POP'
C将对FIB条目进行编程,因此前缀192.0 .2.5 / 32指向E的接口,如果显式null


D将为此分配本地标签(例如200(也可以是100) ,300,400)

D将编程FIB条目,以便标签200指向E的接口,如果显式为null,则MPLS标签操作为'SWAP 0',如果隐式为null,则为'POP'
D将对FIB条目进行编程,以便前缀192.0.2.5/32指向E的接口,并且如果显式为null,则MPLS标签操作'PUSH 0'
D和C将分配使用LDP
B的prefix + label
B将为此分配本地标签,例如300(可能是任何东西)

B将对FIB条目进行编程,以便标签300指向指向D(由于IGP度量!)和MPLS标签操作“ SWAP 200”
B将对FIB条目进行编程,以使前缀192.0.2.5/32指向D的接口,而MPLS标签操作“ PUSH 200”


B会将前缀+标签分配给A,使用LDP
A将为此分配本地标签,例如400(可以是任何内容)。

A将对FIB条目进行编程,以便标签400指向B的接口,并且MPLS标签操作' SWAP 300'
A将对FIB条目进行编程,以便前缀192.0.2.5/32指向B的接口,并且MPLS标签操作'PUSH 300'



>现在当A发送到192.0.2.5/32时转发平面中会发生什么


A将推送(施加)标签300并发送给B
B将向FIB咨询300 ,即接口D和SWAP 200
D将向FIB咨询200,即接口E和POP(或SWAP 0)
E将接收帧


评论


谢谢你,如果B-C也是公制1会怎样?

– starkk92
13年8月21日在10:43



如果B-C指标也为1并且禁用了负载平衡,则有一些决胜局,例如router-id。如果启用了负载平衡,则将使用ECMP(等价多路径)。 MPLS在负载平衡的情况下绝不会改变正常的IPv4 / IPv6行为,因此,如果您了解IPv4在这种情况下的工作原理,则完全相同,只是在帧上添加了标签。因此,在步骤6.1和6.2中,您将添加两个FIB条目,流量将执行HASH(keys)-> [12]来决定使用哪个。

–ytti
13年8月21日在10:54