HCNP Routing&Switching之路由引入导致的问题及解决方案
前文我们了解了路由引入相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15359902.html;今天我们来讨论下由于路由引入所导致的问题以及怎么避免此类问题的解决方案;
各路由协议在IP路由表中的默认优先级
提示:以上是各路由协议在ip路由表中的优先级;我们知道对于路由器来说,它最终依靠的是ip路由表来转发数据;对于去往同一网络的路由,优先级数字越小,表示优先级越高;优先级越高,对应也就表示路由越优先;即对应路由优先存放在路由表;如果优先级相同,则此时才会比对开销,开销越小的路由,对应路由优先存放在ip路由表中,即在数据包转发选路时,优先选择开销小的路由;如果优先级、开销都一样,则两个路由对应的链路,负载分担对应网络流量;
路由引入导致的次优路由
提示:如上图所示,对于2.2.2.2这个网络的路由,首先RTD通过RIP向RTC和RTB发送,对应RTC和RTB都会通过RIP学习到对应路由信息;此时如果我们在RTC上把RIP的路由引入至isis中,那么对应2.2.2.2的路由会随之被引入之isis网络中;对于RTB来说,此时它既可以通过RIP学习到达2.2.2.2的路由,同时也可以通过ISIS学习到达2.2.2.2的路由;由于isis路由协议的优先级要高于RIP,所以RTB的路由表中只会存在ISIS学习到达2.2.2.2的路由;即RTB要想和2.2.2.2通信,它需要走RTB--->RTA--->RTA--->RTC--->RTD,很显然没有RTB--->RTD路径短;所以此时就会产生持有路由;
解决次优路由方案-->利用路由过滤
提示:解决类似次优路由的方法,我们可以在RTB上通过路由策略,将对应引入的路由过滤掉;这样一来RTB就不会通过ISIS学习到引入的路由,对应也就不会产生次优路由;
解决次优路由方案-->调整路由协议优先级
提示:如上图所示,我们还可以通过修改ISIS路由协议的优先级,从而来影响RTB上路由表中的路由条目;我们把RTB上ISIS的优先级调整至大于RIP默认优先级100即可解决次优路由;或者我们调整RIP优先级至小于ISIS默认优先级15也行;
路由引入导致的路由环路
提示:如上图所示,首先我们在RTA上将2.2.2.2的路由引入之OSPF中,并将对应开销更改为2,此操作会导致RTB、RTC、RTE通过ospf5类LSA学习到2.2.2.2的路由,对应路由的优先级为150,开销为2;我们在RTE上将ospf路由引入之ISIS中,此操作会导致RTD通过ISIS学习到达2.2.2.2的路由,优先级为15,开销为1(默认种子度量值为1),同时RTD也会通过LSP包向RTC更新路由;如果此时我们在RTC上将isis进程中的路由再次引入至ospf中,此时对应2.2.2.2的路由会随之被引入至opsf进程,其优先级为150,开销为1;此时RTA收到优先级相同,开销要小于RTA发送的LSA小,此时RTA的路由表中就只会存放RTC发送到LSA更新,并技术对应路由存放在ip路由表中;这样一来RTB要访问2.2.2.2网络,此时路由环路就产生了;首先RTB访问2.2.2.2网络,它会把数据包发送至RTC,而不会发送至RTA,原因是RTC发送到LSA中对应路由的开销要小于RTA发送的LSA开销要小;所以对于RTB来说,它去往2.2.2.2的路由,其下一跳为RTC;对应RTC去往2.2.2.2的下一跳为RTD,RTD去往2.2.2.2的下一跳为RTE,RTE去往2.2.2.2的下一跳为RTB;最终知道对应数据包的TTL值减为0以后,对应数据包才会停止;
解决路由环路方案-->利用路由过滤避免环路
提示:路由环路形成最主要的原因是我们把引入的路由再次引入至原路由协议;我们可以通过路由策略将对应引入路由(原路由协议已经存在的路由),再次引入时将其过滤掉即可;如上图所示,我们可以在RTC上再次引入路由时,直接将原ospf中已经存在的2.2.2.2的路由过滤掉即可;
解决路由环路方案-->调整路由协议优先级避免环路
提示:我们知道路由引入的必要条件是对应路由必须存在于对应路由器的路由表中才可以执行路由引入;如果通过调整优先级将对应路由不存在路由表中即可解除环路;对应能影响RTC路由表中的信息,我们可以调整ISIS优先级至大于ospf外部路由默认优先级150即可;调整以后,对应RTC通过ISIS学习到的路由,就不会存放于路由表中,因为RTC通过ospf学习到达外部路由其优先级为150,对应通过isis学习到达路由优先级为160,所以RTC的路由表只会存放优先级略小的路由条目;这样一来RTC收到去往2.2.2.2的路由,其下一条为RTB,而RTB收到去往2.2.2.2的下一跳为RTA,RTA和2.2.2.2为直连;最终环路被破坏;
实验:如下拓扑,通过配置路由引入,实现全网互通
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 rip 1
ver 2
net 12.0.0.0
net 13.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 rip 1
ver 2
net 12.0.0.0 ospf 1 router-id 2.2.2.2
area 0
net 24.0.0.2 0.0.0.0
R3的配置
sys
sys R3
int g0/0/0
ip add 13.0.0.3 24
int g0/0/1
ip add 34.0.0.3 24 rip 1
ver 2
net 13.0.0.0 ospf 1 router-id 3.3.3.3
area 0
net 34.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/1
ip add 34.0.0.4 24
int s4/0/0
ip add 45.0.0.4 24 ospf 1 router-id 4.4.4.4
area 0
net 24.0.0.4 0.0.0.0
net 34.0.0.4 0.0.0.0
net 45.0.0.4 0.0.0.0
R5的配置
sys
sys R5
int s4/0/0
ip add 45.0.0.5 24
int lo 1
ip add 5.5.5.5 32 ospf 1 router-id 5.5.5.5
area 0
net 45.0.0.5 0.0.0.0
在R5引入直连路由5.5.5.5至ospf中
验证:在ospf路由器上,查看路由表,看看对应路由器是否学习到5.5.5.5的路由?
提示:可以看到ospf路由器都可以通过ospf学习到R5注入的直连路由5.5.5.5,对应路由的优先级为150,开销为1;此时R2、R3、R4都能正常和5.5.5.5通信;
在R2上将ospf路由注入至RIP中
验证:查看R3的路由表,看看对应5.5.5.5的路由下一条会是R1还是R4?
提示:可以看到在R2上将ospf路由引入至RIP以后,对应R3的路由表中5.5.5.5的路由就从原来的ospf进程学习变为RIP学习到的,其原因是RIP的优先级要高于ospf外部引入优先级,所以在路由表中RIP学习到的路由优先ospf外部路由;从R3的路由表来看,此时次优路由就产生了;此时R3要想访问5.5.5.5,此时数据包会先发给R1--->R2---->R4----R5;
验证:用tracert命令测试,看看R3到达5.5.5.5是怎么走的?
提示:从上面的过程来看,可以明确知道R3访问5.5.5.5的流量首先发送给R1,然后在发送给R2,后面R4没有到达R1的路由,所以后面就不通;
在R3上修改RIP优先级,避免次优路由
提示:可以看到在R3上修改了RIP的优先级为160以后,对应5.5.5.5的路由的下一跳由原来的R1变为了R4;
验证:在R3上用tracert命令测试去往5.5.5.5对应数据包走向
提示:可以看到此时R3可以正常和5.5.5.5通信,对应数据包走向是R3<--->R4<--->R5;
删除R3优先级调整
在R2上新建路由策略,拒绝5.5.5.5的路由
调用路由策略
验证:查看R3的路由表,看看对应去往5.5.5.5的路由下一条是否有变化?
提示:可以看到,我们在R2上通过路由策略过滤路由也可以避免次优路由的产生;、
删除R2上的策略路由和acl
在R3上将RIP路由引入至ospf中
验证:查看R4的路由表,看看对应5.5.5.5的路由下一跳是否有变化?
提示:可以看到我们在R3上将RIP进程路由引入至ospf以后,原来R4通过R5发送的5类LSA学习到5.5.5.5的路由,其下一跳从原来的45.0.0.5变为了34.0.0.3;在ospf中s4/0/0接口开销为48大于g0/0/1口开销,所以ospf认为从g0/0/1口学习到5.5.5.5的路由更优;
验证:在R1或R2或R3或R4上任意台路由器上,用tracert测试到达5.5.5.5的路由走向
提示:可以看到此时R1去访问5.5.5.5,对应数据包在R2、R4、R3、R1链路上来回跑,从上面的现象可以断定此时路由出现了环路;
在R3上通过修改RIP优先级来避免环路
提示:可以看到在R3上修改了RIP的优先级以后,对应去往5.5.5.5的路由下一跳由13.0.0.1变为了34.0.0.4;
验证:查看R4的路由表,看看对应去往5.5.5.5的路由下一跳是否有变化?
提示:可以看到此时R4到达5.5.5.5的下一跳也变为了R5;这是因为此时R3引入rip路由中就没有5.5.5.5的路由(因为在R3上RIP的优先级为160,而通过R4 这边学习到达5.5.5.5的路由优先级为150,所以此时路由表中的5.5.5.5的路由不是和RIP相关,所以把rip路由引入至ospf时,对应5.5.5.5的路由不包含其中);这样一来环路就破坏了;
验证:在R1、R2、R3或R4任意一台路由器上测试去往5.5.5.5,看看对应网络是否还会有环路呢?
提示:可以看到4个路由器都可以正常和5.5.5.5通信,并且环路也没有了;
在R3上删除优先级调整,新建路由策略过滤5.5.5.5的路由
调用策略之前R4去往5.5.5.5的下一跳
调用路由策略进行路由过滤
验证:查看R4的路由表,看看去往5.5.5.5的路由下一跳是否变化?
提示:可以看到此时R4的路由去往5.5.5.5的下一跳为R5;这意味着环路被破坏;
验证:在R1或R2或R3或R4上用tracert命令测试去往5.5.5.5的路由是否可以正常通信?
提示:可以看到R3能够和5.5.5.5正常通信,这说明路由环路已经被破坏;但是R3和5.5.5.5的通信是次优路由;
在R3调整RIP优先级解决次优路由
提示:可以看到在R3上调整了RIP的优先级以后,对应次优路由没有了;对应环路也没有产生;
总结:通过上述实验可以看到,路由引入主要容易产生次优路由和路由环路两大问题,这两个问题都可以修改路由协议优先级或使用路由策略过滤路由来避免次优路由和路由环路;
HCNP Routing&Switching之路由引入导致的问题及解决方案的更多相关文章
- HCNP Routing&Switching之路由引入
前文我们了解了路由控制技术策略路由相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15333139.html:今天我们来聊一聊路由引入技术相关话题: 路 ...
- HCNP Routing&Switching之路由控制、路由策略和IP-Prefix List
前文我们了解了IS-IS路由聚合和认证相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15306645.html:今天我们来聊一聊路由控制技术中的路由策 ...
- HCNP Routing&Switching之路由过滤工具Filter-Policy
前文我们了解了路由控制技术中路由策略和路由匹配工具IP-Prefix相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15314262.html:今天我们 ...
- HCNP Routing&Switching之路由策略工具Route-Policy
前文我们了解了路由过滤和路由过滤工具Filter-Policy使用相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15316188.html:今天我们来 ...
- HCNP Routing&Switching之路由控制-策略路由
前文我们了解了路由策略工具Route-Policy相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15322135.html:今天我们来聊一聊策略路由相 ...
- HCNP Routing&Switching之OSPF外部路由类型以及forwarding address
前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...
- HCNP Routing&Switching之BGP路由宣告
前文我们了解了BGP报文结构.类型以及邻居状态相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15422924.html:今天我们来聊一聊BGP路由宣告 ...
- HCNP Routing&Switching之BGP防环机制和路由聚合
前文我们了解了BGP路由宣告相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15440860.html:今天我们来聊一聊BGP防环机制和路由聚合相关话题 ...
- HCNP Routing&Switching之BGP路由控制
前文我们了解了BGP的路由属性和优选规则相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15489497.html:今天我们来聊一聊BGP路由控制相关话 ...
随机推荐
- Spring详解(十)加载配置文件
在项目中有些参数经常需要修改,或者后期可能会有改动时,那我们最好把这些参数放到properties文件中,在源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...
- js之window对象(慕课网学习笔记)
javaScript定义了一个变量一个函数都会变成window中的一个成员 var a=1; alert(window.a) //会输出a的值 window基础 创建窗口.调整窗口.移动窗口.关闭窗口 ...
- Hibernate脑图
- 关于MYSQL5.7:Access denied for user 'root'@'localhost' (using password:YES)解决
这一类解决要提供远程服务,需要进入mysql的my.ini文件中进行修改,但是在win10系统中,my.ini不再放在MYSQL安装目录的根目录中了,需要到一类应用缓存目录中寻找MYSQL的详细配置文 ...
- 使用dom4工具:增删改xml文件(七)
package dom4j_write; import java.io.File; import java.io.FileOutputStream; import org.dom4j.Attribut ...
- HbaseWAL
1.WAL意为 Write Ahead Log ,类似MySQL中的binlog,用来做灾难恢复之用,HLog记录数据的所有变更,一旦数据修改,就可以从Log中进行恢复. Hbase采用类LSM的架构 ...
- 刷题-力扣-剑指 Offer 15. 二进制中1的个数
剑指 Offer 15. 二进制中1的个数 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de- ...
- Linux从头学09:x86 处理器如何进行-层层的内存保护?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- 如何打一个RPM包
如何打一个RPM包 参考链接:RPM打包原理.示例.详解及备查 前言 本文只是一个RPM安装的例子,并没有对RPM做比较详尽的叙述,更为详尽的讲解,可以在上面的链接中找到. RPM是啥? RPM(Re ...
- ffplay 播放网络摄像头视频
shell脚本如下,无须加port ffplay rtsp://cameral_ip