赞
踩
MPLS(Multi-Protocol Label Switching)是一种基于标签的转发技术,常用于构建虚拟专用网络(VPN)以提供安全、可靠的数据传输。MPLS Hub-Spoke VPN(中心枢纽-辐射式虚拟专用网络)是一种特定的MPLS VPN部署模型,适用于组织拥有中心枢纽和分支机构之间通信需求的场景。
MPLS Hub-Spoke VPN基于层级结构,其中中心枢纽是网络的核心节点,而辐射分支则是与中心枢纽建立连接的外围节点。中心枢纽充当集线器,负责转发和处理所有分支机构之间的通信。这种架构使得分支机构之间的通信流量不必经过直接的对等连接,而是通过中心枢纽进行转发,从而提供更好的网络性能和管理灵活性。
下面是MPLS Hub-Spoke VPN的一般工作原理:
1. 中心枢纽配置:中心枢纽是VPN的核心,通常由一个或多个MPLS路由器组成。在中心枢纽上,会创建一个VPN实例,并为每个分支机构分配一个唯一的标识符(通常称为VPN标识符或VRF)。
2. 分支机构连接:每个分支机构通过WAN连接(如专线、传输电路或互联网VPN)与中心枢纽建立连接。在连接的两端,分别配置MPLS路由器和分支机构的本地网络。
3. 路由配置:在中心枢纽和分支机构的MPLS路由器上,配置VPN路由来定义通信流量的转发路径。中心枢纽的路由器需要知道如何将数据包从一个分支机构路由到另一个分支机构,而不仅仅是将其转发回源分支机构。
4. 数据传输:当分支机构之间进行通信时,数据包首先到达发送分支机构的本地MPLS路由器。该路由器为数据包附加一个标签,并将其转发到中心枢纽。中心枢纽根据标签的信息,将数据包转发到目标分支机构的MPLS路由器,后者会根据本地路由表将数据包交付给正确的目标分支机构。
5. 安全性和隔离性:MPLS Hub-Spoke VPN提供了一定的安全性和隔离性。由于每个VPN实例使用独立的VRF,分支机构之间的数据包在转发过程中是相互隔离的。此外,可以在中心枢纽上实施访问
拓扑:
介绍:如图,本实验通过模拟HUB-Spoke PVN来实现分支与总部互访,首先为所有设备添加IP地址并启用OSPF协议,接着分别在三台PE设备上创建VRF,RD、RT取值已经在图中标明,实验过程如下:
1、配置全网IP地址并在PE所在区域启用IGP协议,本次实验通过OSPF来作为IGP协议
-
- [AR1]interface GigabitEthernet0/0/1
- [AR1-GigabitEthernet0/0/1] ip address 10.1.12.1 255.255.255.252
- [AR1-GigabitEthernet0/0/1]quit
- [AR1]interface GigabitEthernet0/0/2
- [AR1-GigabitEthernet0/0/2] ip address 10.1.13.1 255.255.255.252
- [AR1-GigabitEthernet0/0/2]quit
- [AR1]interface LoopBack0
- [AR1-LoopBack0] ip address 1.1.1.1 255.255.255.255
- [AR1]ospf 1 router-id 1.1.1.1 //开启ospf并配置router-id
- [AR1-ospf-1] area 0.0.0.0 //进入区域0视图
- [AR1-ospf-1-area-0.0.0.0] network 1.1.1.1 0.0.0.0 /发布环回地址
- [AR1-ospf-1-area-0.0.0.0] network 10.1.12.0 0.0.0.3 //发布接口所在网段
- [AR1-ospf-1-area-0.0.0.0] network 10.1.13.0 0.0.0.3 //发布接口所在网段
-
- [AR1]interface GigabitEthernet0/0/0
- [AR1-GigabitEthernet0/0/0] ip address 10.1.100.1 255.255.255.252
- [AR1-GigabitEthernet0/0/0]quit
- [AR1]interface GigabitEthernet4/0/0
- [AR1-GigabitEthernet4/0/0] ip address 10.1.200.1 255.255.255.252
- [AR1-GigabitEthernet4/0/0]quit
- [AR2]interface GigabitEthernet0/0/0 //进入接口0/0/0
- [AR2-GigabitEthernet0/0/0] ip address 10.1.12.2 255.255.255.252 //添加ip地址
- [AR2]interface LoopBack0
- [AR2-LoopBack0] ip address 1.1.1.2 255.255.255.255
-
- [AR2]ospf 1 router-id 1.1.1.2 //开启ospf并配置router-id
- [AR2-ospf-1] area 0.0.0.0 //进入区域0视图
- [AR2-ospf-1-area-0.0.0.0] network 1.1.1.2 0.0.0.0 //发布环回口地址
- [AR2-ospf-1-area-0.0.0.0] network 10.1.12.0 0.0.0.3 //发布接口所在网段
- [AR3]interface GigabitEthernet0/0/0
- [AR3-GigabitEthernet0/0/0] ip address 10.1.13.2 255.255.255.252
- [AR3-GigabitEthernet0/0/0] quit
- [AR3]interface LoopBack0
- [AR3-LoopBack0] ip address 1.1.1.3 255.255.255.255
- [AR3-LoopBack0] quit
- [AR3]ospf 1 router-id 1.1.1.3
- [AR3-ospf-1] area 0.0.0.0
- [AR3-ospf-1-area-0.0.0.0] network 1.1.1.3 0.0.0.0
- [AR3-ospf-1-area-0.0.0.0] network 10.1.13.0 0.0.0.3
查看邻居关系建立是否正常
2、开启PE设备全局及接口mpls、mpls ldp
- [AR1]mpls lsr-id 1.1.1.1 //配置全局mpls lsr-id为1.1.1.1
- [AR1-mpls]mpls //开启全局mpls
- [AR1-mpls-ldp]mpls ldp //开启全局ldp
- [AR1]interface GigabitEthernet0/0/1 //进入G0/0/1口
- [AR1-GigabitEthernet0/0/1] mpls //开启接口mpls
- [AR1-GigabitEthernet0/0/1] mpls ldp //开启接口mpls ldp
- [AR1]interface GigabitEthernet0/0/2 //进入G0/0/2口
- [AR1-GigabitEthernet0/0/1] mpls //开启接口mpls
- [AR1-GigabitEthernet0/0/1] mpls ldp //开启接口mpls ldp
- [AR2]mpls lsr-id 1.1.1.2 //配置全局mpls lsr-id为1.1.1.2
- [AR2-mpls]mpls //开启全局mpls
- [AR2-mpls-ldp]mpls ldp //开启全局ldp
- [AR2]interface GigabitEthernet0/0/0 //进入G0/0/0口
- [AR2-GigabitEthernet0/0/0] mpls //开启接口mpls
- [AR3]mpls lsr-id 1.1.1.3 //配置全局mpls lsr-id为1.1.1.3
- [AR3-mpls]mpls //开启全局mpls
- [AR3-mpls-ldp]mpls ldp //开启全局ldp
- [AR3]interface GigabitEthernet0/0/0 //进入G0/0/0口
- [AR3-GigabitEthernet0/0/0] mpls //开启接口mpls
查看标签转发表
可以看到去往AR1、AR2、AR3的 转发表都存在表中
4、配置PE区域的BGP协议,地址族类型配置为VPNv4
- [AR1]bgp 64512
- [AR1-bgp] peer 1.1.1.2 as-number 64512
- [AR1-bgp] peer 1.1.1.2 connect-interface LoopBack0
- [AR1-bgp] peer 1.1.1.3 as-number 64512
- [AR1-bgp] peer 1.1.1.3 connect-interface LoopBack0
- [AR1-bgp-af-vpnv4] ipv4-family vpnv4
- [AR1-bgp-af-vpnv4] peer 1.1.1.2 enable
- [AR1-bgp-af-vpnv4] peer 1.1.1.3 enable
- [AR2]bgp 64512
- [AR2-bgp] peer 1.1.1.1 as-number 64512
- [AR2-bgp] peer 1.1.1.1 connect-interface LoopBack0
- [AR2-bgp] ipv4-family vpnv4
- [AR2-bgp-af-vpnv4] policy vpn-target
- [AR2-bgp-af-vpnv4] peer 1.1.1.1 enable
- [AR3]bgp 64512
- [AR3-bgp] peer 1.1.1.1 as-number 64512
- [AR3-bgp] peer 1.1.1.1 connect-interface LoopBack0
- [AR3-bgp] ipv4-family vpnv4
- [AR3-bgp-af-vpnv4] policy vpn-target
- [AR3-bgp-af-vpnv4] peer 1.1.1.1 enable
建立完成后查看邻居状态是否正常
从图中可以看到邻居状态建立成功
5、接下来我们需要在AR1、AR2、AR3上创建VRF,来实现分支与总部互通,
首先我们先创建VRF
- [AR1]ip vpn-instance VPN_OU //创建用于入方向的VPN实例
- [AR1-vpn-instance-VPN_IN] ipv4-family //进入IPv4地址族
- [AR1-vpn-instance-VPN_IN-af-ipv4] route-distinguisher 100:200 //配置RD值为100:200
- [AR1-vpn-instance-VPN_IN-af-ipv4] vpn-target 200:1 import-extcommunity //配置入方向RT值为200:1
- #
- [AR1]ip vpn-instance VPN_IN //创建用于出方向的VPN实例
- [AR1-vpn-instance-VPN_OU] ipv4-family //进入IPv4地址族
- [AR1-vpn-instance-VPN_OU-af-ipv4] route-distinguisher 200:100 //配置RD值为200:100
- [AR1-vpn-instance-VPN_OU-af-ipv4] vpn-target 100:1 export-extcommunity //配置出方向RT值为100:1
在AR1上创建两个VRF的原因是因为分支如果想要互访的话需要到达H总部绕行,所以需要使用到两个VPN实例来绑定两个接口,实现一进一出,如果只使用一个VPN实例和一个接口,那么分支互访的时候就不会通过总部绕行,而是直接通过AR1进行转发了。
- [AR2]ip vpn-instance huawei //创建VPN实例huawei
- [AR2-vpn-instance-huawei]ipv4-family //进入ipv4地址族
- [AR2-vpn-instance-huawei-af-ipv4] route-distinguisher 100:1 //配置RD值为100:1
- [AR2-vpn-instance-huawei-af-ipv4] vpn-target 200:1 export-extcommunity //配置出方向RT值为200:1
- [AR2-vpn-instance-huawei-af-ipv4] vpn-target 100:1 import-extcommunity //配置入方向RT值为100:1
- [AR3]ip vpn-instance huawei //创建VPN实例huawei
- [AR3-vpn-instance-huawei]ipv4-family //进入ipv4地址族
- [AR3-vpn-instance-huawei-af-ipv4] route-distinguisher 100:1 //配置RD值为100:1
- [AR3-vpn-instance-huawei-af-ipv4] vpn-target 200:1 export-extcommunity //配置出方向RT值为200:1
- [AR3-vpn-instance-huawei-af-ipv4] vpn-target 100:1 import-extcommunity //配置入方向RT值为100:1
6、接着将VRF绑定至接口上并与CE建立BGP邻居关系
- [AR1]interface GigabitEthernet0/0/0 //进入接口0/0/0
- [AR1-GigabitEthernet0/0/0] ip binding vpn-instance VPN_OU //将出方向的VPN实例绑定至接口
- [AR1-GigabitEthernet0/0/0] ip address 10.1.100.1 255.255.255.252 //为接口添加IP地址
-
- [AR1]interface GigabitEthernet4/0/0 //进入接口4/0/0
- [AR1-GigabitEthernet4/0/0] ip binding vpn-instance VPN_IN //将入方向的VPN实例绑定至接口
- [AR1-GigabitEthernet4/0/0] ip address 10.1.200.1 255.255.255.252 //为接口添加IP地址
- [AR2]interface GigabitEthernet0/0/1
- [AR2-GigabitEthernet0/0/1] ip binding vpn-instance huawei
- [AR2-GigabitEthernet0/0/1] ip address 192.168.1.254 255.255.255.0
- [AR3]interface GigabitEthernet0/0/1
- [AR3-GigabitEthernet0/0/1] ip binding vpn-instance huawei
- [AR3-GigabitEthernet0/0/1] ip address 192.168.2.254 255.255.255.0
接着创建PE与CE的BGP邻居关系
- [AR1]bgp 64512
- [AR1-bgp]ipv4-family vpn-instance VPN_OU
- [AR1-bgp-VPN_IN]peer 10.1.100.2 as-number 100
- [AR1-bgp-VPN_IN]quit
- [AR1-bgp] ipv4-family vpn-instance VPN_IN
- [AR1-bgp-VPN_OU]peer 10.1.200.2 as-number 100
- [AR2]bgp 64512
- [AR2-bgp]ipv4-family vpn-instance huawei
- [AR2-bgp-huawei] peer 192.168.1.1 as-number 100
- [AR3]bgp 64512
- [AR3-bgp] ipv4-family vpn-instance huawei
- [AR2-bgp-huawei] peer 192.168.2.1 as-number 100
PE设备需要在BGP的VPN实例下启用邻居关系
- [AR4]interface GigabitEthernet0/0/0
- [AR4-GigabitEthernet0/0/0] ip address 10.1.100.2 255.255.255.252
- [AR4-GigabitEthernet0/0/0] quit
- [AR4-GigabitEthernet4/0/0]interface GigabitEthernet4/0/0
- [AR4-GigabitEthernet4/0/0] ip address 10.1.200.2 255.255.255.252
- [AR4-GigabitEthernet4/0/0] quit
- [AR4]bgp 100
- [AR4-bgp] peer 10.1.100.1 as-number 64512
- [AR4-bgp] peer 10.1.200.1 as-number 64512
- [AR4-bgp] ipv4-family unicast
- [AR4-bgp-af-ipv4] peer 10.1.100.1 enable
- [AR4-bgp-af-ipv4] peer 10.1.200.1 enable
- [AR5]interface GigabitEthernet0/0/0
- [AR5-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
- [AR5]bgp 100
- [AR5-bgp] peer 192.168.1.254 as-number 64512
- [AR5-bgp] ipv4-family unicast
- [AR5-bgp-af-ipv4] peer 192.168.1.254 enable
- [AR6]interface GigabitEthernet0/0/0
- [AR6-GigabitEthernet0/0/0] ip address 192.168.2.1 255.255.255.0
- [AR6]bgp 100
- [AR6-bgp] peer 192.168.2.254 as-number 64512
- [AR6] ipv4-family unicast
- [AR6-bgp-af-ipv4] peer 192.168.2.254 enable
配置完成后查看邻居关系
可以看到邻居关系都正常,接着我们创建环回口并且将路由发布至BGP中,查看路由学习情况
- [AR4]interface LoopBack0
- [AR4-LoopBack0]ip address 1.1.1.4 32
- [AR4]quit
- [AR4]bgp 100
- [AR4-bgp] ipv4-family unicast
- [AR4-bgp-af-ipv4] network 1.1.1.4 255.255.255.255
-
- [AR5]interface LoopBack0
- [AR5-LoopBack0]ip address 1.1.1.5 32
- [AR5]quit
- [AR5]bgp 100
- [AR5-bgp] ipv4-family unicast
- [AR5-bgp-af-ipv4] network 1.1.1.5 255.255.255.255
-
- [AR6]interface LoopBack0
- [AR6-LoopBack0]ip address 1.1.1.6 32
- [AR6]quit
- [AR6]bgp 100
- [AR6-bgp] ipv4-family unicast
- [AR6-bgp-af-ipv4] network 1.1.1.6 255.255.255.255
接着我们分别在AR4、AR5、AR6上查看路由信息,查看是否学习相关的路由信息
在图中我们可以看到,这三台CE设备除了自己的路由信息,并没有学到对方的路由,这是因为bgp防环水平分割导致无法收到对方的路由,接下来我们通过命令来使BGP能够接收对方传递过来的路由,一共有两种方法,我们分别在AR5和AR6上配置
①在CE上配置针对PE允许来自同一AS的路由进行传递
- [AR5]bgp 100
- [AR5-bgp]ipv4-family unicast
- [AR5-bgp-af-ipv4]peer 192.168.1.254 allow-as-loop 2 //允许通过两条相同AS号的路由
②在PE上配置针对CE收到同AS发来的路由进行AS替换
- [AR3-bgp]bgp 64512
- [AR3-bgp]ipv4-family vpn-instance huawei
- [AR3-bgp-huawei]peer 192.168.2.1 substitute-as //如果收到从同一AS发来的路由就进行AS替换
接着我们对AR4进行配置,目前我们需要实现的是分支不可互访,所以我们只需要使用方法一在AR4的出方向进行配置(也可以使用第二种方法在AR1的VPN实例的入方向进行配置)
- [AR4]bgp 100
- [AR4-bgp]ipv4-family unicast
- [AR4-bgp-af-ipv4]peer 10.1.100.1 allow-as-loop 2 //允许通过两条相同AS号的路由
配置完成后我们再次查看路由学习情况
可以看到总部已经学到了两个分支的路由,分支也学习到了总部的路由,但是分支之间是没有路由的
我们先测试连通性
可以看到路由的可达性都正常
接着我们在AR1上再增加一条命令来使分支之间可以互访
- [AR1]bgp 64512
- [AR1-bgp]ipv4-family vpn-instance VPN_OU
- [AR1-bgp-VPN_IN]peer 10.1.200.2 allow-as-loop 2
接着再次查看AR5、AR6的BGP路由表
可以看到两个分支已经互相学到了彼此的路由,接着验证连通性
测试成功,接着查看分支互访是否经过总部
流量成功从总部绕行
关于AS替换和允许相同AS相信细心的小伙伴在前面的路由表中已经看出来了
AR6的区域是AS100,通过AS替换后,路由表中的AS-Path属性已经发生了变化
而针对AR5,我们则使用的允许相同AS号发送过来的路由通过两次,这就是两条命令的不同之处,本次实验就到这里,感兴趣的朋友可以收藏起来
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。