概述
传统IP路由转发的特点:(逐跳转发)
所有路由器需要知道全网的路由。
IP头部不定长,处理效率低。
传统IP转发是面向无连接的,无法提供较好的端到端QoS保证。
MPLS(Multi-Protocol Label Switching,多协议标签交换)依据标签进行转发。
MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有的网络层提供服务。即报文封装在以太帧头与IP头部之间。
MPLS域(MPLS Domain):一系列连续的运行MPLS的网络设备构成了一个MPLS域。
LSR(Label Switching Router,标签交换路由器):运行了MPLS的网络设备。
LSR
LSR分类
入站LSR(Ingress LSR):向IP报文中压入MPLS头部并生成MPLS报文的LSR
中转LSR(Transit LSR):将MPLS报文进行例如标签交换操作,并转发MPLS报文
出站LSR(Egress LSR):将MPLS报文头部移除,还原为IP报文
FEC
FEC(Forwarding Equivalence Class,转发等价类)是一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理。
LSP
LSP(Label Switched Path,标签交换路径)是标签报文穿越MPLS网络到达目的地所走的路径。LSP可通过静态和动态两种方式建立。
注意:LSP是一个从“起点”到“终点”的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP
建立原则
1.FEC对应的路由条目必须存在于LSR的IP路由表中
2.LSR用标签标识指定FEC,所以该FEC的数据被发送至LSR时,必须携带正确的标签,才能被LSR正确的处理。
建立方式
静态LSP:手工配置
动态LSP:标签发布协议自动产生
MPLS头部
MPLS Label:MPLS标签,20 bit。
EXP:MPLS报文的优先级,占0-3bit,取值范围0-7,主要用于Qos。
S:栈底位:如果置位则表示该MPLS头部是最接近IP报文头部的MPLS头部。
TTL值:防环,与IP头部中的一样,8 bit。
MPLS标签栈
MPLS支持一层或多层标签头部,这些标签头部的有序集合被称为标签栈(Label Stack)。
•当上层为MPLS标签栈时,以太网头部中的Type字段为0x8847,PPP头部中的Protocol字段为0x8281。
标签空间(20 bit)
标签是一个短而定长的、只具有本地意义的标识符。标签空间就是指标签的取值范围。
注:只具有本地意义说明每一台LSR之间的标签空间是相互独立的,即每台路由器都可以使用完整的标签空间
0-15:特殊标签值,例0表示IPv4显示空标签,3表示IPv4隐式空标签。
//收到显示空标签 则不查标签转发表,直接弹出标签,查找路由表转发
//如果报文需打上隐式空标签则不执行动作,即打上隐式空标签等于不打标签
16-1023:用于静态LSP,静态CR-LSP的共享标签空间
1024-2^20:用于动态LSP使用的标签空间
MPLS标签的处理
Push 压入:无论报文是否有标签,都我会在栈顶压入一个标签
Swap 交换:收到MPLS报文,将标签中栈顶的一个标签更换为一个新的标签
Pop 弹出:收到MPLS报文,无论有多少层标签,都全部弹出
MPLS转发
MPLS转发的本质就是将数据归到对应的FEC并按照提前建立好的LSP进行转发。
LSR处理报文时主要根据FTN、 NHLFE和ILM。
1.FTN(FEC-to-NHLFE):当LSR收到IP报文并需要进行MPLS转发时使用,FTN只在Ingress存在。FTN包括:Tunnel ID、FEC到NHLFE的映射信息。下一跳标签转发表项
(Next Hop Label Forwarding Entry):LSR对报文(MPLS或IP报文)进行MPLS转发时使用,NHLFE在Ingress和Transit存在。NHLFE包括:Tunnel ID、出接口、下一跳、出标签、标签操作类型等信息。
3.入标签映射(ILM,Incoming Label Map):用于指导MPLS报文的转发(MPLS或IP转发),ILM只在Transit和Egress存在。ILM包括:Tunnel ID、入标签、入接口、标签操作类型等信息。
注:Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。在MPLS转发过程中,FIB、ILM和NHLFE表项是通过Tunnel ID关联的。
Ingress LSR
Transit LSR
Egress LSR
MPLS体系结构
MPLS的体系结构由控制平面(Control Plane)和转发平面(Forwarding Plane)组成。
控制平面:
控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
控制平面包括:
1.路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
2.标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
转发平面:
转发平面也称为数据平面,是面向连接的, 主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
转发平面包括:
1.转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
2.标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。
静态MPLS实验
R1
mpls lsr-id 1.1.1.1 //在静态中lsr-id无意义
mpls
int 0/0/0
mpls
static-lsp ingress r1 destination 3.3.3.3 32 nexthop 10.0.12.2 out-label 100
R2
static-lsp transit r2 incoming-interface GigabitEthernet0/0/0 in-label 100 nexthop 10.0.23.3 out-label 200
R3
static-lsp egress r3 incoming-interface GigabitEthernet0/0/0 in-label 200