前面学习了LDP建立邻居,建立会话,今天来学习在MPLS中的标签发布与管理。
在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR。LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP。标签的发布和管理由标签发布方式、标签分配控制方式和标签保持方式来决定。
一、标签的上游与下游
MPLS根据数据的转发方向确定上、下游关系。标签报文从上游LSR发出,被下游LSR接收并处理。
如图所示,对于到达192.168.3.0/24的LSP而言,R3是R2的下游LSR,R1是R2的上游LSR。
二、标签发布方式
标签发布方式(Label Advertisement Mode)有DU模式和DoD模式两种。
DU模式:
- 对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。
- LSR会主动将自己为FEC捆绑的标签通告给上游邻居,无需邻居先发起请求再通告。
这里再复习一下前面的知识:
标签发布方式为DU时,系统默认支持LDP为所有对等体分标签,即每个节点都可以向所有的对等体发布标签映射关系,不再区分上下游关系。因为在只给上游对等体分标签情况下,发送标签映射消息的时候,要根据路由信息对会话的上下游关系进行确认。
DoD模式:
- 对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
- 一般情况下,对特定FEC的访问需求会触发标签请求消息。
在DoD模式下,只有上游邻居向自己请求标签映射时,LSR才会通告标签映射给该邻居。
两者区别就是在DU模式下定义了FEC和标签映射关系就会向上游通告标签信息,而DoD模式下需要经过请求和回复。
三、标签分配控制方式
标签分配控制方式有独立(Independent)模式和有序(Ordered)模式。
独立(Independent)模式:本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签。
标签分配控制方式需要与标签发布方式结合使用:
- 在使用DU作为标签分发方式的情况下,如图所示,R2和R3对192.168.4.0/24这条FEC,可以在上游LSR无请求,且自身没有收到下游LSR的标签绑定信息的情况下,主动向上游LSR通告标签绑定信息。
- 采用DoD作为标签发布方式时,如图所示,R2和R3对192.168.4.0/24这条FEC,只要收到上游LSR的标签请求消息,可以在自身没有收到下游LSR的标签绑定信息的情况下,向上游LSR通告标签绑定信息。
有序(Ordered)模式:对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。
当标签控制方式为Ordered,只有当LSR收到特定FEC下一跳发送的特定FEC标签映射消息或者LSR是LSP的出口节点时,LSR才可以向上游发送标签映射消息。
- 当标签分发方式为DU时,如图所示,对于192.168.4.0/24这条FEC,不论上游LSR是否有请求,必须收到下游LSR对此FEC的标签绑定信息才向上游LSR发布标签绑定信息,所以必须由Egress LSR,也就是R4作为LSP建立的“起点”。
- 当标签发布方式采用DoD时,如图所示,对于192.168.4.0/24这条FEC,只有收到上游LSR请求的请求,且自身已经收到下游LSR的标签绑定信息的情况下,才向上游LSR通告标签绑定信息。因此,必须由Ingress LSR(R1)发起请求,逐跳请求到Egress LSR(R4),最终由R4开始,向上游建立LSP。
概念是比较复杂,到时候通过实验来模拟会比较好理解,目前只需要知道有几种发布方式和标签控制方式即可。
四、标签保留模式
标签保留有自由(Liberal)模式和保守(Conservative)模式。
自由(Liberal)模式:
- LSR收到的标签映射可能来自下一跳,也可能来自非下一跳。
- 对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。
当基于IP网络部署MPLS时,LSR根据IP路由表判断接收到的标签映射是否来自下一跳。
Liberal方式的最大优点在于路由发生变化时能够快速建立新的LSP进行数据转发,因为Liberal方式保留了所有的标签。缺点是需要分发和维护不必要的标签映射。
- DU标签分发方式下,如果采用Liberal保持方式,则R3保留所有LDP邻居 R2和R5发来的关于192.168.1.0/24这个FEC的标签,无论该R2和R5是否是IP路由表中到达192.168.1.0/24的下一跳。
- DoD标签分发方式下,如果采用Liberal保持方式, LSR会向所有LDP邻居请求标签。但通常来说,DoD分发方式都会和Conservative保持方式搭配使用。
保守(Conservative)模式:对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。
Conservative方式的优点在于只需保留和维护用于转发数据的标签,以达到节约标签的目的。
- 当使用DU标签分发方式时,LSR可能从多个LDP邻居收到到同一网段的标签映射消息,如图中R3会分别从R2和R5收到网段192.168.1.0/24的标签映射消息。如果采用Conservative保持方式,则R3只保留下一跳R2发来的标签,丢弃非下一跳R5发来的标签。
- 当使用DoD标签分发方式时, LSR根据路由信息只向它的下一跳请求标签。
当网络拓扑变化引起下一跳邻居改变时:
- 使用自由标签保持方式,LSR可以直接利用原来非下一跳邻居发来的标签,迅速重建LSP,但需要更多的内存和标签空间。
- 使用保守标签保持方式,LSR只保留来自下一跳邻居的标签,节省了内存和标签空间,但LSP的重建会比较慢。
- 保守标签保持方式通常与DoD方式一起,用于标签空间有限的LSR。
标签保留方式简单说就是LSR对于非上游通告的标签是否保留的策略,可以节省标签空间。
五、PHP(Penultimate Hop Popping,次末跳弹出)特性
PHP(Penultimate Hop Popping,次末跳弹出),如果激活了PHP特性,那么egress节点在为本地路由分配标签的时候,会分配一个特殊标签—3,该标签被称为隐式空标签(Implicit NULL Label)。当LSR转发一个标签报文时,如果发现对应的出标签值为3,则LSR会将栈顶标签弹出,并将里面所封装的数据转发给下游LSR。
- 在标签发布时,R3为作为192.168.3.0/24这条FEC的Egress LSR。分配标签时,R3为该FEC分配了标签3,并将该标签绑定信息通告给R2。
- 在数据转发时,R2作为到达192.168.3.0的次末跳(倒数第二跳),发现出标签值为3,于是将标签头部弹出,将IP报文转发给R3,而R3则仅需执行一次查询操作(查询FIB表)即可获得相应的转发信息,转发效率得到了提升。
简单说就是在倒数第二跳就弹出标签了,减轻最后一跳LSR的压力。前面在标签空间我们也学习了0-15是一些特殊的标签,一般不用于数据转发,主要用于某些特性使用。
六、空标签
缺省情况下,Egress节点向倒数第二跳分配隐式空标签(implicit-null),即特殊标签3。
但在部署QoS的场景下,标签被弹出后,其中的优先级也会一并丢失。
显式空标签机制,Egress节点向倒数第二跳分配特殊标签0。
R3在转发标签报文时,若出标签封装为0,则不会将标签头部弹出,标签头部中的QoS信息得以保存。R4在收到带0标签的报文的时候,直接弹出标签,不用去查找ILM表项。
缺省情况下,Egress分配的是隐式空标签,通过label advertise explicit-null使能Egress节点向倒数第二跳分配显式空标签。
隐式空标签在QoS中可能关联了某些流量优先级特征,缺省情况下倒数第二跳弹出标签就会导致信息丢失,通过配置显式空标签可以分配标签0,然后不弹出标签,但是在最后一跳不需要查询ILM表,直接查询FIB表即可,既保证高效转发又保留了可能的QoS信息。
在MPLS视图下,执行命令label advertise { explicit-null | implicit-null | non-null }
,配置向倒数第二跳分配的标签。根据参数的不同,可以配置Egress向倒数第二跳分配不同的标签。
- 缺省情况下,使用的是implicit-null,Egress向倒数第二跳节点分配隐式空标签,值为3。
- 如果配置的是explicit-null,Egress节点向倒数第二跳分配显式空标签,值为0。当需要支持MPLS QoS属性时,可以选用explicit-null。
- 如果配置的是non-null,Egress向倒数第二跳正常分配标签,即分配的标签值不小于16。
华为设备目前缺省模式为下游自主方式(DU)+ 有序标签分配控制方式(Ordered)+ 自由标签保持方式(Liberal)。
总结:本次学习明确了LSR的上游与下游,初步了解标签的分配方式、控制方式与保留方式,缺省的PHP特性功能等。