HCIP—OSPF虚链路实验

OSPF虚链路—Vlink

作用:专门解决OSPF不规则区域所诞生的技术,是一种虚拟的,逻辑的链路。实现非骨干区域和骨干区域在逻辑上直接连接。注意虚链路条件:只能穿越一个区域,通常对虚链路进行认证功能的配置。虚链路认证也是OSPF接口认证的一种,支持MD5,明文等特性。

由于虚链路只能配置邻居的RID,但是无法获取其他的RID,无法建立邻居。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路径作为冗余备份。另外,为了提高安全性,对于所使用的虚链路应进行认证功能的配置。

一:对接口进行基础IP配置,保证各个自连网段的连通性。

二:搭建OSPF网络

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

[R1]ospf 1 router-id 10.0.1.1
[R1-ospf-1]a 0  
[R1-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]a 1
[R1-ospf-1-area-0.0.0.1]network 10.0.13.0 0.0.0.255

[R2]ospf 1 router-id 10.0.2.2 
[R2-ospf-1]a 0  
[R2-ospf-1-area-0.0.0.0]network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]a 1
[R2-ospf-1-area-0.0.0.1]network 10.0.23.0 0.0.0.255

[R3]ospf 1 router-id 10.0.3.3
[R3-ospf-1]a 1
[R3-ospf-1-area-0.0.0.1]network 10.0.13.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]network 10.0.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]network 10.0.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.1]a 2
[R3-ospf-1-area-0.0.0.2]network 10.0.34.0 0.0.0.255

[R4]ospf 1 router-id 10.0.4.4 
[R4-ospf-1]a 2
[R4-ospf-1-area-0.0.0.2]network 10.0.34.0 0.0.0.255
[R4-ospf-1-area-0.0.0.2]network 10.0.4.4 0.0.0.0

R3上使用命令查看OSPF邻居关系


 

查看R4LSDB

从中可以看出R4的LSDB中没有区域0中关于10.0.1.1/32和10.0.2.2/32的LSA, 只有本区域的LSA,没有其他区域是LSA。即说明区域2与区域0并没有相连。

三:使用虚链路使区域2与区域0逻辑相连

使用虚链路使区域2与区域0逻辑相连起来,将区域1作为区域2和区域0之间的传输区域。在R3和R1上配置VLINK。

[R3]ospf 1
[R3-ospf-1]a 1 
[R3-ospf-1-area-0.0.0.1]vlink-peer 10.0.1.1#10.0.1.1为对方的RID

[R1]ospf 1
[R1-ospf-1]a 1
[R1-ospf-1-area-0.0.0.1]vlink-peer 10.0.3.3

R1使用命令查看虚链路信息

状态为FULL表示成功建立虚链路

R4查看LSDB

可以看出,区域0 和区域1的LSA已经存在,区域0和区域2已经连通。

R4测试与R1,R2的连通性

通过R1和R3之间的虚链路,实现了区域2和区域0的逻辑相连。还需要配置R2与R3之间的虚链路

[R2]ospf 1
[R2-ospf-1]a 1 
[R2-ospf-1-area-0.0.0.1]vlink-peer 10.0.3.3

[R3]ospf 1
[R3-ospf-1]a 1
[R3-ospf-1-area-0.0.0.1]vlink-peer 10.0.2.2

四:修改虚链路开销值

R3查看虚链路信息

R3与R1(10.0.1.1)之间,R3与R2(10.0.2.2)之间各存在一条虚链路,开销值Cost都为1。R4访问区域0时,出现负载均衡的情况。实验需求是R4与区域0通信时优先选择R1的路(R4→R3→R1),选择R2的路径进行备份(R4→R3→R2)实现实验需求通过更改虚链路的开销值。

虚链路的开销值是OSPF协议在传输区域内所选用的物理路径的开销值。修改虚链路开销值就是修改物理路径接口两端的开销值。

备份选择路径R4→R3→R2,就是修改R3→R2物理路径两端接口的开销值为10

[R3]int g 0/0/2
[R3-GigabitEthernet0/0/2]ospf cost 10
[R3-GigabitEthernet0/0/2]

