目录
一、基本介绍
MPLS:多协议标签交换,最初是为了提高路由器的转发速度而提出的,与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间。
VPN:虚拟专用网络,在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术,作用是打通两个私网。
MPLS-VPN:使用BGP在运营商骨干网(IP网络)上发布VPN路由,使用MPLS在运营商骨干网上转发VPN报文。BGP/MPLS IP VPN又被简称为MPLSVPN,是一种常见的L3VPN(Layer 3VPN)技术。
网络架构
MPLS VPN网络架构由三部分组成:CE(Customer Edge)、PE(Provider Edge)和P(Provider),其中PE和P是运营商设备,CE是MPLS VPN用户设备。
站在用户角度,CE又叫出口路由器。
左侧PE设备是两个私网都需要经过的设备,所以需要利用VRF隔离,PE向上到达P设备后,同样为了隔离也需要用VRF,此时运营商骨干就会学习到大量的私网路由,这是运营商不想看到的,那么在P设备上就利用隧道技术来解决网络隔离,运用IGP+LDP技术就能在运营商骨干网的各PE之间建立隧道(公网隧道),让A去B的流量递归到该隧道中,那么中间P设备就不需要私网路由了,PE设备是MPLS中的标签边界路由器,P设备上中转设备。
隧道的特点:只要打上了相同的标签进入到隧道,那么在隧道中的流量就按标签转发。
MPLS VPN不是单一的一种VPN技术,是多种技术结合的综合解决方案,主要包含下列技术:
- MP-BGP:多协议BGP,负责在PE与PE之间传递站点内的私网路由信息(VPNv4)。
- LDP:负责PE与PE之间的隧道建立。
- VRF:负责PE的VPN用户管理。
- 静态路由、IGP、BGP:负责PE与CE之间的路由信息交换。
为什么选择MPLS VPN?
对VPN客户而言:
“感知”不到VPN的存在,不需要部署和维护VPN,降低企业运维难度和成本。
一般部署在运营商的MPLS VPN专网上,有一定的安全性保障。
对于运营商而言:
MPLS在无连接的IP网络中增加了面向连接的控制平面,为IP网络增添了管理和运营的手段。
支持地址空间重叠、支持重叠VPN、组网方式灵活、可扩展性好。
能够方便地支持MPLS TE合理调控现有网络资源,最大限度的节省运营商成本。
二、常见组网方案
- Intranet(内部组网):一个VPN中的所有用户形成闭合用户群,同一VPN站点之间可以互访,不同VPN站点间不能互访。
- Extranet(跨部分用户组网):适用于一个VPN用户希望提供部分本VPN的站点资源给其他VPN的用户访问的场景。
- Hub&Spoke(中心站点-分支站点组网):如果希望在VPN中设置中心访问控制设备,其它用户的互访都通过中心访问控制设备进行,可采用Hub&Spoke组网方案。
2.1、Intranet组网
首先需要完成不同站点之间的路由交互。
在基本MPLSVPN组网中,VPN路由信息的发布涉及CE和PE,P路由器只维护骨干网的路由,不需要了解任何VPN路由信息。VPN路由信息的发布过程包括三部分:
- 本地CE到入口PE
- 入口PE到出口PE
- 出口PE到远端CE
RD和RT
PE收到不同VPN的CE发来的IPv4地址前缀,本地根据VPN实例配置去区分这些地址前缀。但是VPN实例只是一个本地的概念,PE无法将VPN实例信息传递到对端PE,故有了RD。
RD(Route Distinguisher,路由标识符),区分私网路由,PE从CE接收到IPv4路由后,在IPv4前缀前加上RD,转换为全局唯一的VPN-IPv4路由。
RD格式:m:n,只是在本地用来区分不同实例的私网路由,到达对端PE丢弃RD, 对对端PE来说,RD只是帮助区分是两条路由,所以这两个RD是多少对远端PE没有意义。
VPNV4路由格式:RD+IPv4,1:1:192.168.1.1/24。
将vpnv4路由放到BGP中,使用BGP从PE1传达到PE2
本地PE在发布VPNv4路由前附上RT(route target)属性,对端RT在接到到VPNv4路由后根据RT将路由导入对应的VPN实例。
RT格式:1:1,作为vpnv4路由的属性,为路由打上标记,决定路由该发到哪个实例的策略
发送方给路由打上RT,称为ERT(export RT)
接收方有RT,与RT值匹配的路由加入到对应的实例中转发,称为IRT(import RT)
只要ERT和IRT一致,就能相互通信
2.1.1、MPLS-VPN(控制层面)
0、规划VRF RD RT
1、ISP配置
1.1配IP测直连
1.2配IGP,检查邻居关系,检查环回口路由,ping测试。
1.3MPLS,检查LDP邻居,LDP会话,LSP。
1.4MP-BGP,在PE和PE之间配置BGP邻居,用于将来传递vpnv4路由。
2、配置PE-CE (选用BGP)
2.1 CE全局配置BGP
2.2 PE创建VPN实例,配置RD,RT。
2.3 PE的接口绑定实例
2.4 PE配置BGP和CE建立邻居关系
3、发布路由
步骤1.4、MP-BGP
##PE2
bgp 200
router-id 2.2.2.2
peer 4.4.4.4 as-number 200
ipv4-family unicast
##方法一:邻居之间传递vpnv4路由,不传递IPv4路由,所以不用建立ipv4地址族邻居关系
undo peer 4.4.4.4 enable
##启用vpnv4地址族
ipv4-family vpnv4
##自动建立vpnv4地址族的邻居关系(PE和PE之间)
peer 4.4.4.4 enable
peer 4.4.4.4 connect-interface LoopBack0
##PE4
bgp 200
router-id 4.4.4.4
##方法二:邻居之间传递vpnv4路由,不传递IPv4路由,所以不用建立ipv4地址族邻居关系
undo default ipv4-unicast
peer 2.2.2.2 as-number 200
ipv4-family vpnv4
##自动建立vpnv4地址族的邻居关系
peer 2.2.2.2 enable
peer 2.2.2.2 connect-interface LoopBack0
disp bgp vpnv4 all peer
步骤2、配置PE-CE (选用BGP)
##CE1
bgp 100
##与PE起邻居
router-id 1.1.1.1
peer 2.2.2.2 as-number 200
##PE2
ip vpn-instance 1
##RD
route-distinguisher 1:1
##出方向RT
vpn-target 1:5 export-extcommunity
##入方向RT
vpn-target 5:1 import-extcommunity
interface GigabitEthernet0/0/0
ip binding vpn-instance 1
ip address 12.1. 1.2 255.255.255.0
bgp 200
##与CE起邻居
ipv4-family vpn-instance 1
peer 12.1.1.1 as-number 100
PE2和PE4之间用全局的参数( peer 4.4.4.4 as-number 200,peer 4.4.4.4 connect-interface LoopBack0)建立vpnv4邻居,传递vpnv4路由,PE2和CE1之间用实例1的参数(peer 12.1.1.1 as-number 100)建立vpnv4邻居,传递BGP(IPv4)路由。(实例是一台独立的路由器,和本尊没关系)
##PE4
ip vpn-instance 5
route-distinguisher 5:5
vpn-target 5:1 export-extcommunity
vpn-target 1:5 import-extcommunity
interface GigabitEthernet0/0/1
ip binding vpn-instance 5
ip address 45.1.1.4 255.255.255.0
bgp 200
ipv4-family vpn-instance 5
peer 45.1.1.5 as-number 300
##CE5
bgp 300
router-id 5.5.5.5
peer 45.1.1.4 as-number 200
CE1发布路由1.1.1.1/32
##CE1发布路由
bgp 100
net 1.1.1.1 32
disp bgp routing-table
##CE1发布的ipv4路由到达PE2后进入实例路由表(因为CE2和PE1是实例邻居)
##PE2
disp ip routing-table vpn-instance 1
disp bgp vpnv4 all routing-table
如下图 PE4收到vpnv4路由后,查询信息匹配RT值,根据RT值将路由放入到实例5中,同时丢弃RT值。
CE5发布路由5.5.5.5/32
##CE5发布路由
bgp 300
net 5.5.5.5 32
2.1.2、MPLS-VPN(转发层面)
首先,P3上没有1.1.1.1和5.5.5.5的路由,建立隧道之后在入站PE2上会有一条FEC是去往4.4.4.4的,到达PE4后出站。
CE5把5.5.5.5的路由发给PE4,PE4上看到的5.5.5.5路由下一跳在CE5上,PE4把5.5.5.5路由给到PE2,PE2上看到的5.5.5.5路由下一跳在PE4上,PE4虽然可达但不是直连,因此需要递归到IGP路由(4.4.4.4路由下一跳为P3),因为P3上有路由黑洞5.5.5.5路由不可达,所以也需要把其递归到隧道中。
在CE1上ping 5.5.5.5,查全局路由表转发至PE2,PE2的0口绑定了实例1,所以查实例路由表知道去往5.5.5.5的下一跳在PE4上,需要通过隧道转发,此时PE2发给P3的是标签包,P3发给PE4的为IP包(次末跳弹出),PE4收到后查全局表(没有去往5.5.5.5的路由),丢包。
针对上述情况,设置私网标签(V标),如下:
PE2—P3—PE4
通过IGP和LDP在PE2和PE4之间打通一条标签隧道(LSP:PE2上的FEC4.4.4.4出标签1024;P3上4.4.4.4入标签1024,出标签3;PE4上的FEC4.4.4.4入标签3),这些隧道标签叫T标(公网标签:穿越公网到达对端PE,解决路由黑洞)。
私网1—PE2—P3—PE4—私网5
私网5的5.5.5.5路由要通过PE4传递给PE2,当路由到达PE4时在FEC中为路由5.5.5.5打上入标签1025(V标:PE设备区分查哪个路由表),然后将路由携带标签1025传递到上游设备PE2,PE2上5.5.5.5出标签为1025,当ping5.5.5.5的流量由私网1转发到PE2时,先给5.5.5.5路由压入V标:1025,通过递归路由后再在外层压入T标:1024,此时PE2发给P3的是标签包,中转设备P3查lsp(标签转发信息库),不会看FEC路由是去哪的,只看T入标签1024对应的出标签是3,出口是0/0/1,然后弹出外层标签3(T标,次末跳弹出)从0/0/1转发,所以P3发给PE4的还是标签包(V标还在),到达PE4后查询lsp,根据V标1025对应的实例,查询实例表转发至CE5。
注:V标签通过BGP协议放在vpn路有中传递(作为vpnv4路由的一个参数),T标签通过LDP协议传递。
2.2、Hub&Spoke组网
中心站点hub管理分支spoke站点,spoke之间互访需要通过hub通信。
在靠近HUB的PE设备中设置两个实例(按照路由收发方向分为实例in和实例out),实例in的作用是接收spoke站点的路由(站点1\2.....的路由都发布至实例in,只有IRT),不发路由;实例in收到路由后发至HUB,HUB将路由发至实例out中,然后实例out发路由至站点1\2....,所以实例out中国只有ERT。
此时在spoke1上ping 2.2.2.2,PE3收到数据包由实例1路由表转发至PE5的实例out中(因为站点的路由是由实例out发送过来的)。
标签:十一,5.5,MPLS,PE2,实例,PE,VPN,路由 From: https://blog.csdn.net/qq_33782021/article/details/138852221