OSPF虚链路

原理概述

通常情况下,一个OSPF网络的每个非骨干区域都必须与骨干区域通过ABR路由器直接连接,非骨干区域之间的通信都需要通过骨干区域进行中转。但在现实中,可能会因为各种条件限制,导致非骨干区域和骨干区域无法直接连接,在这种情况下,可以使用OSPF虚链路(Virtual Link)来实现非骨干区域与骨干区域在逻辑上直接相连。

OSPF协议必须要求骨干区域必须是唯一且连续的,然而,由于发生故障等原因,骨干区域有可能出现被分割的情况。此时,同样可以使用虚链路来实现物理上被分割的骨干区域能够逻辑相连。

虚链路在网络中会穿越其它区域,因此可能会带来安全隐患,所以通常都会对虚链路进行认证功能的配置。虚链路认证其实是OSPF接口认证的一种,支持MD5、HMAC-MD5、明文及Keychain等特性。

实验目的

理解OSPF虚链路的应用场景

掌握OSPF虚链路的配置方法

掌握OSPF虚链路认证功能的配置方法

实验内容

实验拓扑如图所示。本实验模拟了一个企业网络场景,全网运行OSPF,路由器R1、R2为公司总部路由器,R3为新建公司的接入路由器,R4为分公司下面的分支机构的接入路由器。由于网络升级尚未完成,所以目前的区域划分是:R1与R2之间的链路位于区域0,R3与R1,R3与R2之间的链路位于区域1,R3与R4之间的链路位于区域2.网络需求是:使用虚链路技术,使得分支机构所属的区域2能够访问总部网络,且优先使用路径R4-R3-R1,并以R4-R3-R2路径作为备份。同时,总部路由器R1和R2之间的通信需要采用R1-R3-R2路径作为冗余备份。另外,为了提高安全性,对于所使用的虚链路应进行认证功能的配置。

实验拓扑

1.基本配置

根据拓扑图进行相应的基本配置,并使用ping命令检测R1与R3之间的连通性。

其余直连网段的连通性测试在此省略。

2.搭建OSPF网络

在每台路由器上配置OSPF协议,其中R1与R2之间的链路位于区域0,R3与R1,R3与R2之间的链路位于区域1,R3与R4之间的链路位于区域2。

r1ospf 10 router-id 10.0.1.1
r1-ospf-10area 0
r1-ospf-10-area-0.0.0.0net 10.0.12.0 0.0.0.255
r1-ospf-10-area-0.0.0.0net 10.0.1.1 0.0.0.0
r1-ospf-10-area-0.0.0.0area 1
r1-ospf-10-area-0.0.0.1net 10.0.13.0 0.0.0.255

r2ospf 10 router-id 10.0.2.2
r2-ospf-10area 0
r2-ospf-10-area-0.0.0.0net 10.0.12.0 0.0.0.255

r2-ospf-10-area-0.0.0.0net 10.0.2.2 0.0.0.0
r2-ospf-10-area-0.0.0.0area 1
r2-ospf-10-area-0.0.0.1net 10.0.23.0 0.0.0.255

r3ospf 10 router-id 10.0.3.3
r3-ospf-10area 1
r3-ospf-10-area-0.0.0.1net 10.0.13.0 0.0.0.255
r3-ospf-10-area-0.0.0.1net 10.0.23.0 0.0.0.255

r3-ospf-10-area-0.0.0.1net 10.0.3.3 0.0.0.0
r3-ospf-10-area-0.0.0.1area 2
r3-ospf-10-area-0.0.0.2net 10.0.34.0 0.0.0.255

r4ospf 10 router-id 10.0.4.4
r4-ospf-10area 2
r4-ospf-10-area-0.0.0.2net 10.0.34.0 0.0.0.255
r4-ospf-10-area-0.0.0.2net 10.0.4.4 0.0.0.0

配置完成后,查看R3的OSPF邻居关系。

可以看到,R3的邻居关系都处于Full状态,表明各路由器之间已经成功建立了邻居关系。

查看R4的LSDB。

可以看到,R4的LSDB中没有区域0中关于10.0.1.1/32和10.0.2.2/32的LSA,也没有任何其他区域的LSA,仅仅只有本区域的Type-1 LSA和Type-2 LSA,这说明区域2中并没有ABR存在,即区域2并未与区域0相连,也无法与其他区域进行正常通信。

3.使用虚链路使区域2与区域0逻辑相连

接下来将使用虚链路使区域2与区域0在逻辑上相互连接起来,此时的区域1将作为区域2与区域0之间的传输区域。虚链路配置操作将在连接区域2与区域1的R3上,以及连接区域1与区域0的ABR路由器R1上进行。

在R3的区域1视图下,使用vlink-peer命令建立与R1的虚链路。

r3ospf 10
r3-ospf-10area 1
r3-ospf-10-area-0.0.0.1vlink-peer 10.0.1.1

