7 MPLS特性配置
7.1 MPLS定义
MPLS位于TCP/IP协议栈中的链路层和网络层之间,被称为2.5层协议。用于向IP层提供连接服务,同时又从链路层得到服务。MPLS以标签交替替代IP转发。MPLS类似于QinQ,是一种隧道技术,支持多种高层协议和业务,在一定程度上也可以保证信息安全。
7.2 MPLS的三大应用
- MPLS VPN应用;(虚拟专用网)
- MPLS TE应用;(流量工程)
- MPLS QoS应用。(服务质量)
7.3 MPLS支持的网络协议
IPv4、IPv6、IPx及CLNP。
7.4 MPLS体系结构
- 控制平面之间基于无连接服务,利用现有IP网络实现;
- 转发平面也称为数据平面,是面向连接的,可以使用ATM、帧中继等二层网络;
- MPLS使用短而定长的标签封装分组,在转发平面实现快速转发。在控制平面,MPLS拥有IP网络强大灵活的路由功能,可以满足各种新应用对网络的要求;
- 对于MPLS路由器,在转发平面只需要进行标签分组的转发;
- IP转发基于非连接的,标签是根据路由计算来的。
7.5 MPLS网络模型的名词解释
LER:标签边缘路由器;
LSR:标签交换路由器;
LSP:标签交换路径。
7.6 MPLS控制平面和转发平面
控制平面有:Routing Protocol(路由交换协议)、IP Routing Table(IP路由表)、Lable Distribution Protocol(标签交换协议);
转发平面有:IP Forwarding Table(IP转发路由表)和Label Forwarding Table(标签转发表)。
7.7 MPLS Header
LABEL | EXP | S | TTL |
- 总长度为32bit,即4字节;
- LABEL:该标签用于报文转发,长度为20bit,只有本地意义,在本地起作用,已定标签为0~15;
- EXP:通常用来承载IP报文中的优先级,长度为3bit,有0~7个优先级;
- S:标识栈底用来表明是否是最后一个标签(MPLS标签可以多层嵌套),长度为1bit,理论上可以进行无限嵌套,但实际只进行2~3层嵌套,是标签栈底则置为1,不是标签栈底则为0;
- TTL:类似IP头部的TTL,用来防止报文环路等,长度为8bit,范围为0~255。
7.8 FEC与NHLFE
- FEC转发等价类,是一组具有某些共性的数据流的集合。这些数据流在转发过程中被LSR以相同方式处理;
- FEC可以根据地址、业务类型、QoS等要素进行划分。在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类;
- NHLFE下一跳标签转发表项,进行标签转发时用到,NHLFE包含报文的下一跳、如何进行标签操作,包括压入新的标签,弹出标签,用新的标签替换原有的标签等操作;
- NHLFE还可能包含一些其他信息,如发送报文使用的链路层封装等。
7.9 MPLS静态配置的步骤(OSPF)
- 搭建拓扑图,完成端口IP配置;
- 打通IBGP,完成基本操作;
- 从一侧到另一侧配置入接口标签和出方向标签;
- 反方向,从一侧到另一侧配置入接口标签和出方向标签;
- 检查连通性,使用ping lsp ip 4.4.4.4 32;
- 排障的方法:display mpls static-lsp等。
7.10 MPLS标签转发报文
MPLS标签转发报文时,数据包可能需要执行的动作有Push(压入)、Pop(弹出)和Swap(置换)。
7.11 BGP MPLS VPN骨干网络
BGP MPLS VPN骨干网络中的网络设备是P(运营商设备)和PE(运营商边界设备);不需要服务提供商参与用户路由的是MPLS L2 VPN,原因是二层专线实现三层互通。
7.12 VPN、RD、RT、VPNv4 Address的作用
VPN:实现私网IP进公网;区分相同的私网路由;
RD:64位bits前缀,把IPv4转换为VPNv4;在传输过程中,区分相同的私网路由;
RT:将私网路由注入到正确的VRF中,其是一种路由属性,接收时区分私网路由;
VPNv4 Address:由64bit的RD加上32bit的IPv4地址构成,长度为96bit,RD唯一,VPNv4地址唯一。
7.13小知识点
- BGP MPLS VPN中PE和PE之间使用MP-BGP路由协议交换VPN用户路由信息;
- BGP MPLS VPN转发数据包需要携带至少两个标签,一个标签表示到达出口PE的路径,另一个用来标识VPN;
- BGP MPLS VPN中私网标签的分发是由MP-BGP完成的,每个VPN每个标签;
- 压入一层MPLS标签的报文比普通IP报文多4个字节,即32bit;
- LDP标签分发协议,分为本地LDP会话和远程LDP会话,本地产生的LDP不是给自己用,而是给别人用;
- 静态配置过程中,上游出标签=下游入标签;
- LDP基于TCP连接,Hello报文采用UDP连接,端口号都是646;
7.14 MPLS VPN配置步骤
- 完成拓扑图和基本配置;
- 创建并配置一个VPN实例;
- 配置VPN实例的RD;
- 配置RT数值;
- 配置端口与VPN实例关联;
- PE之间建立IBGP、PE与CE建立EBGP;
- 将普通BGP升级为MP-BGP;
- 引入VPN路由信息。
7.15排障指令小汇总
- 查看LDP会话状态以及LDP LSP的建立情况;
Display mpls ldp session;关注点在于status状态下是否为operational;
- Display mpls ldp lsp;关注一下接口和下一跳,看看是否有地方配置错误;
- Display ip vpn-instance verbose;查看VPN实例的配置情况,关注点在于配置名称,RD、RT数值是否配置正确和接口等;
- Ping -vpn-instance Huawei 21.1.1.1;检查客户端到运营商边界设备的连通性;
- Display bgp vpnv4 all peer;检查PE和BGP对等体关系,重点关注State是否为Established;
- Display bgp vpnv4 vpn-instance Huawei peer;查看PE与CE之间的BGP对等体关系,重点关注State是否为Established;
- Display ip routing-table vpn-instance Huawei;查看vpn-instance的路由状态,重点关注我们要ping通的路由;
- Display ip routing-table;用户设备查看,因为用户设备上是没有VPN实例的。
7.16 BGP MPLS VPN特性配置
- 完成基本配置,端口及IBGP组网完成;
- 使能骨干网PE、P设备的MPLS LDP能力:
配置mpls lsr-id ;
主界面mpls及mpls ldp使能;
进入相关端口mpls和mpls ldp;
(查询结果:Display mpls ldp session
Display mpls ldp lsp);
- 创建并配置一个VPN实例及RD:
Ip vpn-instance huawei;
Route-distinguish 100:1;
Vpn-target 100:1 both;
(查询结果:Display ip vpn-instance verbose);
- 配置接口与VPN实例相连:
接口状态下:
Ip binding vpn-instance Huawei;
Ip ad x.x.x.x xx;
(查询结果:ping -vpn-instance Huawei 21.1.1.1)
- 建立PE与CE之间的关系:
可以建立EBGP的关系或OSPF、ISIS关系;
注意事项:建立EBGP是要进入IPv4-family vpn-instance Huawei;
建立IBGP和正常建立一样
要升级BGP为MP-BGP:
IPv4-family vpnv4界面下,升级;
(建立OSPF和ISIS时,直接绑定VPN:
OSPF/ISIS 10 vpn-instance xx;)
(查询结果:Display bgp vpnv4 all peer)
- 引入路由:
在IPv4-family vpn-instance Huawei界面下,使用import-route xx;
在PE上,向OSPF/ISIS导入BGP路由;
(查询结果:Display bgp vpnv4 vpn-instance Huawei peer)
- 查询PE到对端CE的IP表:
(查询结果:Display ip routing-table vpn-instance Huawei)
- 查询CE上的路由表:
(查询结果:Display ip routing-table)
- 测试从CE之间的互联性:
(查询结果:ping xx.xx.xx.xx)
7.17配置本地CCC连接
- 搭建骨干网络隧道,如OSPF、ISIS等;
- 使能PE、P设备,包括主界面和端口界面;
使用mpls、mpls l2vpn;
- 配置AC接口
Vlan-type dot1q 数值;
- 配置本地连接
Ccc CEx-CEx interface G 0/0/x.x out-interface G 0/0/x.x
- 在CE上配置VLAN类型和ip地址
Vlan-type dot1q 数值;
Ip address x.x.x.x xx;
(查询结果:display l2vpn ccc-interface vc-type ccc;
Display vll ccc CEx-CEx
Ping x.x.x.x)
7.18配置远程CCC连接
- 搭建骨干网络隧道,如OSPF、ISIS等;
- 使能PE、P设备,包括主界面和端口界面;
使用mpls、mpls l2vpn(主界面和PE与PE相连接口);
- 配置AC接口
Vlan-type dot1q 数值;
- 配置远程连接
Ccc CEx-CEx interface G 0/0/x.x in-label 数值1 out-label 数值2 nexthop x.x.x.x;
- 反方向在另一边缘路由器进行类似配置
Ccc CEx-CEx interface G 0/0/x.x in-label 数值2 out-label 数值1 nexthop x.x.x.x;
- 在CE上配置VLAN类型和ip地址
Vlan-type dot1q 数值;
Ip address x.x.x.x xx;
7.19配置Martini连接
- 搭建骨干网络隧道,如OSPF、ISIS等;
- 使能PE、P设备,包括主界面和端口界面;
使用mpls、mpls l2vpn(mpls l2vpn default martini)、mpls ldp;
- 配置AC接口
Vlan-type dot1q 数值;
Mpls l2vc下一路由器的LOOPBACK0 数值;
- 绑定公网邻居等(主窗口下)
Mpls ldp remote-peer路由器的名称;
Remote-peer 下一路由器的LOOPBACK0 数值
- 反方向在另一边缘路由器进行类似配置
- 在CE上配置VLAN类型和ip地址
Vlan-type dot1q 数值;
Ip address x.x.x.x xx;
7.20配置SVC连接
- 搭建骨干网络隧道,如OSPF、ISIS等;
- 使能PE、P设备,包括主界面和端口界面;
使用mpls、mpls l2vpn(mpls l2vpn default martini)、mpls ldp;
- 配置AC接口
Vlan-type dot1q 数值;
- 配置SVC连接
Mpls static-l2vc destination 下一路由器的LOOPBACK0 数值1 transmit-vpn-label 数值1 receive-vpn-label 数值2
- 反方向在另一边缘路由器进行类似配置
Mpls static-l2vc destination 下一路由器的LOOPBACK0 数值1 transmit-vpn-label 数值2 receive-vpn-label 数值1
- 在CE上配置VLAN类型和ip地址
Vlan-type dot1q 数值;
Ip address x.x.x.x xx;
7.21 LDP会话的建立过程
- 发送Hello报文,确定主动和被动(比较Lsr-id 谁大谁优先);
- 建立TCP连接;
- 通过Initialization报文,主动方发初始化消息协商参数(包括版本号等);
- 被动方接受参数则发初始化消息和Keepalive消息,以低版本为基础;
- 主动方接受参数则发初始化消息和Keepalive消息。
7.22标签分发形式
标签分发形式主要包括三大类六小类,三大类包括标签分发、控制和保持。
标签分发包括:
- DOD下游按需发布:上游提出请求,下游按需进行发布;
- DU下游自主发布:不关心上游是否提出请求,下游均发布;
标签控制包括:
- Independent独立控制:不管下游是否给我发,我都给上游发;
- Ordered有序控制:只有收到下游给我发,我才给上游发;
标签保持包括:
- Conservation保守模式:收到了就不再存储;
- Liberal自由模式:收到了继续存储,作为备用。
VRP平台默认采用DU+Ordered+Liberal。
7.23 PHP倒数第二跳弹出机制(抓包可见笔记末)
特殊标签有标签0—显式空标签,1—IPv4报警,2—IPv6报警,3—隐式空标签(默认状态下下发,可在MPLS界面下使用label advertise non-all取消倒数第二跳弹出机制)。
7.24 MPLS L2 VPN的定义
- MPLS L2 VPN提供基于MPLS网络的二层VPN服务,使运营商可以在同一的MPLS网络上提供基于不同介质的二层VPN;
- MPLS网络仍可以提供传统IP、MPLS L3 VPN等服务;
- MPLS L2 VPN就是在MPLS网络上透明传输用户二层数据。
7.25 MPLS L2 VPN的优势
- 扩展了运营商的网络功能和服务能力;
- 具有更高的扩展性;
- 管理责任分工明确;
- 路由私有、安全;
- 多协议支持。
7.26 MPLS L2 VPN的基本架构
- AC:接入电路;
- VC:虚电路;
- Tunnel:隧道。
7.27 CCC连接方式
- CCC方式是一种静态配置VC连接的方式;
- CCC独占一条LSP;
- 在VC一端收到的二层协议报文映射到一个静态LSP隧道,途径的每一跳根据该静态LSP进行MPLS转发,最后将报文转发到VC另一端;
7.28 Martini连接方式
- 两层标签;
- 内层标签采用扩展的LDP作为信令进行交互;
- 外层tunnel可以是LSP Tunnel,MPLS TE Tunnel,GRE Tunnel,可以由LDP、RSVP-TE或静态配置来建立;
7.29 SVC方式的MPLS L2 VPN
- SVC是Martini的简化;
- 其与Martini主要区别是Martini的内层标签由扩展的LDP协议分配,SVC由手工分配。
7.30 VPLS的定义
VPLS是一种基于MPLS和以太网技术的二层VPN技术,VPLS可以实现多点到多点的VPN组网。
7.31 LDP的基本概念和封装格式
- LDP是用来在LSR之间建立LDP Session并交换Label/FEC映射信息的协议;
- LDP头部10字节,其中Type2字节、Length2字节、V6字节;
- 封装在TCP之前;
7.32 LDP消息类型
- Discovery message(Hello):宣告和维护网络中一个LSR的存在;
- Session message(Initialization协商和Keepalive监控TCP):建立、维护和终止LDP Peers之间的LDP Session;
- Advertisement message:生成、改变和删除FEC的标签映射;
- Notification message:宣告告警和错误信息。
7.33 LDP发现机制
- LDP基本发现机制:发现直接连接在同一链路上的LSR邻居;
- LDP扩展发现机制:发现非直连的LSR邻居;
7.34 LDP状态机
- Non existent;LSR1、LSR2根据双方地址决定在会话建立中哪个是主动方,哪个是被动方,地址大的一方为主动;
- Initialized;建立支持会话的TCP连接
- OpenRec;被动方接收到可以接收的Init消息,进入OPENREC状态,同时向对方发送Init消息和KeepAlive消息
- OpenSent;主动方发送Init消息,进入OPENSENT状态
- Operational;进入OpenRec的一方接收到Keepalive消息进入operational状态
7.35小知识点
- 建立LSP的协议有RSVP、LDP和MPBGP;
- MPLS静态LSP配置,只使能物理接口,不使能逻辑接口;
- MPLS BGP VPN是一种基于PE的L3 VPN的技术;
- 先建立BGP,再升级为MP-BGP;
- BGP MPLS VPN中PE和PE之间使用MP-BGP路由协议来交换VPN用户路由信息;
- BGP MPLS VPN转发数据包时,数据包至少包含两个标签,一个标签表示到达出口PE的路径,另一个用来表示VPN;
- MPLS BGP VPN中私网标签的分发是由MP-BGP完成的,公网标签的分发是由LDP完成的;
- BGP MPLS VPN为解决不同VPN用户之间可能出现地址重叠这个问题,可以为VPN用户分配唯一的RD;
- 有多少AC接口就有多少VC电路,AC接口到AC接口为VC段;
- AC接口不能配IP;
- MPLS L2 VPN相比较于BGP MPLS VPN的优点是不再需要运营商协助企业传递路由信息;
- 由于MPLS L2 VPN只提供通道服务,所以在故障处理的时候更容易划分运营商和客户之间的责任归属;
- MPLS L2 VPN相比较于BGP MPLS VPN可以为用户提供更好地安全性保障;
- 点到点方式的MPLS L2 VPN实现方式有CCC、SVC、Martin和Kompella;
- 转发报文打上两层标签:Martini、SVC和Kompella;
- Martini方式下内层标签都是由扩展的LDP生成,外层标签由LDP生成;
- SVC方式下内层标签手工配置,外层标签由LDP协议生成;
- 外层标签用于标示LSP隧道,内层标签标示可能承载在同一LSP的VC;
- Martini方式下用VC ID和VC Type在两端PE唯一标示VC连接;
- PWE3就是一条双向的VC;
- L2VPN就是由虚拟专线VLL、伪线仿真PWE3和虚拟专网VPLS;
- 时隙0用来传递信令和帧分隔符;时隙1到31用来传递不同用户的业务数据;
- VPLS可以实现多点到多点的MPLS L2 VPN;
- VPLS的实现由两种方式:Martini和Kompella;
- VPLS的数据转发从MAC地址学习与泛洪、报文封装、数据转发和环路避免;
- VPLS中,使用“全连接”和“水平分割转发”来避免环路;