原理概述
通常情况下,一个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之间的虚链路已经得到恢复。