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。

r1\]ospf 10 router-id 10.0.1.1 \[r1-ospf-10\]area 0 \[r1-ospf-10-area-0.0.0.0\]net 10.0.12.0 0.0.0.255 \[r1-ospf-10-area-0.0.0.0\]net 10.0.1.1 0.0.0.0 \[r1-ospf-10-area-0.0.0.0\]area 1 \[r1-ospf-10-area-0.0.0.1\]net 10.0.13.0 0.0.0.255 \[r2\]ospf 10 router-id 10.0.2.2 \[r2-ospf-10\]area 0 \[r2-ospf-10-area-0.0.0.0\]net 10.0.12.0 0.0.0.255 \[r2-ospf-10-area-0.0.0.0\]net 10.0.2.2 0.0.0.0 \[r2-ospf-10-area-0.0.0.0\]area 1 \[r2-ospf-10-area-0.0.0.1\]net 10.0.23.0 0.0.0.255 \[r3\]ospf 10 router-id 10.0.3.3 \[r3-ospf-10\]area 1 \[r3-ospf-10-area-0.0.0.1\]net 10.0.13.0 0.0.0.255 \[r3-ospf-10-area-0.0.0.1\]net 10.0.23.0 0.0.0.255 \[r3-ospf-10-area-0.0.0.1\]net 10.0.3.3 0.0.0.0 \[r3-ospf-10-area-0.0.0.1\]area 2 \[r3-ospf-10-area-0.0.0.2\]net 10.0.34.0 0.0.0.255 \[r4\]ospf 10 router-id 10.0.4.4 \[r4-ospf-10\]area 2 \[r4-ospf-10-area-0.0.0.2\]net 10.0.34.0 0.0.0.255 \[r4-ospf-10-area-0.0.0.2\]net 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的虚链路。

r3\]ospf 10 \[r3-ospf-10\]area 1 \[r3-ospf-10-area-0.0.0.1\]vlink-peer 10.0.1.1

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

r1\]ospf 10 \[r1-ospf-10\]area 1 \[r1-ospf-10-area-0.0.0.1\]vlink-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之间建立一条虚链路。

r2\]ospf 10 \[r2-ospf-10\]area 1 \[r2-ospf-10-area-0.0.0.1\]vlink-peer 10.0.3.3 \[r3\]ospf 10 \[r3-ospf-10\]area 1 \[r3-ospf-10-area-0.0.0.1\]vlink-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协议开销值。

r3\]int g0/0/2 \[r3-GigabitEthernet0/0/2\]ospf cost 10

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

r2\]int g0/0/2 \[r2-GigabitEthernet0/0/2\]ospf cost 10

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

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

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

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

r1\]ospf 10 \[r1-ospf-10\]area 1 \[r1-ospf-10-area-0.0.0.1\]vlink-peer 10.0.2.2 \[r2\]ospf 10 \[r2-ospf-10\]area 1 \[r2-ospf-10-area-0.0.0.1\]vlink-peer 10.0.1.1

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

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

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

r1\]int g0/0/0 \[r1-GigabitEthernet0/0/0\]shutdown

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

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

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

r1\]int g0/0/0 \[r1-GigabitEthernet0/0/0\]undo 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。

r1\]ospf 10 \[r1-ospf-10\]area 1 \[r1-ospf-10-area-0.0.0.1\]vlink-peer 10.0.2.2 hmac-md5 1 plain huawei

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

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

在R2上配置认证功能。

r2\]ospf 10 \[r2-ospf-10\]area 1 \[r2-ospf-10-area-0.0.0.1\]vlink-peer 10.0.1.1 hmac-md5 1 plain huawei

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

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

相关推荐
寻星探路2 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
七夜zippoe5 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥5 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
会员源码网5 小时前
理财源码开发:单语言深耕还是多语言融合?看完这篇不踩坑
网络·个人开发
米羊1216 小时前
已有安全措施确认(上)
大数据·网络
Fcy6486 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满6 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠7 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey9037 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
ManThink Technology7 小时前
如何使用EBHelper 简化EdgeBus的代码编写?
java·前端·网络