目录
一、MPLS基本概念
(1)MPLS存在的意义
1、最初的目的是为了提升IP网络中路由设备的转发速率(以标签交换替代IP查表)。后来,IP路由表查找逐步改用硬件方法,处理速度大大提高,这使得MPLS在提高IP网络转发速率方面不再具备明显的优势。
2、但是,MPLS的标签转发本质上是一种隧道技术,它还支持封装多层标签,并且MPLS天然兼容多种网络层和链路层协议,因此,MPLS非常适合在各种VPN业务中充当公网隧道。
3、此外,由于MPLS的报文转发依靠一条固定的标签交换路径,所以MPLS是一种面向连接的转发技术,这使得MPLS在流量工程(Traffic Engineering,TE)、QoS等领域也有着广泛的应用。
(2)MPLS网络结构图
(3)MPLS标签的封装位置
(4)MPLS标签封装结构
(5)标签转发信息表
报文转发的指导地图,基本构成要素包括: 入标签(或本地标签)、出标签、出接口
以上来自华为,详细参考:MPLS是什么?MPLS是如何工作的? - 华为
二、标签转发信息表形成过程
(1)路由器产生路由表
如下图,R4路由器上有一直连网段,其它路由器通过OSPF协议学习到了到R4上面的直连网段222.14.14.0/24的路由,其中R1和R2分别有两条到该网段的路由:
(2)运行MPLS协议的路由器为路由分配标签
对于到达同一目标网段的多条路由,只选择最优路径的路由进行标签分配。此阶段分析的标签称为本地标签(也叫入标签,用于配置上游来的报文中的出标签,必须唯一)。
(3)通过LDP/RSVP协议发现MPLS邻居
在各路由器接口启动LDP协议,通过LDP发现协议各路由器可以发现MPLS邻居。
(4)将打标签的路由通告给MPLS邻居
各路由器将其打了标签的路由通告给其MPLS邻居,而不管是否已从其邻居学习到该路由的标签。这样对于路由222.14.14.0/24在各路由器中的标签情况如下图所示:
(5)形成标签转发信息表
在MPLS中,路由器只将其下一跳路由器通告的标签加到其标签转发信息表中。对于222.14.14.0/24网段对应的标签转发信息表如下图所示:
【再来几张图总结一下】:
注:本地标签必须唯一
三、IP包在MPLS网络中转发过程
1. MPLS入口路由器根据目的地址查找路由表
如上图例,假设一目的地址为222.14.14.0/24的IP包到达路由器R1。此时路由器R1将查找其路由表,发现该路由下一跳为路由器R3。
2. 将该IP包打上标签,转发给下一跳路由器
上例中,路由器R1将目的地址为222.14.14.0/24的IP包打上标签30,转发给其下一跳路由器R3。
3. 下一跳路由器查找其转发表,替换标签,继续转发
上例中,当打有标签的IP包到达R3路由器时,路由器不再根据目的地址查找路由表了,而是根据标签查找标签转发表。从R1来的出站标签对应于R3的入站标签,也就是R3通告给R1的标签。R3路由器通过标签替换,将其入站标签替换成出站标签,即用标签40替换掉标签30,然后转发给其下一跳路由器R4。
4. 出口路由器查找其转发表,发现其就是目的地网络,弹出标签,送给相应端口处理
上例中R4路由器将查找标签转发表,发现该IP包目的地为自己,则弹出标签。标签交换过程结束。