同样,在R1的区域1视图下,使用vlink-peer命令建立与R3的虚链路。

r1ospf 10
r1-ospf-10area 1
r1-ospf-10-area-0.0.0.1vlink-peer 10.0.3.3

配置完成后,在R1上使用命令display ospf vlink查看虚链路信息。

可以看到,R1与R3已经成功建立了虚链路,虚链路的状态为FULL。

查看R4的LSDB。

可以看到,R4的LSDB中出现了由R3通告的,关于区域0和区域1的Type-3 LSA;说明此时R4已经将R3作为连接区域2至区域0的ABR了。

测试R4与R1和R2的连通性。

可以看到,通信是正常的。

4.修改虚链路的开销值

通过R1与R3之间的虚链路,实现了区域2与区域0的逻辑相连。然而,区域1与区域0之间的ABR除了R1之外,还有R2。同样,也可以在R2与R3之间建立一条虚链路。

r2ospf 10

r2-ospf-10area 1

r2-ospf-10-area-0.0.0.1vlink-peer 10.0.3.3

r3ospf 10

r3-ospf-10area 1

r3-ospf-10-area-0.0.0.1vlink-peer 10.0.2.2

配置完成后,在R3上查看虚链路信息。

可以看到,现在在R3与R1之间、R3与R2之间各存在一条虚链路,开销值均为1,那么当R4访问总部网络区域0时,就会出现负载均衡的情形。新的需求是:R4与区域0通信时优先选用经由R1的路径,并以经由R2的路径作为备份,实现方法是修改虚链路的开销值。

由于虚链路实际使用的路径是在传输区域内经过SPF(Short Path First)算法计算出的最优路径,虚链路的开销值其实就是OSPF协议在传输区域内所选用的物理路径的开销值,所以修改虚链路的开销值其实就是修改物理路径的OSPF开销值。

在R3的GE0/0/2接口上修改OSPF协议开销值。

r3int g0/0/2
r3-GigabitEthernet0/0/2ospf cost 10

在R2的GE0/0/2接口上完成同样的配置。

r2int g0/0/2
r2-GigabitEthernet0/0/2ospf cost 10

配置完成后,在R3上查看虚链路信息。

可以看到,R3与R2之间的虚链路的开销值变成了10,R3与R1之间的虚链路的开销值保持为1。在这样的条件下,R4或R3都将通过经由R1的路径访问区域0,并以经由R2的路径作为备份。

5.使用虚链路作为区域0链路的冗余备份

目前,R1与R2之间只有单条链路连接,如果出现链路故障,就会导致区域0被分割的问题。为了解决这一问题,增强网络的可靠性,可以以区域1为传输区域,在R1与R2之间建立一条虚链路作为冗余备份。

r1ospf 10
r1-ospf-10area 1
r1-ospf-10-area-0.0.0.1vlink-peer 10.0.2.2

r2ospf 10
r2-ospf-10area 1
r2-ospf-10-area-0.0.0.1vlink-peer 10.0.1.1

配置完成后,在R1上查看虚链路信息。

可以看到,R1与R2之间的虚链路的开销为11。在R1上使用tracert命令测试访问10.0.2.2/32的路径。

可以发现,此时R1与R2之间的通信使用的仍是直连链路。关闭R1的GE0/0/0接口,模拟链路出现故障。

r1int g0/0/0
r1-GigabitEthernet0/0/0shutdown

然后,再次用tracert命令进行测试。

可以看到,现在R1与R2采用了虚链路进行通信。

为进行后续实验,请重新打开R1的GE0/0/0接口。

r1int g0/0/0
r1-GigabitEthernet0/0/0undo shutdown

6.配置虚链路的认证功能

由于虚链路使用了其它传输区域的物理链路,所以通常应配置认证功能来增强安全性。以R1与R2之间的虚链路为例,在R1上区域1的视图下,使用命令vlink-peer 10.0.2.2 hmac-md5 1 plain huawei ,其中hmac-md5表示所选用的认证加密方式,1为key ID,plain huawei表示以明文方式显示口令,口令为huawei。

r1ospf 10
r1-ospf-10area 1
r1-ospf-10-area-0.0.0.1vlink-peer 10.0.2.2 hmac-md5 1 plain huawei

配置完成后,在R1上查看虚链路信息。

可以看到,目前R1与R2之间的虚链路状态为Down,说明虚链路建立失败, 原因是R2还未进行相应的认证功能配置。

在R2上配置认证功能。

r2ospf 10
r2-ospf-10area 1
r2-ospf-10-area-0.0.0.1vlink-peer 10.0.1.1 hmac-md5 1 plain huawei

配置完成后,重新在R1上观察链路状态信息。

可以看到,R1与R2之间的虚链路已经得到恢复。

相关推荐
乘云数字DATABUFF1 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220707 天前
如何搭建本地yum源(上)
运维
大树8810 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠10 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质10 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务