为了能顺利的完成本节的学习,首先我们先来掌握两个术语“上游(Upstream)”和“下游(Downstream)”。
如上图所示的MPLS网络,对于路有前缀10.1.1.1/32这一FEC,已经构建了一条LSP(标签交换路径),数据的流向是沿着LSP,从A 到 B 到 C,因此我们称C为B的下游,B为C的上游,同理B为A的下游,A为B的上游。
标签分发控制模式(Label Distribution Control Mode)
所谓标签分配方式就是LSR(标签交换路由器)为一条FEC捆绑(或者说分配)标签的前提条件:
(1)独立控制 Independent Control
LSR无需等待来自下游的标签映射,即可自主为FEC分配标签
如上图所示,对于路由10.1.1.1/32,R2无需等待下游路由器R3的标签映射消息,自己自主地为10.1.1.1/32分配标签。
(2)有序控制 Odered Control (我司设备默认采用该方式)
LSR必须先收到FEC下一跳的标签映射消息,或者该LSR就是此FEC的出节点时,该LSR自己才会为FEC分配标签
标签通告模式(Label Advertisement Mode)
LSR将一个标签分发给邻居的方式:
(1)下游自主 Downstream Unsolicited (我司设备默认采用该方式)
LSR会主动将自己为FEC捆绑的标签通告给上游邻居,而无需邻居先发起请求再通告
如上图所示,R3为FEC 10.1.1.1/32分配了标签,它可以主动将标签映射发送给R2;R2也是一样,可以主动将标签映射发送给R1。
(2)下游按需 Downstream On Demand
只有上游邻居向自己请求标签映射时,LSR才会通告标签映射消息给该邻居
R3不会将自己为10.1.1.1/32分配的标签主动发送给上游邻居R2,除非R2向自己请求10.1.1.1/32的标签。同理R2也只有在收到上游R1发送的请求消息,才会将标签映射发送给R1。
标签保留模式(Label Retention Mode)
LSR在数据库中保留从邻居接收到的标签映射的方式:
(1)*模式 Liberal Retention (我司设备默认采用该方式)
从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。
如上图所示,我们拿路由10.1.1.1/32举例,R1上关于10.1.1.1/32的路由实际下一跳是R3,因为从R3走的话开销更小(假设我们采用OSPF作为IGP,并且所有接口的开销值相等)。
R2及R3均会向R1通告他们自己的标签映射,如果R1采用*模式,则它会将R2及R3为10.1.1.1/32所分配的标签都保留在自己的标签数据库中。
(2)保守模式 Conservative Retention
本地仅保存FEC“最优的下一跳”的邻居所通告的标签
同样的上面的例子,R1只会保留来自R3的标签映射,因为R3是FEC 10.1.1.1/32的实际下一跳路由器。
如果采用*的标签保持方式,则LSR会将所有的邻居发送来的标签映射都保存到标签信息库中,这样做虽然会增加设备的负担,却能够在网络拓扑发生变更的时候让LSP快速切换,因为标签都有了,所以切换起来就比较快。我司设备缺省采用*的标签保持方式。
已经被分配标签,但是没有建立成功的LSP叫做LiberalLSP。
标签空间(Label Space)
本地所通告出去的标签是在局部(接口)有意义还是对全局有意义:
基于平台:Per-Platform(我司路由器默认就是该方式)
本地通告出去的标签映射消息对全局有意义,从不同的接口通告出去的同一FEC所对应的标签相同。
基于接口: Per-Interface
本地通告出去的标签映射消息对局部有意义,从不同的接口通告出去的同一FEC所对应的标签不同。