MPLS VPN原理与配置
VPN技术的产生及分类
最初为了实现两个站点之间跨越公网通信,并保护私网的安全,人们通常采用专线来实现私网之间的连接。由于专线固有缺陷的存在,随着复用技术的出现,一些新的共享带宽技术铸件代替了专线。
新的共享带宽的技术有帧中继、X.25等 ,这些技术其实是一种逻辑的隔离技术,就好像在两个站点之间跨越公共网络建立了专用的隧道,站点通过隧道实现通信。
VPN网络特点:
- 使用共享的公共网络环境实现各私网的连接
- 不同私有网络之间互相不可见
VPN模型 – Overlay VPN
Overlay VPN可以在CE设备上建立隧道,也可以在PE设备上建立隧道
在CE与CE之间建立隧道,并直接传递路由信息,路由协议数据总是在客户设备之间交换,运营商对客户网络结构一无所知。
- 优点:不同的客户地址空间可以重叠,保密性、安全性非常好;
- 缺点:本质是一种”静态”VPN ,无法反应网络的实时变化。并且当有新增站点时,需要手工在所有站点上建立与新增站点的连接,配置与维护复杂,不易管理。
在PE上为每一个VPN用户建立相应的隧道,路由信息在PE与PE之间传递,公网中的P设备不知道私网的路由信息。
- 优点:客户把VPN的创建及维护完全交给运营商,保密性、安全性比较好;
- 缺点:不同的VPN用户不能共享相同的地址空间。
VPN模型 – Peer-to-Peer VPN
1.共享PE的接入方式
所有VPN用户的CE设备都连到同一台PE上, PE与不同的CE之间运行不同的路由协议(或者是相同路由协议的不同进程)。由始发PE将路由发布到公网上,在接收端的PE上将路由过滤后再发给相应的CE设备。
2.专用PE接入模式
MPLS VPN解决的问题
三个问题:
1.PE设备怎么区分不同VPN客户端的相同路由?
2.冲突路由在公网传播时,接收端PE如何正确导入VPN客户路由?
3.PE设备收到IP数据包后,如何正确发送给目的VPN客户端?
本地路由冲突的问题:可以通过在同一台PE设备上为不同的VPN建立单独的路由,这样冲突的的路由就被隔离开来;
在路由传递过程中,为不同的VPN路由添加不同的标识,以示区别。这些标识可以作为BGP属性进行传递;
由于IP报文不可更改,可以在IP报文头前加一-些信息。由始发路由器打上标记,接收路由器在收到带标记的的数据包时,根据标记转发给正确的VPN。
1.在共享PE设备上使用VRF技术将重叠的路由隔离
- 共享PE设备上实现重叠路由的隔离就是在PE设备上将来自每个VPN的路由放入自己对应的VPN Routing Table中,每个VPN Routing Table只记录对应VPN中学来的路由,就像是专用PE一样。这个VPN Routing Table称谓VRF ( VPN Routing and Forwardingtable ) ,即VPN路由转发表。
- 每一个VRF都需要对应一 个VPN instance , VPN用户对应的接口绑定到VPN instance中。
- 对于每个PE ,可以维护一个或多个VPN instance ,同时维护一个公网的路由表(也叫全局路由表) ,多个VPN instance实例相互独立且隔离。其实现VPN instance并不困难,关键在于如何在PE.上使用特定的策略规则来协调各VPN instance和全局路由表之间的关系。
PE设备在维护多个VPN Routing Table时,同时还维护一个公网的路由表
2.在网络传递过程中区分冲突路由
RD(Route Distinguish)路由区分符
- RD即VPN路由标识符,由8字节组成,配置时同- -PE设备上分配给每个VPN的RD必须唯一。
- RD用于区分使用相同地址空间的IPv4前缀,增加了RD的IPv4地址称为VPN-IPv4地址(即VPNv4地址)。
- 运营商设备采用BGP协议作为承载VPN路由的协议,并将BGP协议进行了扩展,称为MP-BGP ( Multiprotocol Extensions for BGP-4 )。PE从CE接收到客户的IPv4私网路由后,将客户的私网路由添加各种标识信息后变为VPNv4路由放入MP- BGP的VPNv4路由表中,并通过MP- BGP协议在公网上传递。
3.Hub-Spoke场景中VPN路由的引入
RD不能解决VPN路由正确引入VPN的问题
问题的解决:
RT(Route Target):
RT的作用类似于BGP中扩展团体属性,用于路由信息的分发。它分成lmport RT和Export RT,分别用于路由信息的导入、导出策略。当从VRF表中导出VPN路由时,要用Export RT对VPN路由进行标记;在往VRF表中导入VPN路由时,只有所带
RT标记与VRF表中任意一个lmport RT相符的路由才会被导入到VRF表中。RT使得PE路由器只包含和其直接相连的VPN的路由,而不是全网所有VPN的路由,从而节省了PE路由器的资源,提高了网络拓展性。RT具有全局唯一性,并且只能被一个VPN使用。通过对Import RT和Export RT的合理配置,运营商可以构建不同拓扑类型的VPN,如重叠式VPN和Hub-and-spoke VPN。
如图所示,希望实现分部只能与总部通信,分部之间不能通信。分配给分部1的ExportTarget为1:1 , Import Target为3:3 ;分配给分部2的Export Target为2:2 , Import Target为3:3 ;分配给总部的Export Target为3:3 , Import Target为1:1 , 2:2 ; PE2上收到对端PE1发送的VPNv4的路由后,检查其Export Target。因为总部的Import Target为1:1,2:2 ,所以值为1:1或2:2的路由被引入总部的VRF。PE1的VPNv4的路由引入各分部VRF的过程类似。
- RT ( Route Target )封装在BGP的扩展Community属性中,在路由传递过程中作为可选
可传递属性进行传递。 - RT的本质是每个VRF表达自己的路由取舍及喜好的属性,有两类VPN Target属性:
-
- Export Target :本端的路由在导出VRF ,转变为VPNv4的路由时,标记该属性;
- Import Target :对端收到路由时,检查其Export Target属性。 当此属性与PE上某个VPN实例的Import Target匹配时, PE就把路由加入到该VPN实例中。
4.解决数据转发过程中冲突路由的查找
方案:
- 在数据包中增加标识信息,并且使用RD作为区分数据包所属VPN的标识符,数据转发时也携带RD信息。缺点是由于RD由8字节组成,额外增大数据包,会导致转发效率降低。
- 借助公网中已经实施的MPL S协议建立的标签隧道,采用标签作为数据包正确转发的标识, MPLS标签支持嵌套,可以将区分数据包所属VPN的标签封装在公网标签内。
Outer MPLS Label在MPLS VPN中被称为公网标签,用于MPLS网络中转发数据。一般公网标签会在到达PE设备时已被倒数第二跳剥掉,漏出Inner Label。Inner MPLS Label在MPLS VPN中被称为私网标签,用于将数据正确发送到相应的VPN中, PE依靠Inner Label区分数据包属于哪个VPN。
MPLS VPN工作过程
MPLS VPN路由的传递过程
1.CE与PE之间的路由交换
2.VRF路由注入MP- BGP的过程;
两端PE运行MP-BGP ,通过公网将路由传递给对端
3.公网标签的分配过程;
4.MP-BGP路由注入VRF的过程。
MPLS VPN数据的转发过程
1.CE设备到PE设备的数据转发;
2.公网设备上的数据转发;
3.PE设备到CE设备的数据转发。
配置:
1.MPLS VPN配置
[r2]ip vpn-instance a 创建名为a的vrf空间
[r2-vpn-instance-a]ipv4-family 进入IPV4的配置模式下
[r2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 RD值
[r2-vpn-instance-a-af-ipv4]vpn-target 1:1 RT值 必须对端的PE端一致
[r2]interface GigabitEthernet 0/0/0 进入链接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a 关联到vrf空间
[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 配置私有ip地址
注:在关联到vrf空间前不能配置接口ip,否则该地址的直连路由将进入公有路由表;
[r2]display ip routing-table vpn-instance a 查看空间内的私有路由表
[r2]ping -vpn-instance a 192.168.2.1 正常测试将在公有路由表中查询记录;该命令为基于VRF空间
a进行路由查询
2.PE与PE间建立MP-BPG邻居关系
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
[r2-bgp]pe 4.4.4.4 as-number 2
[r2-bgp]pe 4.4.4.4 connect-interface LoopBack 0
[r2-bgp]pe 4.4.4.4 next-hop-local
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r2-bgp]display bgp vpnv4 all peer 查看mp-bgp邻居关系
3.CE端与PE端交互路由
静态:
- CE端直接编写静态路由即可;
- PE端编写到VRF空间内的静态路由
[r2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1
将本地vrf空间内的静态和直连路由重发布到BGP协议传递到对端的PE
[r2]bgp 2
[r2-bgp]ipv4 vpn-instance a
[r2-bgp-a]import-route direct
[r2-bgp-a]import-route static
<r4>display bgp vpnv4 vpn-instance a routing-table 查看mp-bpg的BGP表
OSPF:
- CE端正常启动OSPF即可
- PE端,启动VPNV4专用的ospf协议
[r4]ospf 2 vpn-instance a
[r4-ospf-2]area 0
[r4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0
之后使用双向重发布,实现路由共享
[r4]bgp 2
[r4-bgp]ipv4-family vpn-instance a
[r4-bgp-a]import-route ospf 2
[r4]ospf 2 vpn-instance a
[r4-ospf-2]import-route bgp
[r4]display mpls lsp vpn-instance a 查看双层标记的内层标签号
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100134.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...