-
【
MPLS
VPN
】
MPLS
VPN
中的报文转发
(2013-07-11 12:00:12)
报文无法以纯
IP
的形式在场点之间进行转发,
P
路由器不能转发这
些报文,因为
P
压根
没有
VRF
路由。
MPLS
可以
通过对报文粘贴标签解决这个问题,
让所有的
P
和
PE
运行
LDP
,
有了
LDP
,这些客户
的数据在穿越
MPLS VPN
网络的时候,就
“
包裹在
”
一层标签里头,<
/p>
P
路由器只需要对这层标签进行交换和转发即可,
P
路由器永远不会执行目的
IP
的查找工作,
这是在入站
PE
路由器
和出站
PE
路由器之间报文的交换方式。这层标签称为
IGP
标签,因
为该标签是粘连在
P
和
PE
路由器的全局路由
表的
IPv4
前缀之上的(我们在
P<
/p>
、
PE
上运行
的
基于全局路由表的
IGP
协议,如
OS
PF
,就是为了让
MPLS VPN Backbone
内的
IGP
路由
都可
达,这样
Backbone
内
LDP<
/p>
的标签分发才能正常工作)。
LDP
的标签解决了客户数据在
MPLS Backbone<
/p>
内的传输问题,
现在假设数据传到了出站
PE
路由器,它如何知道报文属于哪一个
VRF
呢(或者说,报文在出站
PE
上应该转发给哪
一个下一跳的
CE
路由器)?这个信息不在
p>
IP
头里,也不能从
IGP
标签中获得。那么我们
就需要加入另一层标签,来说明报文所属的
VRF
。
因此报文会有两
层标签,
一个
IGP
标签在顶部,
p>
一个
VPN
标签在底部。
< br>IGP
标签是通过
LDP
或者用
于
TE
的
RSVP
在所有
P
和
PE
< br>路由器上一跳一跳分发的。
VPN
标签是在
PE
之间用
MP-
BGP
进行通告的。
再详细一点看看这个问题:
?
客户的数据要想在
MPLS VPN Backbone
里传输,是需要借助标签的,有了标签,
Backbone
内的设备在转发数据的时候只要去针对标签进行查找和操作即可,而不用去
理会里头的
IP
目的地址。这层标签是由
LDP
分配并分发的。如上图中,紫色的标签
L1
及
L2
。这个标签最终会将数据引导到
EpressPE
。但是数据到了对端
PE
,对端
PE
怎么知道这个数据应该丢给哪一个
下一跳的
CE
设备呢?
因此,
PE
会给原始
IP<
/p>
包先压一层
VPN
标签,再压一层
LDP
标签作为外层,
VPN
标
签由
egressPE
的<
/p>
MP-BGP
分配并告知给
Ingres
s
,
所以其实在
Ingress PE
上,
压入的
VPN
标签用的是
Exgress PE
所告知的、为目的地所分
配的
VPN
标签。
?
上图中
V
的标签就是
VPN
标签,由
egressPE
分配(因为我去往对端的路由,是由
ExgressPE
传递过来的),
?
带
V
p>
的标签的数据到了
egress PE
的动
作应该是
untag
了(因为没人再传给我标签啊,
到我这就结束了),然后从某个接口扔出去(
V
标
签是由其自己分发的,所有他自己
肯定知道里头的数据应该交给谁)
(红茶三杯
/vinsoney
版权所有,转载请注明出处)
下面是一个例子:
?
分配外层标签
我们先考虑路由层面发生的事情
,我们思考的过程是从左到右。首先看
LDP
分配的外层标
p>
签。
Backbone
的设备都激活
LDP
,大家都会为
backbone
内的路由捆绑并分发标签。
Exgress
PE
为自己的
Loopback 10
.1.254.2/32
分配了一个空标签,
因为这个网段是直
连。
这个
loopback
路由很关键
,因为
ExgressPE
和
Ingr
essPE
之间是使用
loopback
建立的
MP-BGP
邻居关系。
-
-
-
-
-
-
-
-
-
上一篇:技术盛宴丨如何为RDMA构建无损网络
下一篇:学习总经理报告心得体会