MPLS 2个转发平面

Technorati 标签: MPLS,LDP,标签,label

01-MPLS标签报文的格式.

实际上,之所以要叫MPLS 为2.5层协议,是因为标签是处于IP报文头和二层报头之间的.图中是嵌套了三层标签.

靠近二层头的标签叫顶部,考近IP报文头的标签叫底部.

如果有多个标签,数据报文在被转发的时候是利用顶部标签进行转发.当顶部移除以后,再利用下一层标签进行转发.

而每个标签的格式为:

每个标签为32 bit(4个字节). 分为4个字段,每个字段都有分工.

LABEL: 头20个bit,是标签范围.cisco定义的标签的是<16-1048575>.

0-15是保留为系统用.

EXP: 3 bit. 用于IP precedence字段值的携带,用于QOS. 范围0-7.

S: 1 bit, 为了标示该标签是否为最后一个标签再IP头中.

前面已经说明,最靠近二层帧头的,那么最先被转发。最靠近IP包头的,最后被转发使用.

S bit就是提供了这样一个功能.

S=1, 栈底. S=0,非栈底.从下面的抓包也能看到,S=0的话,靠近二层帧头,S=1,靠近3层IP报文头.

TTL: 8 bit, 范围0-255,这个定义和IP里面的time to live是一样的。

和IP不同的是,MPLS的TTL,

有可能初始化的时候就是255.

也有可能是从IP包头中直接复制过来的.

下面是一个MPLS报文的抓包.可以看到这里嵌套了2层标签.

02-LDP协议的作用

LDP-label distribute protocol.

标签分发协议,前身是TDP.cisco私有.

----------一直都在说, LDP标签分发,必须基于IGP(ospf,RIP,EIGRP),因为标签分发表,其实就是IGP路由表的一个映射.所以必须现有IGP,才会有标签转发表.

路由表与标签之间存在的映射关系-----FEC.

LDP要工作,必须要有底层的IGP.

CISCO的行为是,IGP路由表里面每一条路由,都会有一个对应的标签存在于标签转发表.

03-MPLS 标签报文转发过程的相关动作

下面的图,R1--R2--R3--R4为MPLS域,左边和右边都为IP域.

在IP域中数据包是没有携带标签的。而在MPLS域中数据包是携带了标签的.

接下来说明一下一个数据包从左到右的过程:IP:A-->R1-->R2-->R3-->R4-->IP:B

需要说明的是,本地收到的标签,始终是上游或者下游路由器分配过来的。

这样说吧,如果本地路由器有一个路由明细达到1.1.1.0/24. 那么从对端就会逐跳向我本端分配相关的标签.所以,标签永远是别人发给我的。我把本地的直连路由映射成本地标签,再分发给我的上下游路由器。那么,一个双向的标签FEC就建立好了。

04-数据平面和控制平面.

这是理解MPLS转发的重要基础.

Control plane:控制平面.

简单来说,就是凡是处理协议,路由表,标签交换表,这些内部表项和协议的时候都是用的控制平面.

Data plane:数据平面.

而数据平面,意思是说,IP转发,标签转发报文的时候,会用数据平面。

对于数据平面的理解如下:

这里,有几种情况组合:

1, 收到IP,转发出以后依然是IP.是纯IP报文转发,那么用的是FIB表项.(CISCO的CEF表)

2, 收到MPLS 报文,转发出去依然是MPLS 报文,走的是LFIB.标签转发表.

3, 有可能收到IP报文,但是需要路由器压标签转发. 那么依然走FIB(CEF)表---所以为什么CEF标是会携带标签的.

4, 收到MPLS 报文, 转出是IP报文,这种情况用于次莫节点弹出,input走LFIB表,output会使用FIB(CEF)表.

关于cisco的流程:

之前我一直都不知道为什么CEF表会有标签.经过和老师确认,设计的确实很有道理.

