MPLS网络中LSP的建立和多层标签栈配置,关于MPLS网络的配置问题,下面是两个比较有代表性的问题,今天就从这两个问题着手。让大家能够触类旁通。
MPLS网络结构
MPLS网络的基本构成单元是标签交换路由器LSR(Label Switching Router),主要运行MPLS网络 控制协议和第三层路由协议,并负责与其他LSR 交换路由信息来建立路由表,实现FEC 和IP 分组头的映射,建立FEC 和标签之间的绑定,分发标签绑定信息,建立和维护标签转发表等工作。由LSR 构成的网络叫做MPLS 域,位于区域边缘的LSR 称为边缘LSR(LER,Labeled Edge Router )。
主要完成连接MPLS 域和非MPLS 域以及不同MPLS网络 域的功能,并实现对业务的分类、分发标签(作为出口LER)、剥去标签等。其中入口LER 叫Ingress,出口LER 叫Egress。位于区域内部的LSR 则称为核心LSR,核心LSR 可以是支持MPLS网络 的路由器,也可以是支持MPLS网络 标签交换的LSR,它提供标签分发、交换功能(Label Swapping)。带标签的分组沿着由一系列LSR 构成的标签交换路径LSP(Label Switched Path)传送。 ◆标记交换路径(LSP) ◆MPLS网络 核心路由器 (LSR) ◆Ingress ◆Egress ◆MPLS网络 边缘路由器(LER)
LSP 的建立
LSP 的建立其实就是将FEC 和标签进行绑定,并将这种绑定通告LSP 上相邻LSR的过程。这个过程是通过标签分发协议LDP 来实现的。LDP 规定了LSR 间的消息交互过程和消息结构,以及路由选择方式。有关LDP 的详细描述,请参见下一节。Comware V3 操作手册(MPLS网络 )
MPLS网络 支持LSP 隧道技术。在一条LSP 路径上,LSR Ru 和LSR Rd 互为上下游,但LSR Ru和LSR Rd之间的路径,可能并不是路由协议所提供路径的一部分,MPLS允许在LSR Ru 和LSR Rd 间建立一条新的LSP 路径,LSR Ru和LSR Rd 分别为这条LSP 的起点和终点。LSR Ru 和LSR Rd 间的LSP 就是LSP隧道,它避免了传统的网络层封装隧道。当隧道经由的路由和逐跳与从路由协议取得的路由一致时,这种隧道叫逐跳路由隧道;若不一致,则这种隧道叫显式路由隧道。
多层标签栈
在MPLS网络 中,分组可以携带多个标签,这些标签在分组中以“堆栈”的形式存在,对堆栈的操作按“后进先出”的原则,决定如何转发分组的标签始终是栈顶标签。标签入栈是指向输出分组中加入一个标签,使标签栈的深度加1,同时,分组的当前标签就变为此新加入的标签;标签出栈是指从分组中去掉一个标签,使标签栈的深度减1,同时,分组的当前标签将变为原来处于下一层的标签。
在LSP 隧道中会使用多层标签栈。当分组在LSP 隧道中传送时,分组的标签就会有多层。在每一隧道的入口和出口处,要进行标签栈的入栈和出栈操作,每发生一次入栈操作,标签就会增加一层。MPLS网络 对标签栈的深度没有限制。标签栈按照“后进先出”方式组织标签,MPLS网络 从栈顶开始处理标签。若一个分组的标签栈深度为m,则位于栈底的标签为1 级标签,位于栈顶的标签为m 级标签。未打标签的分组可看作标签栈为空(即标签栈深度为零)的分组。
标签报文的转发
在Ingress,将进入网络的分组根据其特征划分成转发等价类FEC。一般根据IP 地址前缀或者主机地址来划分FEC。属于相同FEC 的分组在MPLS网络 区域中将经过同的路径(即LSP)。LSR 对到来的FEC 分组分配一个短而定长的标签,然后从相应的接口转发出去。
在LSP 沿途的LSR 上,都已建立了输入/输出标签的映射表(该表的元素叫下一跳标签转发条目,简称NHLFE,Next Hop Label Forwarding Entry)。对于接收到的标签分组,LSR 只需根据标签从表中找到相应的NHLFE,并用新的标签来替换原Comware V3 操作手册(MPLS网络 )。
来的标签,然后,对标签分组进行转发,这个过程叫输入标签映射ILM(IncomingLabel Map)。MPLS网络入口处指定特定分组的FEC,后续P 路由器只需简单的转发即可,比常规的网络层转发要简单得多,转发速度得以提高。
TTL 处理:标签化分组时必须将原IP 分组中的TTL 值拷贝到标签中的TTL 域。LSR 在转发标签化分组时,要对栈顶标签的TTL 域作减一操作。标签出栈时,再将栈顶的TTL 值拷贝回IP 分组或下层标签。但是,当LSP 穿越由ATM-LSR 或FR-LSR 构成的非TTL LSP 段时,域内的LSR无法处理TTL 域。这时,需要在进入非TTL LSP 段时对TTL 进行统一处理,即一次性减去反映该非TTL LSP 段长度的值。
ICMP Need Frag 差错报文回送
在MPLS网络中,当报文的长度超过了路由器出接口所设置的MTU 值时,若想使报文顺利的传输,需要将MPLS网络 报文的标签剥去,对IP 报文进行分片,然后分别为每一个分片都封装原有的标签后进行传输。但如果IP 报文中设置了不允许分片的标记,则向发送报文的源端回送ICMP Unreach 报文,并丢弃源报文。
出接口的MTU 将被填入ICMP 报文中,如果设备上配置了mtu label-including 命令,在生成报文的时候,应将报文中的出接口MTU字段减去MPLS 标签长度(可能有多层标签)。文后回送ICMP 差错报文的方式有所不同,下面将分别介绍。
PE 设备的处理方式
PE1 收到CE1 发来的报文,报文目的地址为CE2,且该报文携带不可分片标记。PE1 将对此报文进行转发处理,封装MPLS 标签,生成MPLS 报文后进行转发。Comware V3 操作手册(MPLS)。此时如果报文的长度超过了出接口的MTU 时,PE1 会给CE1 回送ICMP Unreach报文,并丢弃源报文。
P设备的处理方式
P1 收到一份MPLS 报文需要进行标签交换,该报文为CE1 发往CE2 的报文,携带不可分片标记。完成标签交换后,如果发现报文的长度超过了出接口的MTU,此时,由于P1 设备上可能没有到CE1 的路由,P1 会将MPLS网络 报文中封装的IP 报文取出,根据这个IP报文生成ICMP Unreach 报文,然后重新封装标签发往PE2 方向。当PE2 收到此ICMP 报文时,将此报文转发到CE1 的方向。
转载请注明:IT运维空间 » 安全防护 » MPLS网络中LSP的建立和多层标签栈配置
发表评论