MPLS多协议标签交换
一、传统IP转发和MPLS标签转发
传统IP路由转发:采用的逐跳转发。数据报文经过一台路由器,都要被解封装查看报文网络层信息,根据路由最长匹配原则查找路由表指导报文转发。各个路由器重复进行解封装查找路由表再封装的过程转发性能低。
MPLS:位于在二层(数据链路层)与三层(网络层)之间,通过在二层头后添加MPLS标签头部,基于MPLS头部实现数据快速转发。
二、MPLS术语
**MPLS域**:连续的运行MPLS的网络设备构成一个MPLS域。
**LSR标签交换路由器**:支持MPLS的路由器。位于MPLS域边缘,连接其他网络的LSR称为边沿路由器LER,区域内部的LSR称为核心LSR。
**入站LSR(Ingress LSR)**:向IP报文压入(**Push**)MPLS头部并生成MPLS报文的LSR设备。
**中转LSR(Transit LSR)**:对MPLS报文进行标签置换(**Swap**)操作,并将报文在MPLS域中转发的设备。
**出站LSR(Egress LSR)**:将MPLS报文中MPLS头部移除(**Pop**),还原为IP报文的LSR设备。
进入MPLS域时经过ingress打上标签,递归累加,egress弹出撕掉标签。
**LIB**:标签信息库 **LFIB**:标签信息转发表 **RIB**:路由表 **FIB**:转发表
**LDP**:动态标签交换协议,组播+单播建立邻居 **lsr-id**:IPV4格式,手工配置,不能重复,真实有效可达
**LSP标签交换路径**:标签报文穿越MPLS网络到达目的地所走的路径。
**FEC转发等价类**:在MPLS网络中,FEC可以通过多种方式划分,例如基于目的IP地址及子网掩码,DSCP等特征来划分。数据属于哪一个LSP,由数据进入MPLS域时的Ingress LSR决定。
**MPLS头部**:label(长度) 20bit exp(流分类,可以分8类) 3bit S(栈底位) 1bit TTL 8bit
**标签空间**:
0-15:特殊标签值。标签值3为隐式空标签(次末跳弹出)。
14-1023:用于静态LSP、静态CR-LSP的共享标签。
1024-1048575:LDP、RSVP-TE、MP-BGP等动态信令协议的标签空间。动态标签空间不共享且独立连续,互不影响。
次末跳弹出:倒数第二跳,生产3号标签弹出标签,最后一跳收IP数据包
**发布标签的方式**:
DU主动方式,自主向上游分发标签,链路可能是断的
DoD按需方式,当前设备存下游分配的标签时才向上游分发标签
**交换标签的方式**:
independent:自主向上游分发标签,链路可能是断的
Ordered:存在下游分配的标签才向上游分发标签
自己产生的标签为入站标签,邻居发送给我的标签为出站标签
-----MPLS解决BGP路由黑洞:
原理:BGP路由黑洞,通过mpls标签使标签通过隧道转发,通过去往的路由的下一跳建立隧道。
route recursive-lookup tunnel迭代原理: 非标签公网路由能够迭代到LSP隧道,先使用next-hop对应的标签转发至下一跳这个设备,再由下一跳这个设备进行IP转发,静态路由和BGP路由会迭代LSP,而IGP路由不会,因为IGP路由是不需要迭代的。
三、MPSL LDP协议
1.LDP是MPLS的一种控制协议,负责FEC的分类、标签的分配以及LSP的建立和维护等。
2.LDP工作过程:1)LSR之间建立LDP会话。2)LSR之间基于LDP会话动态交换标签与FEC的映射信息,并根据标签信息建立LSP。
标签的传递方向和路由的发送方向是相反的
四、基本配置
静态MPLS:
mpls lsr-id 1.1.1.1
接口和全局:mpls //开启MPLS能力
全局视图下:
入站LSR:static-lsp ingress 1to4 destination 4.4.4.4 32 nexthop 12.1.1.2 out-label 104
静态 入设备 名称 目的 网段 下一跳 自定义出标签
中转LSR:static-lsp transit 1to4 incoming-interfaceGigabitEthernet 0/0/0 in-label 104 nexthop 23.1.1.3 out-label 204
静态 转发设备 名称 标签进入的接口 进入本设备的标签 下一跳 出去的标签
出站LSR:static-lsp egress 1to4 incoming-interfaceGigabitEthernet 0/0/0 in-label 204
静态 出设备 名称 标签进入的接口 进来的标签
dis mpls static-lsp 查看标签路径
动态MPLS:
mpls lsr-id 1.1.1.1
全局:
mpls
mpls ldp
接口下:内部连接其他运行MPLS设备的接口
mpls
mpls ldp
dis mpls lsp //查看标签转发路径
MPLS VRF 虚拟路由转发技术:
RD:路由区分器 MM(32bit):NN(32bit) IP32位+64位=96位的VPNv4前缀
RT:用于区分各实例之间的数据流量, IP32bit+RD64bit+RT64bit=160bit的VPNv4前缀
将一个全局路由表划分为多个VPN路由表。一个ospf进程只能绑定一个vpn实例
BGP区分ipv4,ipv6的表:
bgp:ipv4-family vpn-instance 2 //bgp中ipv4绑定vpn实例2
display bgp vpnv4 all peer //查表bgp在vpnv4下的所有邻居关系
ospf 1 rou-id 1.1.1.1 vpn-instance 1 //ospf绑定实例1
#
interface GigabitEthernet0/0/0 //将接口绑定到vpn实例1
ip binding vpn-instance 1
ip address 192.168.15.5 255.255.255.0
#
ip vpn-instance 1 //vpn实例1
route-distinguisher 1:1 //做路由区分器
#
ip vpn-instance 2 //vpn实例2
route-distinguisher 2:2 //做路由区分器
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)