前文我们了解了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. 技术期刊 · 天光台高未百尺 | Uber 工程师的 JS 算法课;大数据时代的个人隐私;设计师的 Github;告别 PPT 工程师;从零开始实现的像素画

    蒲公英 · JELLY技术期刊 Vol.42 这是一个最好的时代,多样化的平台给了所有人成长发展的机会,各种需求和解决需求的人让人大开眼界:但这也并不是完美的时代,"前端还需要懂什么算法?& ...

  2. .NET同步原语Barrier简介

    Barrier(屏障)是一种自定义的同步原语(synchronization primitive),它解决了多个线程(参与者)在多个阶段之间的并发和协调问题. 1)多个参与者执行相同的几个阶段的操作 ...

  3. empty(), is_null(), isset()真值表(区别)

  4. DC-9靶机

    仅供个人娱乐 靶机信息 下载地址:http://www.five86.com/downloads/DC-9.zip 一.主机扫描 二.信息收集 三.漏洞查找和利用 发现search的地方可能有sql注 ...

  5. 偷天换日 树形DP+背包

    A. 偷天换日 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较   题目描述 神偷对艺术馆内的名画垂涎欲滴准备大捞一把.艺术馆由若干个展览厅和若干 ...

  6. 中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)

    前言 当下,正面临着近几年来的最严重的互联网寒冬,听得最多的一句话便是:相见于江湖~.缩减HC.裁员不绝于耳,大家都是人心惶惶,年前如此,年后想必肯定又是一场更为惨烈的江湖厮杀.但博主始终相信,寒冬之 ...

  7. 别再用CSV了,更高效的Python文件存储方案

    CSV无可厚非的是一种良好的通用文件存储方式,几乎任何一款工具或者编程语言都能对其进行读写,但是当文件特别大的时候,CSV这种存储方式就会变得十分缓慢且低效.本文将介绍几种在Python中能够代替CS ...

  8. Python--数据存储

    新建测试文档测试.txt内容如下: 张三:今天天气真好. 李四:是的,真的太好了. 张三:阳光明媚. 李四:鸟语花香. 王五:装逼现场:请带好安全帽 张三:难得好天气,今天就不偷懒了. 李四:能把乞讨 ...

  9. Emlog V6.0.0代码审计笔记

    前言 emlog是一套基于PHP和MySQL的博客及CMS建站系统. emlog v6.0.0存在后台SQL注入漏洞. 分析 官网下载emlog最新版v6.0.0,本地搭建. 前台功能不多,参数基本都 ...

  10. HDFS 09 - HDFS NameNode 的高可用机制

    目录 1 - 为什么要高可用 2 - NameNode 的高可用发展史 3 - HDFS 的高可用架构 3.1 Standby 和 Active 的命名空间保持一致 3.2 同一时刻只有一个 Acti ...