前文我们了解了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. P7362 [eJOI 2020 Day2] XOR Sort

    P7362 [eJOI 2020 Day2] XOR Sort 题意 给你一个长度为 \(n\) 的序列,每次操作可以将一个数异或上相邻的一个数,求将序列改为严格单调递增序列或严格单调不降序列的操作次 ...

  2. 使用Pycharm创建Django项目无法创建app.

    Python3.7使用Django1.11.7创建Django项目报以下错误时: 在使用Pycharm创建Django项目报以下错误时: Traceback (most recent call las ...

  3. decimal和float的区别

    场景 今天在开发的时候,在mongodb中有个字段保存的数据结构是decimal,然后需要对这个字段的值进行范围的查询.结果却怎么查询值范围都是空. 解决 如图中看到的,利用Navicat,可以明显的 ...

  4. 【LeetCode】297. 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 知识点:二叉树:递归 题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一 ...

  5. Springboot 配置文件、隐私数据脱敏的最佳实践(原理+源码)

    大家好!我是小富- 这几天公司在排查内部数据账号泄漏,原因是发现某些实习生小可爱居然连带着账号.密码将源码私传到GitHub上,导致核心数据外漏,孩子还是没挨过社会毒打,这种事的后果可大可小. 说起这 ...

  6. solr(CVE-2017-12629)远程命令执行

    影响版本Apache Solr 5.5.0到7.0.1版本 solr(CVE-2017-12629-RCE) 环境搭建 1.burp检测 创建listen POST /solr/demo/config ...

  7. friend靶机

    仅供个人娱乐 靶机信息 https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 一.主机探测 二.信息收集 访问一下web站点,提示只能从本 ...

  8. leetcode 有效三角形的个数

    题目描述: 平明伞兵解法: 既然要求满足三角形要求的三边,简单来说,就是最短两边之和大于第三边,所以,第一步Arrays.sort().先排序,然后直接伞兵暴力法,三重循环.当然最后肯定是能跑出来的, ...

  9. 根据随身固态U盘卷标搜索U盘盘符并打开文件的批处理脚本.bat 徐晓亮 595076941@qq.com 2019年12月19日6点50分

    @Echo offRem 根据随身固态U盘卷标搜索U盘盘符并打开文件的批处理脚本.batRem 徐晓亮 595076941@qq.com 2019年12月19日6点50分 Rem 此批处理脚本源代码的 ...

  10. noip模拟32[好数学啊]

    noip模拟32 solutions 真是无语子,又没上100,无奈死了 虽然我每次都觉得题很难,但是还是有好多上100的 战神都200多了,好生气啊啊啊 从题开始变难之后,我的时间分配越来越不均匀, ...