如果接收到一个IP报文,转出去的时候是MPLS标签报文。这个时候首先路由器收到以后会查CEF表,cisco会将LFIB中需要压入标签的条目,将标签复制到CEF表中,这样收到IP报文,只需要查一次CEF表就知道应该压入哪个标签进行转发,而不是说首先查CEF表,知道了需要压标签,但是CEF表中又没有标签,从而进一步查询LFIB表,查两次表项和查一次表项,对于节约路由器的性能资源的意义是完全不一样的。

连老师总结版:

LIB------show mpls ldp binding 查看LIB表项.

FIB------show ip cef detail 查看FIB.注意,一定要加上detail,否则不能看到label的分发情况.

LFIB-----show mpls forwarding table.

在故障排查的时候.外层标签交换,查的一定是mpls forwarding table(LFIB表)

比如.R1-----R2----R3----R4.

R1将mpls 报文转给R2,R2要查的就是LFIB.如果LFIB(mpls forwarding table)没有标签,这个时候,根据两个层面的映射原理,你需要查看LIB表(show mpls ldp binding),在那里面会有原因为什么R2的mpls forwarding table没有分发标签.

例如,大家都知道,LDP的tranport ID是会用loopback来做的.如果IGP是OSPF.不管你环回口配置为32位掩码,还是24位掩码,ospf都会将其通告为32位掩码出去(除非修改ip ospf network point-to-point)才会通告真实掩码.

这个时候,本地是24位掩码,通告到对端是32位。上游路由器为本端的32位分发标签.明显是错的.因为24位掩码的没有得到标签,而32位的得到了。转发的时候,mpls forwarding table一定有问题.因为LFIB是基于LIB建立的,所以最后一定得查LIB才能找初真实的原因.

将3个路由器的环回口掩码都修改为24位的.

然后在R2上面,看到3.3.3.3的标签是:

这个时候,R2上面,3.3.3.3的outgoing不是pop label.是no-label.

然后再show LIB表,根本就没有标签,正常的情况下,对端R3应该分配一个implit-label过来.问题就已经出来了.

这就是传的32位路由,分的是32位路由。没有对24位路由分配标签.

原因在于,R3上面,对自己的3.3.3.3分了implit-null,24位的标签. 到R2就变成32位的标签了。已经错位了.

方案:

1, 建议环回都是用loopback /32的掩码.

2, 要不在loop interface下面加上ip ospf network point-to-point.

时间: 2024-10-03 15:54:47

MPLS 2个转发平面的相关文章

单域MPLS vpn数据转发实验分析

MPLS VPN数据详细转发流程示意图: 配置思路: 在自治系统AS100中配置IGP,使得两台PE路由器的lo 0接口路由可达: 两台PE路由器路由可达后,在两台PE路由器之间建立MP-iBGP邻居关系,用来传输VPNV4路由: AS100中所有P路由器和PE路由器运行MPLS,并使用LDP来给非BGP路由分发标签: 在PE路由器和CE路由器之间运行ospf路由协议,使得PE路由器的VRF路由表可以学习到CE路由器的路由: 将PE路由器VRF学习到的路由重分发进BGP,使得对端PE路由器可以通

MPLS与LDP从入门到了解

多协议标签交换(MPLS)是一种用于快速转发数据包的技术,它的出现就是为了提高转发效率.因为IP转发大多靠软件进行,在转发的每一跳都要进行至少一次最长匹配查找,操作复杂导致转发速度比较慢.有些厂商借鉴ATM的转发方式来简化IP转发过程,由此产生了一种结合IP和ATM的优势于一身的新技术—MPLS.在当时的条件下这可以说是一个很大的创举,其优势也是显而易见的,但后来IP转发领域有很多新技术产生,如硬件转发与网络处理器的出现,导致MPLS的速度优势体现不出来,纯MPLS转发在实际应用中几乎没有用武之

可编程数据平面将OpenFlow扩展至电信级应用(一)

