前文我们了解了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. python + csv 操作(读写)

    import csv"""与excel文件不同,csv文件中:1.数据都没有数据类型,值都是'字符串'2.没有颜色和样式,不能指定单元格测的宽高,不能合并单元格3.没有对 ...

  2. python之数据驱动Excel+ddt操作(方法二)

    一.Mail163数据如下: 二.Excel+ddt代码如下: import xlrdimport unittestfrom selenium import webdriverfrom seleniu ...

  3. Leetcode4. 寻找两个正序数组的中位数

    > 简洁易懂讲清原理,讲不清你来打我~ 输入两个递增数组,输出中位数![在这里插入图片描述](https://img-blog.csdnimg.cn/25550994642144228e9862 ...

  4. 使用xampp在本地环境配置虚拟域名

    最近在学习ThinkPHP5.1.手册里面提到"实际部署中,应该是绑定域名访问到public目录,确保其它目录不在WEB目录下面."所以把使用xampp在本地配置虚拟域名的过程记录 ...

  5. Skywalking-02:如何写一个Skywalking trace插件

    如何写一个Skywalking trace插件 javaagent 原理 美团技术团队-Java 动态调试技术原理及实践 类图 实现 ConsumeMessageConcurrentlyInstrum ...

  6. Intouch 制作自定义登录弹窗

    在新的自动化项目中,因为业主对设计审美要求比较高,对Intouch自带脚本呼出登录窗体不满意,故而制作自定义登录弹窗来满足其审美需求.在寻求自控群前辈的经验下,将其整理成博客,供大家参考. 1.登录窗 ...

  7. 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)

    最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...

  8. Spring学习笔记-Hello Spring

    实现原理 采用XML方式配置Bean的时候,Bean的定义和实现分离的,采用注解的方式可以将两者合为一体,Bean的定义信息直接以注解形式定义在实现类中,从而实现了零配置. 控制反转是一种通过描述(X ...

  9. TypeScript学习笔记(四)装饰器

    目录 一.装饰器的作用 二.类装饰器 1. 普通装饰器 为类扩展属性和方法 使用装饰器修改属性和重写方法 2. 装饰器工厂 三.属性装饰器 四.方法装饰器 使用方法装饰器对方法进行扩展 五.方法参数装 ...

  10. linux c语言学习笔记之守护进程

    哈尔滨理工大学软件工程专业08-7李万鹏原创作品,转载请标明出处 http://blog.csdn.net/woshixingaaa/archive/2010/06/06/5651095.aspx 守 ...