[R2]int g 0/0/2
[R2-GigabitEthernet0/0/2]ospf cost 10
[R2-GigabitEthernet0/0/2]

R3上查看虚链路信息

可以看出,R3与R2之间虚链路开销值Cost为10,R3和R1之间虚链路开销值Cost为1。,开销值越大则优先级越低。保证了R4和R3访问区域0时,优先选择R1,备份选择R2。

五:使用虚链路作为区域0链路的冗余备份

        由于R1和R2之间只有单条链路连接,如果链路出现故障,就会导致区域0被分割。R1和R2之间属于区域0,区域0为骨干区域不可以被分割。为了保证网络的可靠性,可以将区域1作为传输区域,在R1和R2之间建立一条虚链路作为冗余备份。

[R1]ospf 1
[R1-ospf-1]a 1
[R1-ospf-1-area-0.0.0.1]vlink-peer 10.0.2.2

[R2]ospf 1
[R2-ospf-1]a 1
[R2-ospf-1-area-0.0.0.1]vlink-peer 10.0.1.1

R1查看虚链路信息

可以看出R1到R2的开销值Cost为11,R1使用tracert命令测试访问10.0.2.2/32路径

可以看出10.0.12.2为R2的入接口,即访问路径为直连路径R1→R2。关闭R1的GE 0/0/0接口,模拟R1和R2直连链路出现故障。再次使用tracert命令测试访问10.0.2.2/32路径

[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]shutdown 

[R1]tracert 10.0.2.2

可以看出10.0.13.3为R3的入接口,10.0.23.2 为R2的入接口。即访问路径通过区域1到达区域0,及R1→R3→R2。

然后出重新打开R1的GE0/0/0接口

[R1]int g 0/0/0 
[R1-GigabitEthernet0/0/0]undo shutdown 
 

六:配置虚链路的认证功能

当我们使用虚链路配置信息时,通常配置认证功能来增强安全性。R1和R2之间虚链路为例子,使用命令hmac-md5 1 plain huawei,hmac-md5表示使用的认证加密方式,1为Key ID,plain huawei表示明文方式显示口令。

[R1]ospf 1
[R1-ospf-1]a 1   
[R1-ospf-1-area-0.0.0.1]vlink-peer 10.0.2.2 hmac-md5 1 plain huawei

R1上观察虚链路信息

R1和R2之间的虚链路状态为Down,说明虚链路建立失败。原因在于R2没有进行相应的认证功能

R2上配置认证功能

[R2]ospf 1
[R2-ospf-1]a 1
[R2-ospf-1-area-0.0.0.1]vlink-peer 10.0.1.1 hmac-md5 1 plain huawei

R1再次观察虚链路信息

R1和R2之间的虚链路状态为Full,说明虚链路建立成功。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-18 05:46:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-18 05:46:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-18 05:46:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-18 05:46:03       20 阅读

热门阅读

  1. rust - 一个日志缓存记录的通用实现

    2024-03-18 05:46:03       21 阅读
  2. 前端框架的发展历程

    2024-03-18 05:46:03       19 阅读
  3. Git入门学习

    2024-03-18 05:46:03       22 阅读
  4. 前端框架的发展史

    2024-03-18 05:46:03       22 阅读
  5. 探索Flutter Sliver 家族:打造流畅的复杂滚动体验

    2024-03-18 05:46:03       21 阅读
  6. go docker sdk 第三章

    2024-03-18 05:46:03       23 阅读
  7. 简述VS C++,Win32 API 和MFC之间的关系?

    2024-03-18 05:46:03       19 阅读
  8. FreeRTOS入门基础

    2024-03-18 05:46:03       18 阅读
  9. C#命名空间基础及案例

    2024-03-18 05:46:03       23 阅读
  10. django 定时任务的创建

    2024-03-18 05:46:03       17 阅读
  11. HJ31 单词倒排

    2024-03-18 05:46:03       18 阅读
  12. cache的58问,您能回答上几个

    2024-03-18 05:46:03       17 阅读