MPLS 多协议标签交换
MP:多协议,支持多种网络层协议。
LS:标签交换,根据标签指导数据包的转发。
一、应用场景
1、早期的网络中,用于提高转发效率。
2、MPLS-VPN。
3、MPLS-TE。
4、解决 BGP 路由黑洞。
二、基本概念
1、MPLS 位于 OSI 的 2.5 层。MPLS 头部封装在 2 层之后,3 层之前。
MPLS 标签头部,可以封装多层。
2、LSR:标签交换路由器。运行 MPLS 协议的设备。负责标签的压入、交换和弹出。
细分:
LER:标签边界路由器。负责标签的压入和弹出。
核心 LSR:位于 MPLS 网络内部,负责标签交换。
3、LSP:标签转发路径。去往同一个目的网段的报文,在 MPLS 网络中的转发路径。
4、FEC:转发等价类。具有相同转发处理方式的报文。
比如:具有相同的目的地,相同的下一跳等。
一条路由 称为 一个 FEC。
在 MPLS 网络中,为 FEC 分发标签的。
三、MPLS 数据报文格式
1、MPLS 标签头部:短而定长的、只有本地意义的标识,用于唯一标识一个目的地
址的报文。
长度:4B
a.label:标签值域。长度:20bit。
0~15:保留,有特定功能数值。
0:显示空标签。
3:隐式空标签。
16~1023:分配给静态 LSP 使用。
1024 ~ 2^20 : 给动态 LSP 使用。 b.exp:实验位。用于 QOS 中,区分 MPLS 报文优先级。
长度:3bit。
c.S:栈底位。用于标识是否为最后一层标签。长度:1bit
S = 0 ,不是最后一层。
S = 1 , 是最后一层。
d.TTL:生存时间。长度:8bit。
四、MPLS 体系结构
1、控制平面:维护和管理路由信息和标签信息的平面。
RIB:路由信息表,维护和管理路由信息。
LIB:标签信息表,维护和管理标签信息。
2、转发平面:指导数据包转发的平面。
FIB:转发信息表,指导 IP 报文的转发。
LFIB:标签信息转发表,指导 MPLS 报文的转发。
LDP:标签分发协议。为不同的 FEC 分配标签。
display fib #查看 FIB
五、FIB
1、目的网段/掩码
2、下一跳
3、出接口
4、tunnel-id:隧道 ID,用于唯一的标识一个 LSP 隧道。
当 tunnel-id = 0x0 时,根据 IP 转发。
当 tunnel-id = 非 0x0 时,根据 MPLS 转发。
六、LSP 建立方式
1、静态 LSP:
管理员手工为 FEC 指定标签,静态的生成 LSP 隧道。 特点:
a.节省设备性能。
b.不能适应网络变化。
配置:
0:运行 IGP 协议保证路由可达
1:配置 LSR-id
mpls lsr-id 2.2.2.2
注:LSR-ID 必须是设备接口 IP 地址。
2:开启 MPLS
mpls
3:需要接收和转发 MPLS 报文的接口下,开启 MPLS
int g0/0/1
mpls
4:配置入节点(ingress)
static-lsp ingress 1to5 destination 5.5.5.5 32 outgoing-interface g 0/0/1 nexthop 23.1.1.3
out-label 23
5:传输节点(transit)
static-lsp transit 1to5 incoming-interface g0/0/0 in-label 23 outgoing-interface g
0/0/1 nexthop 34.1.1.4 out-label 34
6:出节点(egress)
static-lsp egress 1to5 incoming-interface g0/0/0 in-label 34
注:
a.入标签和出标签要对应。
b.LSP 隧道要双向配置。
display mpls lsp #查看 LSP 隧道
2、动态 LSP
使用 LDP 协议为 FEC 分配标签,建立和维护 LSP 隧道。
特点:
a.配置简单。
b.易于管理和维护。
c.消耗设备性能。 配置:
1:配置 LSR-id
mpls lsr-id 2.2.2.2
2:开启 MPLS
mpls
3:开启 mpls ldp
mpls ldp
4:在接口下,开启 mpls 和 mpls ldp
int g0/0/0
mpls
mpls ldp
注:
默认情况下,只为 32 位的主机路由分配标签。
5:为所有的路由分配标签
mpls
lsp-trigger all
标签:
入标签:LSR 设备自行为 FEC 分配。
出标签:从下游邻居收到的 FEC 和标签映射。
标签的分发方向:
由下游往上游分配标签。
上游:数据包的发送方。
下游:数据包的接收方。
七、LDP 标签分发协议
1、邻居发现
通过 hello 报文发现和建立邻居关系。
hello 报文 DIP:224.0.0.2
基于 UDP,端口号:646
hello 报文中携带传输地址,该地址用于建立 TCP 连接。
默认情况下,传输地址 = LSR-ID。 2、TCP 连接建立
由传输地址大者,主动发起。
3、会话阶段
通过初始化报文协商参数。
通过 keepalive 报文对参数进行确认。
4、通告阶段
通过 label-mapping 报文携带 FEC 和标签的映射关系。
5、标签分发方式
DU:下游自主。不需要等待上游的请求,主动发送 FEC 和标签的映射。(默认)
DOD:下游按需。需要等待上游的请求,收到请求后才会发送 FEC 和 label 映射。
6、标签控制方式
独立:不需要等待下游分配标签,即可主动往上游分发 FEC 和 label 的映射。
有序:需要等待下游分配标签,才能往上游分发 FEC 和 label 的映射。(默认)
7、标签保存方式
保守:只接受最优下一跳传递的 FEC 和 label 映射关系。
自由:会接受最优下一跳和次优下一跳的 FEC 和 lab 的映射关系。(默认)
八、次末跳弹出机制(PHP)
1、作用
减少最后一跳路由器的查表次数。
2、实现原理
最后一跳路由器,在默认情况下,为直连 32 位路由分配 3 号标签。
当数据互访时,次末跳路由器发现出标签为 3 号标签,会提前将标签弹出。
MPLS VPN
一、VPN 虚拟私有网络
1、作用:
让私网数据能够在公网上传递。 RD: 作用:区分不同站点的相同 VPN 路由。
AA: NN
VPNv4 路由:打上了 RD 值的 IPv4 路由
RT 值:控制 VPNv4 路由的接收和发布
出 RT: AA: NN 入 RT: AA: NN 本端 PE 的出 RT 值要和对端 PE 的入 RT 值一致。
2、MPLS VPN 工作原理
在 MPLS 网络内使用 MP BGP 传递 VPNv4
路由平面
本端 PE---本端 PE:传递的 IPv4 路由,可以使用静态 IGP、 BGP
本端 PE-- -对端 PE:使用 MP- BGP 传递 v4 路由
对端 PE-- -对端 CE:传递的 IPv4 路由,可以使用静态 IGP、 BGP
过程:本端 CE 将路由传递到本端 PE,本端 PE 从 实例收到路由后,打上 RD 值,变成 v4
路由,然后将路由引入到 BGP 里,本端 PE 将 v4 路由分配出标签,然后将 v4 路由传递给
对端 PE,对端 PE 收到 v4 路由将出标签作为自己的入标签,同时将 v4 路由引入到
实例里剥离 RD 值,对端 PE 通过 IGP、BGP 将路由传递给对端 CE.
转发平面
过程:本端 cE 将数据包交给本端 PE,本端 PE 收到数据后, 查看 BGP v4 路由标签表,根
据 目的 IP 找到对应的标签,打上内层标签,根据下一-跳, 查看 FIB, 找到对应的 tunnelID,
再次 查找 NHLFE,根据 FEC 找到对应的标签,打上外层标签,根据下一跳和出接口进行转
发。中 间 P 设备收到数据时,直接查找 IM 标签,根据标签找到对应的动作、下一跳和出接
口,次末 跳弹出了外出标签,然后将数据包转发给对端 PE,对端 PE 收到数据查找 BGP v4
路由标签 表,根据表项进行转发。将数据包交给对端 CE.回包过程一致。
工作原理
路由传递
CE 设备通过 IGP 或 BGP 将 ipv4 路由传递给 PE1
"PE1 从 实例收到路由后将 ipv4 的路由打上 RD 值,变成 v4 路由,同时传递到 BGP
路由表
:PE1 通过 MP-BGP 将 v4 路由传递给 PE2,携带了出 RT 属性
·PE2 收到 v4 路由后,路由属性中的 RT 值与自身入 RT 值否一致,同时判断于哪个
实例,然后放入 VPNV4 路由表
PE2 将 v4 路由拆除 RD,变成 ipv4 路由发送给 CE2
标签分发
当 v4 路由传递到 PE1 时,PE1 的 MPLSLDP 会为这条路由的 FEC 产生一个 LDP 的入国标
签和 BGP 的入标签,同时将这个 LDP 入标签作为 P1 的出标签,将 BGP 的入标签作为 PE2
的出标签分别发给 P1 和 PE2,P1 收到路由后也会为这条 FEC 产生入标签同时将这个入标签
作为 PE2 的出标签发给 PE2 数据转发
私网数据到达 CE1 时,CE1 查找路由表,将数据发送给 PE1
。PE1 收到数据后,查 FIB 表,发现 tunnID 非 0,然后查找 BGP 标签表,打上内层 BGP 标
签,确定出接口和下一跳,根据下一跳再查看 FIB 表,发现非 0,查看 MPLSIdp 标签表,打
上 MPLS 标签外层标签,确定出接口和下一跳,然后将数据包发给 PP 收到数据后,解封装
到 MPLS,发现入标签为 x,直接查看 MPLSLDP 标签表将 x 交换为 y 标签,同时确定出接
口和下一跳,将数据包发送给 PE2
PE2 收到数据包后首先解封装到 MPLS,发现入标签为 3,直接弹出,然后解封装到 BGP 标
签,出标签为空,然后继续解封装到 IP 层,根据目的 IP 查看 IP 路由表,将数据转发给私网
设备
2、分类:
a.overlay VPN
特点:
客户的路由信息自行维护,运营商对客户的网络一无所知。
代表:
GRE-VPN、IPsec-VPN 和 SSL-VPN 等。
b.peer to peer VPN
特点:
客户的路由信息会传递给运营商,由运营商来建立 VPN。
代表:
MPLS-VPN。
二、MPLS-VPN 网络结构
1、CE:客户端边界设备。负责连接运营商网络。
2、PE:运营商边界设备。负责连接客户网络和运营商网络。
3、P:运营商骨干设备。处于运营商网络内部,在 MPLS-VPN 中负责 MPLS 的数据转
发。
三、MPLS-VPN 中需要解决的问题
1、PE 设备如何区分不同 VPN 站点的路由?
2、PE 设备如何传递私网路由?
3、PE 设备如何将路由正确的导入 VPN 站点?
4、PE 设备如何正确转发私网数据包? 四、PE 设备如何区分不同 VPN 站点的路由?
1、VRF 技术:VPN 路由转发表,也称:VPN-instance。
作用:
逻辑上将 VPN 站点路由和公网路由隔离开来。
配置:
1:创建 VPN 实例,配置 RD 值
ip -instance A1
ipv4-family
route-distinguisher 1:1
2:将接口划入到 VPN 实例中
interface GigabitEthernet0/0/1
ip binding -instance A1
ip address 10.1.14.1 24
注:将接入划入 VPN 实例后,接口 IP 地址会丢失。
display ip routing-table -instance A1 #查看 VPN 实例路由表
五、PE 设备如何传递私网路由?
1、MP-BGP:多协议 BGP。支持 IPV4、IPV6 和 VPNv4 等路由的传递。
作用:
a.在 PE 设备之间,传递 VPNv4 路由。
b.给私网路由分配私网标签。
2、RD:路由区分符。当私网路由信息进入 VPNv4 路由表时,会打上 RD,以此来区
分不同 VPN 站点的路由。
表示形式:NN:MM
VPNv4 路由 = RD + 私网路由
96bit 64bit 32bit
3:PE 之间建立 MP-IBGP 邻居关系
bgp 100
peer 10.1.3.3 as-number 100
peer 10.1.3.3 connect-interface LoopBack0
#
ipv4-family v4
peer 10.1.3.3 enable display bgp v4 all peer #查看 VPNv4 邻居关系
4:PE 设备和 CE 设备运行 IGP,同时将 VPNv4 路由引入 VPN 实例站点
ospf 2 -instance A1
import-route bgp
area 0.0.0.0
network 10.1.14.0 0.0.0.255
5:将 VPN 实例路由引入到 VPNv4 路由表
bgp 100
ipv4-family -instance A1
import-route ospf 2
display bgp v4 all routing-table #查看 VPNv4 路由表
六、PE 设备如何将路由正确的导入 VPN 站点?
1、RT:VPN-target。用于控制 VPN 路由的导入。
表示形式: NN:MM
工作原理:
PE 设备在发送 VPNv4 路由时,会携带导出值。对端 PE 收到该 VPNv4 路由时,会
对比 VPN 实例站点是否有对应的导入值。
如果有,则导入对应的 VPN 实例站点。
如果没有,则不导入。
import target:导入值。
export target:导出值。
6:在 -instance 下,配置 RT 值
ip -instance A1
-target 100:100 export-extcommunity
-target 200:200 import-extcommunity
注:
a.导入值和导出值可以设置多个。
b.在进行匹配时,只需匹配其中一个即可。
配置总结:
1:创建 -instance,并配置 RD 和 RT 值。
ip -instance B1
ipv4-family route-distinguisher 3:3
-target 300:300 export-extcommunity
-target 400:400 import-extcommunity
2:将接口划入 -instance
interface GigabitEthernet0/0/2
ip binding -instance B1
ip address 10.1.15.1 255.255.255.0
3:在 PE 和 CE 之间运行路由协议
ospf 3 -instance B1
area 0.0.0.0
network 10.1.15.0 0.0.0.255
4:在 PE 和 PE 之间运行 MP-BGP 协议
bgp 100
peer 10.1.3.3 as-number 100
peer 10.1.3.3 connect-interface LoopBack0
ipv4-family v4
peer 10.1.3.3 enable
5:将私网路由引入 VPNv4 路由表
bgp 100
ipv4-family -instance B1
import-route ospf 3
6:将 VPNv4 路由引入 VPN 站点
ospf 3
import-route bgp
六、PE 设备如何正确转发私网数据包?
通过两层标签嵌套实现。
1、公网标签:
a.作用:在公网上,指导私网数据的转发,解决路由黑洞。
b.产生:公网运行的 MPLS LDP 协议分发
2、私网标签:
a.作用:让 PE 设备将私网数据正确发往对应的 VPN 实例。
b.产生:通过 MP-BGP 协议分发 MPLS 组网
组网类型
Intranet
同一 VPN 站点之间可以互访,不同 VPN 站点间不能互访
Extranet
一个 VPN 站点共享资源给外界,既能被同 VPN 访问,也能被不同 VPN 访问
Hub&Spoke
·同 VPN 中设置中心站点,其它用户的互访都通过中心站点中转
Hub&Spoke 概述
将多个站点中的一个站点设置为 Hub 站点,其余站点为 Spoke 站点。站点间的互访必须通
过 Hub 站点,通过 Hub 站点集中管控站点间的数据传输
组网方案
"方式-:Hub-CE 与 Hub-PE,Spoke-PE 与 Spoke-CE 使用 EBGP
方式二:Hub-CE 与 Hub-PE,Spoke-PE 与 Spoke-CE 使用 IGP
"方式三:Hub-CE 与 Hub-PE 使用 EBGP,Spoke-PE 与 Spoke-CE 使用 IGP
为什么无法使用 Hub-CE 与 Hub-PE 使用 IGP,Spoke-PE 与 Spoke-CE 使用 EBGP 方式
会出现网络震荡
MPLS VPN SuperBackBone(后门链路)
·
作用:可以直接进行 OSPF 报文交互
,重要参数
domian id type
实现过程
sham Link
应用场景
: 两个总公司
工作原理
在 mpls 域中,PE 之间建立一个虚拟 ospf 链路,将一二类 lsa 传递过去
MPLS VPN 高级特性
MCE 组网
AS 号替换
SOO
CE 多归属场景,如果配置了 BGP 的 AS 号替换功能,可能会引起路由环路,可以使用
So0 防环
配置了指向 BGP 邻居的 SOO 号后
接收到邻居的 BGP 路由时,会在路径属性中携带该 S00 属性
向邻居通告 BGP 路由时,会检查路由中的 S00 属性是否与此邻居配置的 SoO 值相
同,若相同则不通告,避免引起环路
MPLS VPN 防环机制 OSPF DN
OSPF Route Tag
BGP SoO
ISIS