配置篇
技术背景
MPLS L3VPN概述:MPLS L3VPN是服务提供商VPN解决方案中一种基于PE(Provider Edge)的L3VPN技术,它使用BGP(Border Gateway Protocol)在服务提供商骨干网上发布VPN路由,使用MPLS在服务提供商骨干网上转发VPN报文。
MPLS L3VPN架构主要由用户站点(Site)、用户边缘路由器(CE)、骨干网边缘路由器(PE)和骨干网路由器(P)组成。每个客户都有自己的虚拟路由转发表(VRF),从而实现了路由信息的隔离,确保了不同客户网络之间的私密性和安全性。
CE(Customer Edge)设备:用户网络边缘设备,有接口直接与SP(Service Provider,服务提供商)相连。CE可以是路由器或交换机,也可以是一台主机。CE“感知”不到VPN的存在,也不需要必须支持MPLS。
PE(Provider Edge)路由器:服务提供商边缘路由器,是服务提供商网络的边缘设备,与用户的CE直接相连。在MPLS网络中,对VPN的所有处理都发生在PE上。
P(Provider)路由器:服务提供商网络中的骨干路由器,不与CE直接相连。P设备只需要具备基本MPLS转发能力。
RT:MPLS L3VPN使用BGP扩展团体属性——Route Target(也称为VPN Target)来控制VPN路由信息的发布。
RD:RD(Route Distinguisher,路由区分器是用来解决VPN前缀在通过MP-BGP(多协议BGP)在MPLS VPN网络中进行扩散时前缀唯一性问题的一个机制。RD为每一个用户收到的每一个前缀分配一个唯一的标识符,以区分来自不同用户的相同前缀。RD加上IPv4地址形成VPNv4地址。
同时,使用MPLS L3VPN架构在安全性角度上也有诸多好处:
1. 路由隔离与地址空间管理
路由隔离:MPLS L3VPN架构为每个VPN实例配置了独立的VRF(虚拟路由转发表),实现了不同VPN之间的路由信息隔离。这种隔离机制防止了路由信息的泄露和干扰,从而降低了网络攻击的风险。
地址空间管理:MPLS L3VPN支持地址重叠功能,但每个VPN实例的路由信息都是独立且唯一的。通过为每个VPN实例配置不同的RD(路由标识)和VRF,MPLS L3VPN能够区分来自不同VPN的路由信息,确保数据包的正确转发和接收。这种地址空间管理机制有助于防止因地址冲突而导致的网络攻击。
2. 标签转发机制
标签封装:在MPLS L3VPN中,数据包在传输过程中被封装在MPLS标签中。这种封装机制增加了数据包的隐蔽性,使得黑客难以截获和篡改数据包内容。
标签交换:MPLS标签在MPLS网络中实现快速转发。通过标签交换,数据包可以沿着预设的标签交换路径(LSP)快速、准确地到达目的地。这种转发机制降低了数据包在传输过程中的延迟和抖动,从而提高了网络的安全性和稳定性。
3. 强大的QoS保障
优先级设置:MPLS L3VPN支持MPLS流量工程(TE)和MPLS服务质量(QoS)保障功能。网络管理员可以根据业务需求为不同的数据流设置不同的优先级和转发策略。
资源分配:通过QoS保障功能,MPLS L3VPN可以为关键业务提供高质量的网络服务,确保这些业务在传输过程中获得足够的带宽和低延迟。这种资源分配机制有助于防止恶意流量对网络造成攻击和破坏。
4. 灵活的组网方式
跨运营商互连:MPLS L3VPN提供了灵活的组网方式,可以实现跨运营商、跨地域的网络互连。这种组网方式有助于降低因单一运营商网络故障而导致的安全风险。
冗余备份:通过配置冗余的PE设备和链路,MPLS L3VPN可以提供高度的网络可用性和故障恢复能力。这种冗余备份机制有助于确保网络在遭受攻击或故障时能够迅速恢复正常运行。
5. 访问控制与认证机制
访问控制:MPLS L3VPN可以通过配置访问控制列表(ACL)来限制对网络的访问。这种访问控制机制有助于防止未经授权的访问和攻击。
认证机制:MPLS L3VPN可以支持基于数字证书、用户名和密码等认证机制来确保只有授权的用户和设备才能访问网络。这种认证机制有助于防止恶意用户和网络攻击者对网络进行破坏和窃取敏感信息。
6. 安全策略与监控
安全策略:MPLS L3VPN可以配置安全策略来规范网络使用和访问行为。这些安全策略可以包括数据加密、防火墙配置、入侵检测系统等。
监控与响应:MPLS L3VPN可以配置监控和响应系统来实时检测网络中的异常行为和潜在的安全威胁。一旦发现安全威胁,系统可以立即采取响应措施来防止攻击和降低损失。
MPLS L3VPN架构通过路由隔离与地址空间管理、标签转发机制、强大的QoS保障、灵活的组网方式、访问控制与认证机制以及安全策略与监控等多种技术和机制来预防网络攻击。这些技术和机制共同构成了MPLS L3VPN架构在网络安全方面的强大保障。
组网需求
CE 1、CE 3属于VPN 1,CE 2、CE 4属于VPN 2;
VPN 1使用的Route Target属性为111:1,VPN 2使用的Route Target属性为222:2。不同VPN用户之间不能互相访问;
CE与PE之间配置EBGP交换VPN路由信息;
PE与PE之间配置OSPF实现PE内部的互通、配置MP-IBGP交换VPN路由信息。
拓扑图
地址规划
终端(1)与终端(3)同属于VPN1,可以互相通信,终端(2)与终端(4)同属于VPN2,可以互相通信,VPN1与VPN2内主机无法通信。
网络配置
配置运营商网内部IGP(P,PE1,PE2)
配置P路由器
<P> system-view
[P] interface loopback 0
[P-LoopBack0] ip address 2.2.2.9 32
[P-LoopBack0] quit
[P] interface gigabitethernet 4/0
[P-GigabitEthernet4/0] ip address 172.1.1.2 24
[P-GigabitEthernet4/0] quit
[P] interface gigabitethernet 5/0
[P-GigabitEthernet5/0] ip address 172.2.1.1 24
[P-GigabitEthernet5/0] quit
[P] ospf
[P-ospf-1] area 0
[P-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0
配置PE1路由器
<PE1> system-view
[PE1] interface loopback 0
[PE1-LoopBack0] ip address 1.1.1.9 32
[PE1-LoopBack0] quit
[PE1] interface gigabitethernet 4/0
[PE1-GigabitEthernet4/0] ip address 172.1.1.1 24
[PE1-GigabitEthernet4/0] quit
[PE1] ospf
[PE1-ospf-1] area 0
[PE1-ospf-1-area-0.0.0.0] network 172.1.1.0 0.0.0.255
[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0
配置PE2路由器
<PE2> system-view
[PE2] interface loopback 0
[PE2-LoopBack0] ip address 3.3.3.9 32
[PE2-LoopBack0] quit
[PE2] interface gigabitethernet 4/0
[PE2-GigabitEthernet4/0] ip address 172.2.1.2 24
[PE2-GigabitEthernet4/0] quit
[PE2] ospf
[PE2-ospf-1] area 0
[PE2-ospf-1-area-0.0.0.0] network 172.2.1.0 0.0.0.255
[PE2-ospf-1-area-0.0.0.0] network 3.3.3.9 0.0.0.0
查看运营商IGP网络状态,P路由器与PE1,PE2已经建立ospf邻居关系,且学到各自的环回口路由。
配置运营商网内部LDP(P,PE1,PE2)
配置PE 1。
[PE1] mpls lsr-id 1.1.1.9
[PE1] mpls ldp
[PE1-ldp] quit
[PE1] interface gigabitethernet 4/0
[PE1-GigabitEthernet4/0] mpls enable
[PE1-GigabitEthernet4/0] mpls ldp enable
配置P。
[P] mpls lsr-id 2.2.2.9
[P] mpls ldp
[P-ldp] quit
[P] interface gigabitethernet 4/0
[P-GigabitEthernet4/0] mpls enable
[P-GigabitEthernet4/0] mpls ldp enable
[P-GigabitEthernet4/0] quit
[P] interface gigabitethernet 5/0
[P-GigabitEthernet5/0] mpls enable
[P-GigabitEthernet5/0] mpls ldp enable
配置PE 2。
[PE2] mpls lsr-id 3.3.3.9
[PE2] mpls ldp
[PE2-ldp] quit
[PE2] interface gigabitethernet 4/0
[PE2-GigabitEthernet4/0] mpls enable
[PE2-GigabitEthernet4/0] mpls ldp enable
查看LDP 邻居状态
配置VPN实例,将CE路由器接入PE路由器
配置PE 1。
[PE1] ip vpn-instance vpn1
[PE1-vpn-instance-vpn1] route-distinguisher 100:1
[PE1-vpn-instance-vpn1] vpn-target 111:1
[PE1-vpn-instance-vpn1] quit
[PE1] ip vpn-instance vpn2
[PE1-vpn-instance-vpn2] route-distinguisher 100:2
[PE1-vpn-instance-vpn2] vpn-target 222:2
[PE1-vpn-instance-vpn2] quit
[PE1] interface gigabitethernet 1/0
[PE1-GigabitEthernet1/0] ip binding vpn-instance vpn1
[PE1-GigabitEthernet1/0] ip address 10.1.1.2 24
[PE1-GigabitEthernet1/0] quit
[PE1] interface gigabitethernet 2/0
[PE1-GigabitEthernet2/0] ip binding vpn-instance vpn2
[PE1-GigabitEthernet2/0] ip address 10.2.1.2 24
[PE1-GigabitEthernet2/0] quit
配置PE 2。
[PE2] ip vpn-instance vpn1
[PE2-vpn-instance-vpn1] route-distinguisher 200:1
[PE2-vpn-instance-vpn1] vpn-target 111:1
[PE2-vpn-instance-vpn1] quit
[PE2] ip vpn-instance vpn2
[PE2-vpn-instance-vpn2] route-distinguisher 200:2
[PE2-vpn-instance-vpn2] vpn-target 222:2
[PE2-vpn-instance-vpn2] quit
[PE2] interface gigabitethernet 1/0
[PE2-GigabitEthernet1/0] ip binding vpn-instance vpn1
[PE2-GigabitEthernet1/0] ip address 10.3.1.2 24
[PE2-GigabitEthernet1/0] quit
[PE2] interface gigabitethernet 2/0
[PE2-GigabitEthernet2/0] ip binding vpn-instance vpn2
[PE2-GigabitEthernet2/0] ip address 10.4.1.2 24
[PE2-GigabitEthernet2/0] quit
配置CE
<CE1> system-view
[CE1] interface gigabitethernet 1/0
[CE1-GigabitEthernet1/0] ip address 10.1.1.1 24
[CE1-GigabitEthernet1/0] quit
[CE1] interface gigabitethernet 2/0
[CE1-GigabitEthernet2/0] ip address 192.168.10.1 24
[CE1-GigabitEthernet2/0] quit
测试PE1与CE1的联通性
配置PE与CE之间建立EBGP对等体,引入VPN路由。
配置CE 1。
<CE1> system-view
[CE1] bgp 65410
[CE1-bgp-default] peer 10.1.1.2 as-number 100
[CE1-bgp-default] address-family ipv4 unicast
[CE1-bgp-default-ipv4] peer 10.1.1.2 enable
[CE1-bgp-default-ipv4] import-route direct
[CE1-bgp-default-ipv4] quit
[CE1-bgp-default] quit
另外3个CE设备配置与CE 1设备配置类似,配置过程省略。
配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] ip vpn-instance vpn1
[PE1-bgp-default-vpn1] peer 10.1.1.1 as-number 65410
[PE1-bgp-default-vpn1] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.1 enable
[PE1-bgp-default-ipv4-vpn1] quit
[PE1-bgp-default-vpn1] quit
[PE1-bgp-default] ip vpn-instance vpn2
[PE1-bgp-default-vpn2] peer 10.2.1.1 as-number 65420
[PE1-bgp-default-vpn2] address-family ipv4 unicast
[PE1-bgp-default-ipv4-vpn2] peer 10.2.1.1 enable
[PE1-bgp-default-ipv4-vpn2] quit
[PE1-bgp-default-vpn2] quit
[PE1-bgp-default] quit
PE 2的配置与PE 1类似,配置过程省略。
查看PE与CE的bgp邻居状态。
配置PE之间建立MP-IBGP对等体。
配置PE 1。
[PE1] bgp 100
[PE1-bgp-default] peer 3.3.3.9 as-number 100
[PE1-bgp-default] peer 3.3.3.9 connect-interface loopback 0
[PE1-bgp-default] address-family vpnv4
[PE1-bgp-default-vpnv4] peer 3.3.3.9 enable
配置PE 2。
[PE2] bgp 100
[PE2-bgp-default] peer 1.1.1.9 as-number 100
[PE2-bgp-default] peer 1.1.1.9 connect-interface loopback 0
[PE2-bgp-default] address-family vpnv4
[PE2-bgp-default-vpnv4] peer 1.1.1.9 enable
查看PE之间的bgp vpnv4邻居状态。
在PE1上查看到CE3的路由。
分析篇
控制层面分析
通过OSPF协议打通运营商内网路由,使得PE1,PE2通过内网路由学习到各自的环回口ip路由,
PE1与PE2使用各自环回口地址与对方建立MP-bgp邻居关系,
PE与CE建立bgp ipv4 邻居关系,学习到CE侧内部路由,
PE通过mp-bgp vpnv4邻居关系将各自CE路由发送给对端PE。
数据层面分析
以192.168.30.0/24为例,查看此路由的标签分发情况。在PE1上收到PE2宣告的192.168.30.0/24路由,可以看到PE2为该路由分发的bgp 标签 16125。
在PE2上进行查看是此路由标签,PE2从CE3收到该路由后,添加bgp标签 16125,然后发送给PE1。此标签为内层标签。
查询192.168.30.0/24的路由信息,路由下一跳为3.3.3.9,ldp为3.3.3.9分发ldp标签 24127,该标签由P路由器生成发从给PE1,作为192.168.30.0/24的外层标签。PE1根据此标签将数据发送给P路由器。
查询P路由器ldp标签分发情况,P路由器收到24127的外层标签,根据标签转发表,发现出标签为3,3代表为隐式空标签,P路由将该数据出去时,将外层标签弹出,发给PE2, 此时该数据包内只包含内层标签 16125,这个标签是PE2生成发给PE1的标签。
查看PE2标签分发情况,PE2为192.168.30.0/24分发标签16125,下一跳为10.3.1.1,出标签为null,PE2将该数据包发送给CE2时,已经不带任何标签,发送的是正常的ip数据包。
查看CE3路由信息,数据包到达CE3后,发现为直连路由,根据路将数据包发送给终端(3),至此,完成了数据包的转发。
测试连通性
测试终端(1)与终端(3)可以互相访问,无法访问终端(2)终端(4),同理,终端(2)与终端(4)可以互相访问,无法访问终端(1)终端(3)。