介绍:
OPTION-B:单跳MP-EBGP方式,也叫EBGP再分配方式
OPTION B跨域也叫单跳MP-EBGP跨域,ASBR不需要为每个VPN创建VPN实例,ASBR和AS内的IBGP会话学习到PE上的VPNV4路由,再通过EBGP会话将这些路由发布到其他AS的ASBR。
不再像OptionA那样,不需要为每个VPN创建VPN实例,ASBR之间转发时带标签的,报文在ASBR之间交换了私网标签,标签由MP-BGP产生和传递,不需要配置LDP协议。
跨域VPN-OptionB方案中,ASBR接收本域内和域外传过来的所有跨域VPN-IPv4路由,再把VPN-IPv4路由发布出去。
但MPLS VPN的基本实现中,PE上只保存与本地VPN实例的VPN Target相匹配的VPN路由。通过对标签VPN-IPv4路由进行特殊处理,让ASBR不进行VPN Target匹配把收到的VPN路由全部保存下来,而不管本地是否有和它匹配的VPN实例。
这种方案的优点是所有的流量都经过ASBR转发,使流量具有良好的可控性,但ASBR的负担重。
可以同时使用BGP路由策略(如对VPN Target的过滤),使ASBR上只保存部分VPN-IPv4路由。
在Option B方案中,ASBR之间需要启用MPLS,以支持标签交换、传播VPN路由信息、实现流量工程和保证服务质量。MPLS提供了必要的机制,使得跨自治系统的VPN连接能够可靠、高效地进行数据传输。
实验环境:HCL
实验内容:MP-BGP MPLS L3VPN 跨域Option-B(带RR)实验
实验拓扑:
实验目的:通过MPLS L3VPN 跨域Option-B方案来实现PC之间的通信
实验步骤:
在实验开始前,我们先对拓扑进行简单分析,本次实验为MP-BGP L3VPN Option-B,MPLS作为数据平面指导数据转发,BGP作为控制平面负责路由计算。本次实验通过增加RR(路由反射器)设备来进行路由的集中转发。路由反射器通过减少IBGP对等体之间的直接连接、简化路由器配置和优化路由信息传播,从而提高了BGP网络的扩展性和管理效率。
数据的转发方式:CE设备通过BGP将路由传递给RR设备,再由RR设备将路由反射给ASBR设备。再由ASBR设备进行BGP标签重分配后,通过EBGP再传递给对端的ASBR设备,最后在通过RR反射给目标CE设备实现路由的转发。
步骤一:在CE设备,ASBR设备上创建VRF并绑定到相应的接口上
AR1(CE),AR6(CE)
ip vpn-instance h3c_1 //创建名为h3c_1的VRF
route-distinguisher 100:1 //RD配置为100:1
vpn-target 100:1 import-extcommunity //RT入方向标签为100:1
vpn-target 100:1 export-extcommunity //RT出方向标签为100:1
ip vpn-instance h3c_2
route-distinguisher 100:2
vpn-target 100:2 import-extcommunity
vpn-target 100:2 export-extcommunity
AR1:
interface GigabitEthernet0/1
ip binding vpn-instance h3c_1
interface GigabitEthernet0/2
ip binding vpn-instance h3c_2
AR6:
interface GigabitEthernet0/1
ip binding vpn-instance h3c_1
interface GigabitEthernet0/2
ip binding vpn-instance h3c_2
步骤二:为设备添加IP地址、环回地址
AR1:
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.1 255.255.255.252
#
interface GigabitEthernet0/1
ip address 192.168.1.254 255.255.255.0
#
interface GigabitEthernet0/2
ip address 192.168.2.254 255.255.255.0
AR2:
interface LoopBack0
ip address 1.1.1.2 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.2 255.255.255.252
#
interface GigabitEthernet0/1
ip address 10.0.0.5 255.255.255.252
AR3:
interface LoopBack0
ip address 1.1.1.3 255.255.255.255
#
interface GigabitEthernet0/1
ip address 10.1.0.1 255.255.255.252
#
interface GigabitEthernet0/2
ip address 10.0.0.22 255.255.255.252
AR4:
interface LoopBack0
ip address 1.1.1.4 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.1.0.2 255.255.255.252
#
interface GigabitEthernet0/1
ip address 10.0.0.9 255.255.255.252
#
interface GigabitEthernet0/2
ip address 10.0.0.17 255.255.255.252
AR5:
interface LoopBack0
ip address 1.1.1.5 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.10 255.255.255.252
#
interface GigabitEthernet0/1
ip address 10.0.0.13 255.255.255.252
AR6:
interface LoopBack0
ip address 1.1.1.6 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.14 255.255.255.252
#
interface GigabitEthernet0/1
ip address 192.168.3.254 255.255.255.0
#
interface GigabitEthernet0/2
ip address 192.168.4.254 255.255.255.0
AR7:
interface LoopBack0
ip address 1.1.1.7 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.18 255.255.255.252
AR8:
interface LoopBack0
ip address 1.1.1.8 255.255.255.255
#
interface GigabitEthernet0/0
ip address 10.0.0.21 255.255.255.252
步骤三:配置区域内OSPF
AR1:
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 1.1.1.1 0.0.0.0
network 10.0.0.0 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR2:
ospf 1 router-id 1.1.1.2
area 0.0.0.0
network 1.1.1.2 0.0.0.0
network 10.0.0.0 0.0.0.3
network 10.0.0.4 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
#
interface GigabitEthernet0/1
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR3:
ospf 1 router-id 1.1.1.3
area 0.0.0.0
network 1.1.1.3 0.0.0.0
network 10.0.0.4 0.0.0.3
network 10.0.0.20 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
#
interface GigabitEthernet0/2
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR4:
ospf 1 router-id 1.1.1.4
area 0.0.0.0
network 1.1.1.4 0.0.0.0
network 10.0.0.8 0.0.0.3
network 10.0.0.16 0.0.0.3
#
interface GigabitEthernet0/1
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
#
interface GigabitEthernet0/2
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR5:
ospf 1 router-id 1.1.1.5
area 0.0.0.0
network 1.1.1.5 0.0.0.0
network 10.0.0.8 0.0.0.3
network 10.0.0.12 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
#
interface GigabitEthernet0/1
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR6:
ospf 1 router-id 1.1.1.6
area 0.0.0.0
network 1.1.1.6 0.0.0.0
network 10.0.0.12 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR7:
ospf 1 router-id 1.1.1.7
area 0.0.0.0
network 1.1.1.7 0.0.0.0
network 10.0.0.16 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
AR8:
ospf 1 router-id 1.1.1.8
area 0.0.0.0
network 1.1.1.8 0.0.0.0
network 10.0.0.20 0.0.0.3
#
interface GigabitEthernet0/0
ospf network-type p2p //修改OSPF的网络类型为P2P加快收敛
查看OSPF邻居建立状态
查看OSPF路由表
查看OSPF的网络类型
可以看到图中,是通过p2p的方式来建立的邻居,除了修改ospf的网路类型,我么还能还可以通过bfd来优化我们的网络。
在OSPF中启用BFD可以带来以下几个主要效果:
快速故障检测:BFD 提供了比传统的 OSPF Hello 协议更快速的故障检测能力。传统的 OSPF 依赖于 Hello 和 Dead 间隔来检测邻居故障,这可能导致故障检测的时间较长。BFD 则可以在毫秒级别内检测到故障,从而缩短网络的故障恢复时间。
提高网络可靠性:通过快速检测链路故障并将其通知给 OSPF,BFD 可以更迅速地促使 OSPF 重新计算路由,从而减少由于链路故障导致的数据包丢失或延迟。
优化路由收敛时间:当 BFD 发现链路失效时,会迅速告知 OSPF,促使 OSPF 尽快进行路由收敛。这种快速收敛有助于提升网络的整体性能和稳定性。
减少协议交互:启用 BFD 后,可以减少 OSPF 协议的交互,因为 BFD 会在链路状态变化时立即通知 OSPF,而不需要 OSPF 协议自身频繁地检查邻居状态。
配置简单:
BFD 的配置相对简单,只需要在相关的接口和 OSPF 邻居上进行配置即可,不需要复杂的操作。
步骤四:打开部分设备全局以及互联接口的MPLS、LDP功能
(注:ASBR设备之间需要开启MPLS功能,但不需要开启LDP功能。其作用是用于ASBR对vpn路由进行标签重分配)
AR1:
mpls lsr-id 1.1.1.1 //配置lsr-id为1.1.1.1作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
interface GigabitEthernet0/0
mpls enable //打开接口的mpls功能
mpls ldp enable //打开接口的ldp功能
AR2:
mpls lsr-id 1.1.1.2 //配置lsr-id为1.1.1.2作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
#
interface GigabitEthernet0/0
mpls enable
mpls ldp enable
#
interface GigabitEthernet0/1
mpls enable
mpls ldp enable
AR3:
mpls lsr-id 1.1.1.3 //配置lsr-id为1.1.1.3作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
#
interface GigabitEthernet0/0
mpls enable //打开接口的mpls功能
mpls ldp enable //打开接口的ldp功能
#
interface GigabitEthernet0/1
mpls enable //打开接口的mpls功能
AR4:
mpls lsr-id 1.1.1.4 //配置lsr-id为1.1.1.4作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
#
interface GigabitEthernet0/0
mpls enable //打开接口的mpls功能
#
interface GigabitEthernet0/1
mpls enable //打开接口的mpls功能
mpls ldp enable //打开接口的ldp功能
AR5:
mpls lsr-id 1.1.1.5 //配置lsr-id为1.1.1.5作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
#
interface GigabitEthernet0/0
mpls enable
mpls ldp enable
#
interface GigabitEthernet0/1
mpls enable
mpls ldp enable
AR6:
mpls lsr-id 1.1.1.6 //配置lsr-id为1.1.1.6作为LSR(标签交换路由器)的标识符
mpls ldp //打开路由器的ldp功能
#
interface GigabitEthernet0/1
mpls enable //打开接口的mpls功能
mpls ldp enable //打开接口的ldp功能
注:AR7与AR8作为RR只需要关注VPN路由的接收与传递,并不需要开启mpls功能,但是需要在Vpnv4视图取消对接收的VPN路由或者标签块进行VPN-Target过滤。稍后在BGP的配置中会介绍到这条命令。
查看MPLS转发表
从lsp转发表中可以看到,数据都没有问题
步骤五:配置域内IBGP,将CE的路由传递给ASBR
注:本实验加入2台路由器作为两区域的RR(路由反射器),所以CE设备和ASBR设备只需要和RR(路由反射器)建立IBGP邻居即可。
AR1:
bgp 65001
router-id 1.1.1.1 //配置routerid为1.1.1.1
peer 1.1.1.8 as-number 65001 //配置邻居所在的区域为65001
peer 1.1.1.8 connect-interface LoopBack0 //配置与邻居建立的路由为环回地址
#
address-family vpnv4 //进入vpnv4地址族视图
peer 1.1.1.8 enable //开启邻居
#
ip vpn-instance h3c_1 //进入vpn视图
#
address-family ipv4 unicast //进入ipv4地址族视图
import-route direct //引入VRF路由
#
ip vpn-instance h3c_2
#
address-family ipv4 unicast
import-route direct //引入VRF路由
AR3:
bgp 65001
router-id 1.1.1.3 //配置routerid为1.1.1.3
peer 1.1.1.8 as-number 65001 //配置邻居所在的区域为65001
peer 1.1.1.8 connect-interface LoopBack0 //配置与邻居建立的路由为环回地址
#
address-family vpnv4 //进入vpnv4地址族视图
peer 1.1.1.8 enable //开启邻居
AR8:
bgp 65001
peer 1.1.1.1 as-number 65001
peer 1.1.1.1 connect-interface LoopBack0
peer 1.1.1.3 as-number 65001
peer 1.1.1.3 connect-interface LoopBack0
#
address-family vpnv4
undo policy vpn-target //取消VPN 目标策略配置
peer 1.1.1.1 enable
peer 1.1.1.1 reflect-client //配置邻居为路由反射器的客户端
peer 1.1.1.3 enable
peer 1.1.1.3 reflect-client
AR4:
bgp 65002
router-id 1.1.1.4 //配置routerid为1.1.1.4
peer 1.1.1.7 as-number 65002 //配置邻居所在的区域为65001
peer 1.1.1.7 connect-interface LoopBack0 //配置与邻居建立的路由为环回地址
#
address-family vpnv4 //进入vpnv4地址族视图
peer 1.1.1.7 enable //开启邻居
AR6:
bgp 65002
router-id 1.1.1.6 //配置routerid为1.1.1.6
peer 1.1.1.7 as-number 65002 //配置邻居所在的区域为65002
peer 1.1.1.7 connect-interface LoopBack0 //配置与邻居建立的路由为环回地址
#
address-family vpnv4 //进入vpnv4地址族视图
peer 1.1.1.7 enable //开启邻居
#
ip vpn-instance h3c_1 //进入vpn视图
#
address-family ipv4 unicast //进入ipv4地址族视图
import-route direct //引入VRF路由
#
ip vpn-instance h3c_2
#
address-family ipv4 unicast
import-route direct //引入VRF路由
AR7:
bgp 65002
peer 1.1.1.4 as-number 65002
peer 1.1.1.4 connect-interface LoopBack0
peer 1.1.1.6 as-number 65002
peer 1.1.1.6 connect-interface LoopBack0
#
address-family vpnv4
undo policy vpn-target
peer 1.1.1.4 enable
peer 1.1.1.4 reflect-client
peer 1.1.1.6 enable
peer 1.1.1.6 reflect-client
接着我们在RR上查看BGP邻居建立状态
可以看到邻居已经建立成功了, 并且从各自的CE设备上学习到了2条路由
查看BGP的VPN路由表
从图中可以看出,学习到的IBGP路由是有效并且可达的
都到这这一步我们先不急着打通ASBR,我们先在ASBR上查看一下CE为VPN路由分配的标签是多少
可以看到为两条VPN路由分配的内层标签(私网标签)分别是24127和24128、24255和24256,等下ASBR打通后为我们再重新在AR3、AR4上查看标签从对方传递过来的标签。
步骤六:配置域间EBGP,将路由传递到对端
AR3:
bgp 65001
peer 10.1.0.2 as-number 65002
#
address-family vpnv4
peer 10.1.0.2 enable
AR4:
bgp 65002
peer 10.1.0.1 as-number 65001
#
address-family vpnv4
peer 10.1.0.1 enable
查看邻居建立状态
查看从对等体学到的路由
从图中可以看到,分别从对等体学习到了两条路由,路由可达并且有效的
实验做到这个地方已经差不多了,我们最后再来看一下ASBR分别为路由分配的标签是否有变化
查看从EBGP邻居分配的路由所携带的标签
可以看到标签发生了变化,那么对于双方CE来说,本端ASBR从对端ASBR学习到的路由任然会通过标签重分配的方式将路由传递给对方,这里就不再做演示,各位可自行查看。
步骤七:验证连通性
PC7-PC9
PC8-PC10
实验下载: 【免费】MP-BGPL3VPNOption-B跨域实验资源-CSDN文库
网络可达,本次实验就到这里了,如果有发现小编哪块有错误的话欢迎指正,谢谢