可编程数据平面将OpenFlow扩展至电信级应用(一) 案例:基于WinPath网络处理器的电信极OpenFlow (CG-OF)客户端实现 作者:Liviu Pinchas, Tao Lang - PMC-Sierra Eddie Millsopp, Dermot Flanagan - Asidua 1. OpenFlow OpenFlow定义了软件定义的网络(SDN)中的开放通信协议,从而将控制平面与转发平面分隔开来,并将控制平面集中在控制器之中,数据平面则位于网络设备之上(OpenFlow

网工提款机---MPLS协议

MPLS物种起源/报文格式 IP的危机 在90年代中期,当时路由器技术的发展远远滞后于网络的发展速度与规模,主要表现在转发效率低下.无法提供QOS保证.原因是:当时路由查找算法使用最长匹配原则,必须使用软件查找:而IP的本质就是"只关心过程,不注重结果"的"尽力而为".当时江湖上流行一种论调:过于简单的IP技术无法承载网络的未来,基于IP技术的因特网必将在几年之后崩溃. ATM的野心 此时ATM跳了出来,欲收编所有帮派,一统武林.不幸的是:信奉唯美主义的ATM走向了

路由交换(十三):MPLS

一.MPLS MPLS(Multiprotocol Label Switching,多协议标签交换)是一种IP骨干网技术.将三层路由技术和二层交换技术相结合,支持IPv4.IPv6.IPX等网络协议,是一种隧道技术. 二.MPLS转发原理 1.MPLS包头结构 在二层报头和三层报头之间插入MPLS报头,MPLS报头长度共4个字节. 20 比特作为标签: 3比特EXP字段,通常用在COS: 1比特S字段,标识是否为栈底: 8比特TTL字段 2.MPLS体系结构 MPLS体系结构有控制平面和转发平面

华为MPLS LDP session和路由通告原则

Igress LER:一个ip网络进入mpls网络时:查询FIB,是查FIB表里面的NHLFB表 Trasit :  当在一个纯mpls网络中,查询的是LFIB表,是LFIB表里面的ILM(及lsp)表 Egress LER:在离开mpls域进入ip域时,查询的仍然是FIB表. (还有一张表LIB,或者称为lsp,此表不做转发,而是做转发使用) 查看PUSH动作的标签(节点类型Ingress LER)查看FIB表 dis fib 或dis fib ver dis mpls lsp include

MPLS基础一(上)

在上图中,关于PC-A和PC-B之间互相访问的过程中 1.所有三层网络设备形成源和目的的路由条目 2.PC-A发出报文,source-IP为A,destination-IP为B 3.R1收到报文后,根据目的IP检查自己的路由表,查询得到出接口,将数据包从出接口发出 4.R2.R3同样如此,一直讲数据包传递到PC-B 5.PC-B做出回包,沿反方向传回数据 其中省略了二层mac地址的ARP查询和重写数据帧的内容 简而言之:IP数据报文在传递的过程中,根据目的IP地址,查询路由表,得到出接口将数据发

MPLS基础一

多协议标签交换(MPLS) 是一种用于快速数据包交换和路由的体系,具有管理各种不同形式通信流的机制. 内容:RID     /     MTU     /      认证    /     TTL   /     非直连邻居    /     标签出入控制    /  同步 FIB表: LFIB表: LDP: LSR: PHP: 标签值3是RFC规定的隐式标签,思科上是标签1 同步:(IGP和LDP都同时认为某条链路是某个前缀的出接口时才把报文转发出去.) MPLS网络中,LDP和IGP不能同步

MPLS VPN 快速入门(张洋讲解版)

MPLS VPN 快速入门(张洋讲解版) 课程目标: 本课程所描述MPLS VPN从零开始学习的内容,为后面MPLS VPN设计和规划的高级教程打下坚实的基础,本课核心目标是:一.从真正意义上去理解MPLS的工作原理:二.学习MPLS VPN架构的基本组件,包括VRF.VPN.RD.RT.BGP标签.MP-BGP:三.融合几大组件从而真正意义的学习基本的MPLS VPN的基本架构. 课程位置:http://edu.51cto.com/course/course_id-5556.html 第一课: