前文我们了解了OSPF的网络类型、帧中继交换机映射以及路由器帧中继映射相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15195762.html;今天我们来聊一聊OSPF中的虚连接相关话题;

  在ospf里,为了避免区域间的环路,ospf规定不允许直接在两个非骨干区域之间发布路由信息,只允许在一个区域内部或者在骨干区域和非骨干区域之间发布路由信息;因此,每个ABR(区域边界路由器)都必须连接到骨干区域;即要求所有非骨干区域必须和骨干区域相连,同时骨干区域也必须连续;但是由于网络设计、升级、合并、改造等因素,造成了不规范的区域架构,最终导致路由学习不完整,解决方法就是使用虚连接;什么是虚连接?虚连接就是一条逻辑的链路,作用有两个,第一个作用是将非骨干区域和骨干区域逻辑的连接在一起;第二个作用就是为骨干区域提供冗余备份的逻辑链路,当骨干区域链路故障时,通过虚连接仍然可以保证骨干区域在逻辑上的联通性;当然虚连接的存在增加了网络的复杂程度,使故障的排除更加困难;因此,在网络规划中我们要尽量避免使用虚连接;虚连接只是作为修复无法避免的网络拓扑问题的一种临时手段;如果一个网络架构里使用了虚连接,这也意味着该网络需要重新规划;

  区域间路由环路的产生

  提示:假设ospf允许非骨干区域间的ABR进行路由发布,那么上图就很明显是一个环路;当RTD在区域1里发布一条路由信息,对应RTB会学习到,同时RTB也会向RTC发送对应的路由信息,同样的道理RTC也会向RTE发送路由信息;最终RTD发送的路由信息,从RTE发回给RTD,这样一来就形成了区域间路由环路;为了避免这个多区域间路由环路,ospf就规定不允许非骨干区域间发送路由信息;如上图,正常情况RTE和RTD不能互相发送路由信息,这样环路就不会产生;

  避免区域间路由环路

  提示:为了防止区域间环路,ospf定义了骨干区域和非骨干区域以及三类LSA的传递规则;首先ospf划分了骨干区域和非骨干区域,所有非骨干区域均直接和骨干区域相连,并且骨干区域只有一个,非骨干区域之间的通许都要通过骨干区域中转,骨干区域ID是固定为0;ospf规定从骨干区域传来的三类LSA不再传回骨干区域;通过上述规定,我们不难想象对于ABR来说,它必须和骨干区域直连,是少有一个接口属于骨干区域;如果一个非骨干区域ABR没有一个接口属于骨干区域,那么对应网络区域设计就是一个不规范的设计;最终导致路由学习不完整;

  不规范的OSPF区域设计

  提示:上图区域2的ABR RTC并没有任何一个接口是属于区域0(骨干区域),所以类似这种区域设计是不规范的设计,在现网中应该尽量避免;

  提示:对于这种骨干区域不连续的拓扑也是不规范的设计;对于ospf来说,骨干区域有且只有一个,并且所有非骨干区域必须和骨干区域相连才是规范的ospf区域设计;

  不规范的ospf区域设计带来的问题

  实验:如下拓扑图,配置ospf

  R1配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
int lo 1
ip add 1.1.1.1 32
ospf 1 router-id 1.1.1.1
area 0
net 12.0.0.1 0.0.0.0
net 1.1.1.1 0.0.0.0

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 23.0.0.2 24
ospf 1 router-id 2.2.2.2
area 0
net 12.0.0.2 0.0.0.0
area 1
net 23.0.0.2 0.0.0.0

  R3的配置

sys
sys R3
int g0/0/0
ip add 23.0.0.3 24
int g0/0/1
ip add 34.0.0.3 24
ospf 1 router-id 3.3.3.3
area 1
net 23.0.0.3 0.0.0.0
area 2
net 34.0.0.3 0.0.0.0

  R4的配置

sys
sys R4
int g0/0/0
ip add 34.0.0.4 24
int lo 1
ip add 4.4.4.4 32
ospf 1 router-id 4.4.4.4
area 2
net 34.0.0.4 0.0.0.0
net 4.4.4.4 0.0.0.0

  验证邻居关系是否起来

  在R1上验证邻居关系

  在R2上验证邻居关系

  在R3上验证邻居关系

  在R4上验证邻居关系

  提示:在各路由器上验证邻居关系,各邻居都已正常full起来;

  验证:在R1上查看ospf学习到的路由

  提示:可以看到在R1上ospf路由表中并没有学习到area 2里的路由以及R4的lo接口路由也没有学习到;

  验证:在R4上查看ospf学习到的路由

  提示:对于R4来说它也没有学习到area 0、area 1 以及R1的lo接口路由;其实原因很简单,就是因为上述拓扑架构不是规范的区域,对应区域2并没有和区域0相连,导致对应区域路由学习不完整;解决办法,使用虚链路将area 2和骨干区域相连;

  在R2的g0/0/1口和R3的g0/0/0口建立虚链路

  提示:vlink-peer 后面是对应要建立虚连接路由器的router id,是在同一个区域内的;简单讲虚连接只能在同一非骨干区域内建立,不能跨区域建立;

  在R3的g0/0/0口上建立虚连接

  提示:可以看到在R3的ospf里对应区域里建立虚连接后,对应提示我们邻居full了;

  验证:在R2、R3上验证虚连接邻居

  提示:可以看到在对应的路由器上查看ospf虚连接信息对应路由器都把邻居指向对端的router id 并且邻居状态都是full,这说明虚连接邻居建立成功;

  验证:在R2的g0/0/1口抓包看看现在虚连接hello包和传统hello包有什么不同

  提示:在R2上我们抓到了两种ospf hello包,一种是目标地址是224.0.0.5的组播包,一种是单播包;其中组播包里区域id都是1,单播包里区域id都是0;组播包是ospf 区域1正常hello包;单播包就是虚连接的hello包;

  验证:再次查看R1是否学习到区域2 以及R4上的路由?

  提示:可以看到现在R1能够正常学习到区域2以及R4lo接口的路由;

  验证:R4是否能够正常学习到区域0、区域1 以及R1的路由呢?

  提示:可以看到现在R4也能正常学习到区域0,区域1以及R1lo接口的路由;

  虚连接给骨干区域带来逻辑链路冗余备份

  提示:当骨干区域链路断开,对于原本走该链路的数据也就无法正常通过;此时我们可以通过在区域1建立逻辑的虚连接,让对应原本走骨干区域链路的流量,通过虚连接链路实现通信;当骨干区域链路恢复正常,对应流量又会自动切回到骨干区域链路;从而实现对骨干区域链路做冗余备份的效果;

  实验:如下拓扑,配置ospf

  分析:对于R1的来说,它访问R2的lo1接口,肯定走R1和R2的直连链路;如果在没有配置虚连接的情况下,当R1和R2的直连链路宕掉以后,对应通信就无法正常实现;

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24
int g0/0/1
ip add 13.0.0.1 24
int lo 1
ip add 1.1.1.1 32
ospf 1 router-id 1.1.1.1
a 0
net 12.0.0.1 0.0.0.0
net 13.0.0.1 0.0.0.0
net 1.1.1.1 0.0.0.0

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 24.0.0.2 24
int lo 1
ip add 2.2.2.2 32
ospf 1 router-id 2.2.2.2
a 0
net 12.0.0.2 0.0.0.0
net 24.0.0.2 0.0.0.0
net 2.2.2.2 0.0.0.0

  R3的配置

sys
sys R3
int g0/0/0
ip add 13.0.0.3 24
int g0/0/2
ip add 35.0.0.3 24
ospf 1 router-id 3.3.3.3
area 0
net 13.0.0.3 0.0.0.0
area 1
net 35.0.0.3 0.0.0.0

  R4的配置

sys
sys R4
int g0/0/0
ip add 24.0.0.4 24
int g0/0/2
ip add 46.0.0.4 24
ospf 1 router-id 4.4.4.4
area 0
net 24.0.0.4 0.0.0.0
area 1
net 46.0.0.4 0.0.0.0

  R5的配置

sys
sys R5
int g0/0/0
ip add 35.0.0.5 24
int g0/0/1
ip add 56.0.0.5 24
ospf 1 router-id 5.5.5.5
area 1
net 35.0.0.5 0.0.0.0
net 56.0.0.5 0.0.0.0

  R6的配置

sys
sys R6
int g0/0/0
ip add 46.0.0.6 24
int g0/0/1
ip add 56.0.0.6 24
ospf 1 router-id 6.6.6.6
area 1
net 46.0.0.6 0.0.0.0
net 56.0.0.6 0.0.0.0

  查看R1和R2的路由表

  提示:可以看到R1通过ospf学习到R2lo接口的路由;

  提示:同样R2也通过ospf学习到R1lo接口的路由;

  在没有配置虚连接,看看R1到R2的lo1的路径

  提示:可以看到正常情况下,R1到R2的lo1接口的流量走R1和R2的直连链路;

  当直连链路宕掉以后,看看对应通信是否还能继续进行呢?

  提示:可以看到当R1和R2的直连链路宕掉以后,对应去往R2的lo1接口的路由也随之被删除;此时R1并没有R2的lo1接口的路由,所以现在R1是无法正常和R2的lo1接口通信;

  在R3上配置虚连接

  在R4上配置虚连接

  提示:虚连接需要在同一非骨干区域内的两个路由器上都配置对端为本端的邻居;从上面的实验可以看到我们在R3和R4的对应ospf 区域1里配置了虚连接以后,对应虚连接邻居就起来;

  验证:现在看看R1上是否有到达R2的lo1接口的路由呢?

  提示:可以看到虽然R1到R2的直连链路是down的状态,但通过R3和R4建立的虚连接,对应到达R2的lo1接口的路由还是能够正常学习到;

  验证:现在在R1上和R2的lo1接口通讯,看看对应数据包走的链路

  提示:可以看到现在R1和R2的lo1接口的通信可以走R3--->R5---->R6---->R4---->R2;

  当R1和R2直连链路恢复正常,看看对应通讯链路是否会切换回去呢?

  提示:当R1和R2直连链路恢复以后,对应ospf邻居也会重新建立;

  现在R1和R2的lo1接口通信是否会切换到R1和R2的直连链路呢?

  提示:可以看到对应骨干区域链路恢复正常以后,对应的通信路由也随之被切换到对应的骨干区域链路;

HCNP Routing&Switching之OSPF虚连接的更多相关文章

  1. HCNP Routing&Switching之OSPF LSA类型

    前文我们了解了OSPF中的虚连接相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15202348.html:今天我们来聊一聊OSPF数据包中LSA类型相 ...

  2. HCNP Routing&Switching之OSPF特殊区域

    前文我们了解了OSPF LSA更新规则以及路由汇总相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15231880.html:今天我们来聊一聊OSPF的 ...

  3. HCNP Routing&Switching之OSPF网络类型

    前文我们了解了PPPoE协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15182512.html:今天我们聊聊一聊OSPF中的网络类型相关话题: ...

  4. HCNP Routing&Switching之OSPF LSA类型(二)

    前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...

  5. HCNP Routing&Switching之OSPF外部路由类型以及forwarding address

    前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...

  6. HCNP Routing&Switching之OSPF LSA更新规则和路由汇总

    前文我们了解了OSPF外部路由类型以及forwarding address字段的作用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15225673.html: ...

  7. HCNP Routing&Switching之IS-IS报文结构和类型

    前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html:今天我们来聊一聊IS-IS动态路由协 ...

  8. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  9. HCNA Routing&Switching之OSPF度量值和基础配置命令总结

    前文我们了解了OSPF的网络类型,OSPF中的DR和BDR的选举规则.作用等相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15054938.html: ...

随机推荐

  1. aptitude软件状态标志i、v、p

    输出的结果分三栏,分别为状态.包名和描述.而状态则由p.i.v等字母表示.查询后才知道这些标识的含义是这样的: i - 包已经成功安装,并且所有依赖都满足. c - 包已经被移除,但是配置文件被保留. ...

  2. 谷粒商城--分布式基础篇P28~P101(完结)

    谷粒商城--分布式基础篇P28~P101(完结) 前面1-27节主要是环境配置特别难,后面的28~101节主要是前端编写的代码较多以及后台的CRUD操作比较多.因为内容很多,所以我是根据自己想学的点进 ...

  3. springboot-1-入门

    springboot-1-入门 1.springboot简介,背景 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 2.极简hellowor ...

  4. springMVC-12-整合spring和springmvc

    问题1: 好像我们只需要使用springmvc的配置文件作为IOC容器就可以了 --> 需要进行Spring 整合SpringMVC吗? ----> 还是否需要再加入Spring的IOC容 ...

  5. debian 9安装细节

    1.安装KDE桌面 2.开机桌面正常启动,首先在grub启动界面,按"e"键,在linux......quiet后面加上nomodeset,然后进入桌面,在终端输入: su -vi ...

  6. 使用Angular CDK实现一个Service弹出Toast组件

    在Angular中,官方团队在开发Material组件库的同时,顺手做了一套Component dev kit,也就是在Angular世界中大名鼎鼎的CDK,这套工具包提供了非常多的前端开发的通用功能 ...

  7. Jmeter 学习 搭建(1)

    功能 1.web自动化测试 2.接口测试 3.压力测试 4.性能测试 5.通过jdbc进行数据库测试 6.java测试 优缺点 优点 1.开源,可扩展性好 2.GUI界面,小巧灵活 3.100%  j ...

  8. ts 学习笔记 - 进阶篇 1

    目录 进阶 类型别名 字符串字面量类型 元祖 例子 越界的元素 枚举 手动赋值 常数项和计算所得项 常数枚举 外部枚举 进阶 类型别名 类型别名用来给一个类型起个新名字 type Name = str ...

  9. 深入刨析tomcat 之---第11篇 how tomcat works( 第15章 ) 如何解析web.xml 文件

    writedby 张艳涛 记得当年是学习jsp的时候,写过web.xml中的标签.在之后的springmvc中也是有关于配置mvc 过滤器 和dispatchServlet的标签,之前是看不懂呢!看到 ...

  10. mongodb(27017、28017)未授权访问

    重启docker systemctl restart docker.service 下载mingodb docker pull mongo:3.6 列出镜像 docker images mongo 创 ...