距离矢量路由协议路由环路问题的解决
- 格式:doc
- 大小:28.00 KB
- 文档页数:2
网络工程师基础知识(选择题)模拟试卷29(题后含答案及解析) 题型有:1.1.在路由器中,可用以下______命令查看路由器的路由表。
A.arp-aB.tracerouteC.route printD.display ip routing-table正确答案:D解析:arp-a:查看所有MAC地址与IP地址间的地址解析列表。
traceroute:Linux命令,在MS Windows中为tracert。
通过该命令可以知道信息从你的计算机到互联网另一端的主机走的是什么路径。
route print:显示主机路由表的内容。
路由表分为五列:第一列是网络目的地址,列出了路由器连接的所有网段;网络掩码列提供这个网段本身的子网掩码,而不是连接到这个网段的网卡的子网掩码;第三列是网关,网关表告诉路由器这个数据包应该转发到哪一个IP地址才能到达目的网络;接口列告诉路由器哪一个网卡连接到了合适的目的网络,从技术上说,接口列仅告诉路由器分配给网卡的IP地址;最后一列是测量。
display ip routing-table:用来查看路由表的摘要信息。
该命令以摘要的形式显示路由表信息,每一行代表一条路由内容,包括目的地址/掩码长度、协议优先级度量值、下一跳输出接口,使用该命令仅能查看到当前被使用的路由,即最佳路由。
2.关于距离矢量的算法,以下说法错误的是______。
A.距离矢量算法不会产生路由环路问题B.距离矢量算法是靠传递路由信息来实现的C.路由信息的矢量表示法是(目标网络,metric)D.使用距离矢量算法的协议只从自己的邻居获得信息正确答案:A解析:距离矢量路由算法是一种路由算法,该法在一个路由中重申跳数来寻找一个最短路径生成树。
距离矢量路由算法号召每个路由器在每次更新时发送它的整个路由表,但是仅仅发给它的邻居。
距离矢量路由算法倾向于路由循环,但是比链路状态路由算法更简单。
距离矢量路由协议中路由环路问题的解决方法如下:.定义最大值;.水平分割技术;.路由中毒;.反向路由中毒;.控制更新时间;.触发更新。
解决路由器环路现象的方法路由器环路是指在计算机网络中,数据包在网络中传递时被路由器错误地传送回遍历的路径上,造成数据包不断循环。
这会导致网络拥塞、延迟增加甚至服务不可达等问题。
为了解决路由器环路现象,可以采取以下方法。
1.使用距离矢量路由协议(DVRP)距离矢量路由协议(Distance Vector Routing Protocol)是一种简单的路由选择算法,通过在网络中交换信息来建立路由表,并使网络中的每个路由器都能计算出到目的地的最佳路径。
DVRP可以避免环路形成,因为它使用了路由器之间的距离来计算路径成本,而不是直接通过之前的路径。
2.使用链路状态路由协议(LSRP)链路状态路由协议(Link State Routing Protocol)是一种更复杂的路由选择算法,它将网络中的每个路由器的链路状态信息(如带宽、延迟等)存储在路由器的链路状态数据库中。
通过交换链路状态信息,每个路由器可以计算出到目的地的最佳路径,并使用该路径转发数据包。
同样,LSRP可以避免环路形成,因为它计算路径时会考虑链路状态信息。
3.使用回环检测机制回环检测机制是一种可以检测并阻止环路的方法。
在实现中,路由器在转发数据包时,将数据包的源IP地址和传来的接口信息保存下来。
当同样的数据包重新出现在相同的接口上时,说明存在环路,路由器可以使用回环检测机制,丢弃数据包,阻止环路的产生。
4.利用路由器控制平面与数据平面分离路由器控制平面与数据平面分离是一种新兴的网络架构,它将路由器的控制决策从数据平面分离开来。
通过将控制平面与数据平面分离,可以在控制平面中实现环路检测和避免环路的算法,从而更好地管理网络中的路由器。
5.使用链路聚合技术链路聚合技术(Link Aggregation)是将多个链路捆绑为一个逻辑链路的技术。
在链路聚合中,多个链路可以同时传输数据,增加带宽和可靠性。
同时,通过链路聚合,可以避免环路的产生,因为传输数据的路径是预先配置好的,不会产生循环路径。
距离矢量路由算法距离矢量路由算法是一种常用的路由协议算法,用于在一张网络拓扑图中计算一个节点到其它节点的最短路径,从而实现数据包的转发和路由选择。
本文将详细介绍距离矢量路由算法的原理、实现和优化方法。
一、距离矢量路由算法原理距离矢量路由算法是一种分布式算法,它的核心思想是每个节点通过交换路由信息来建立一个网络的路由表,并根据这张表来进行数据包的转发。
在距离矢量路由算法中,每个节点都会维护一个距离向量,它表示从当前节点到其它节点的距离。
距离向量包含三部分信息:到达某个节点的距离、中转节点和前缀信息。
其中,到达某个节点的距离可以采用最小跳数、带权重的跳数或延迟时间等方式来衡量。
在距离矢量路由算法中,每个节点都会周期性地向邻居节点广播自己的距离向量,并接收邻居节点的距离向量。
通过比较邻居节点的距离向量和自己的距离向量来更新自己的路由表。
如果邻居节点的距离更小,则更新路由表;如果邻居节点的距离更大,则不做任何操作。
这样,所有的节点都会逐步收敛到一个稳定状态,每个节点的路由表也会被更新成最优路由。
二、距离矢量路由算法实现距离矢量路由算法的实现通常可以分为两个阶段:初始化和更新。
在初始化阶段,每个节点都会初始化自己的距离向量和路由表,并向邻居节点发送距离向量。
在更新阶段,每个节点会周期性地接收邻居节点的距离向量,比较并更新自己的路由表,然后向邻居节点发送自己的距离向量。
具体实现的过程如下:1. 初始化阶段:(1)每个节点都向其它节点广播自己的距离向量,并保存邻居节点的距离向量。
(2)每个节点都根据邻居节点的距离向量更新自己的路由表,并确定最短路径。
2. 更新阶段:(1)每个节点周期性地向邻居节点发送自己的距离向量。
(2)每个节点周期性地接收邻居节点的距离向量,并比较以更新自己的路由表。
(3)如果某个节点的距离向量发生了变化,则它会向其它节点广播自己的距离向量。
三、距离矢量路由算法优化距离矢量路由算法是一种简单有效的路由协议算法,但也存在一些问题。
路由环路什么是路由环路?路由环路是指数据包在一系列路由器之间不断传输却始终无法到达其预期目的网络的一种现象。
当两台或多台路由器的路由信息中存在错误地指向不可达目的网络的有效路径时,就可能发生路由环路。
造成环路的可能原因有:.静态路由配置错误.路由重分布配置错误.发生了改变的网络中收敛速度缓慢,不一致的路由表未能得到更新.错误配置或添加了丢弃的路由距离矢量路由协议的工作方式比较简单。
其简单性导致它容易存在诸如路由环路之类的缺陷。
在链路状态路由协议中,路由环路较为少见,但在某些情况下也会发生。
注:IP 协议自身包含防止数据包在网络中无休止传输的机制。
IP 设置了生存时间 (TTL) 字段,每经过一台路由器,该值都会减 1。
如果 TTL 变为零,则路由器将丢弃该数据包。
路由环路会造成什么影响?路由环路会对网络造成严重影响,导致网络性能降低,甚至使网络瘫痪。
路由环路可能造成以下后果:.环路的路由器占用链路带宽来反复收发流量。
.路由器的 CPU 因不断循环数据包而不堪重负。
.路由器的 CPU 承担了无用的数据包转发工作,从而影响到网络收敛。
.路由更新可能会丢失或无法得到及时处理。
这些状况可能会导致更多的路由环路,使情况进一步恶化。
.数据包可能丢失在“黑洞”中。
路由环路一般是由距离矢量路由协议引发的,目前有多种机制可以消除路由环路。
这些机制包括:.定义最大度量以防止计数至无穷大.抑制计时器.水平分割.路由毒化或毒性反转.触发更新问题:计数值无穷大当不正确的路由更新无休止地增加不再可达的网络的度量值时,就会出现"计数至无穷大"下面我们来分析下三台路由器不定时地发送更新时,路由表会出现的情况:1.当10.4.0.0断开的时候,r3中的有关于10.0.0.0的网络是不可达的在r3未发送更新之前,r2向r3发送更新,此时r3中有关于10.4网络的跳数变为了2,随后,r3向r2发送更新路由表中10.4网络的跳数为3,接着r2会向r1发送更新,r1中有关于10.4.0.0的条目的跳数为4第二轮更新为:r2向r3发送更新,此时r3中有关于10.4网络的跳数变为了4,随后,r3向r2发送更新路由表中10.4网络的跳数为5,接着r2会向r1发送更新,r1中有关于10.4.0.0的条目的跳数为6就这样不停地更新下去,从而无休止的更新这个不可达目的地的网络路由防止计数值无穷大的解决方法:为了防止度量无限增大,可以通过设置最大度量值来界定“无穷大”。
距离矢量路由协议中路由环路问题的解决方法概括来讲,主要分为六种:1.定义最大值;2.水平分割技术;3.路由中毒;4.反向路由中毒;5.控制更新时间;6.触发更新。
下面我们就来一一讲解各种解决方法的实现原理:1.定义最大值:距离矢量路由算法可以通过IP头中的生存时间(TTL)来纠错,但路由环路问题可能首先要求无穷计数。
为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(如rip协议最大值为16),比如跳数。
也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送15次,一旦达到最大值16,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。
2.水平分割:一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。
其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。
比如有三台路由器ABC,B向C学习到访问网络10.4.0.0的路径以后,不再向C声明自己可以通过C访问10.4.0.0网络的路径信息,A向B学习到访问10.4.0.0网络路径信息后,也不再向B声明,而一旦网络10.4.0.0发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达10.4.0.0的错误信息。
3.路由中毒(也称为路由毒化):定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。
为此,路由中毒就可以彻底解决这个问题。
其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。
RIP路由协议的防环机制作者:***来源:《电脑知识与技术》2024年第01期关键词:华为路由器;RIP协议;网络技术0 引言RIP路由协议是一种较为简单、基于距离矢量算法的内部网关协议,其功能设计简单,学习和部署成本较低,适合在小规模网络中使用[3]。
RIP路由协议使用多播而不是广播进行路由更新,不仅减少了带宽占用量,也减少了网络拥塞的风險。
尽管RIP路由协议存在一些性能瓶颈和潜在的安全隐患,但它仍然是一款值得使用的路由协议,特别是在小型网络中,RIP路由协议的优点可以发挥更好的作用。
RIP路由协议面临最大的问题就是路由环路,其协议本身的算法并不具备解决环路的能力,但RIP协议中提供了3种机制来解决:水平分割、毒性逆转、触发更新。
1 RIP 协议简介RIP包括RIP v1和RIP v2两个版本,两个版本均使用基于跳数的距离度量,最大跳数为15。
在计算路径时,使用基于距离的最短路径算法。
RIP v1采用基于UDP的面向无连接通信协议,其基本思想是Router 将本节点的路由信息发送给周围节点,接收到其他节点发来的路由信息后,将其加入自身的路由表中,然后更新周围节点的路由表。
路由更新的间隔时间默认为30秒,路由失效时间默认为180秒。
因为 RIP v1 性能较差,安全性也不高(没有身份验证和加密),所以常常会被攻击和利用。
RIP v2行在TCP/IP 应用层,能够与协议栈的其他部分通信,并在RIP v1的基础上增加了路由间的子网和掩码信息,因此可以支持VLSM(可变长度子网掩码)。
RIP v2还在协议中增加了身份验证和加密功能,提高了安全性,并且使用多播而不是广播进行路由更新,节约了带宽资源。
总体来说,RIP是一种简单且易于实现和维护的协议,可以用于小型网络,但由于其性能和安全性问题,它不适合大型企业级网络。
2 路由环路2.1 产生环路的原因RIP(Routing Information Protocol)产生环路的主要原因是采用距离向量算法,即以跳数作为衡量路径优劣的标准[4]。
网络工程师考试试题(含答案)一、单项选择题1.在RIP协议中,可以采用水平分割法()解决路由环路问题,下面的说法中正确的是()。
A.把网络分割成不同的区域以减少路由循环B.不要把从一个邻居学习到的路由再发送回该邻居C.设置邻居之间的路由度量为无限大D.路由器必须把整个路由表发送给自己的邻居【解析】水平分割算法的原理是:路由器必须有选择地将路由表中的路由信息发送给相邻的其他路由器,而不是发送整个路由表。
具体地说,即一条路由信息不会被发送给该信息的来源方向。
【正确答案】B2.包过滤防火墙通过()来确定数据包是否能通过。
A.路由表B.ARP表C.NAT表D.过滤规则【解析】路由表是用来决定数字包转发方向的。
ARP表是用来解析网络层地址和数据链路层地址的对应关系的。
NA T表是用来转换内网地址和外网地址的转换关系的。
只有过滤规则是用来决定数据包是否可以通过的。
【正确答案】D3.采用CRC校验的生成多项式为G()=x16+x15+x2+1,它产生的校验码是位。
A.2B.4C.16D.32【解析】多项式最高次为16,意味着校验码是16位。
【正确答案】C4.使用RAID作为网络存储设备有许多好处,以下关于RAID的叙述中不正确的是()。
A.RAID使用多块廉价磁盘阵列构成,提高了性能价格比B.RAID采用交叉存取技术,提高了访问速度C.RAID0使用磁盘镜像技术,提高了可靠性D.RAID3利用一台奇偶校验盘完成容错功能,减少了冗余磁盘数量【解析】磁盘镜像是RAID1。
【正确答案】C5.在距离矢量路由协议中,可以使用多种方法防止路由循环,以下选项中,不属于这些方法的是()。
A.垂直翻转()B.水平分裂()C.反向路由中毒()D.设置最大度量值()【解析】此题主要考查了D-V算法收敛性的几种解决方法。
路由环的问题可以理解为跳数无穷大的问题。
解决方法有如下几种:设置最大度量值():使用这种方法,路由协议在向量距离超过协议允许的最大值前,允许路由环路的存在,一旦路由信息的向量距离超过规定的最大值,该路由信息将被标记为不可到达。
距离矢量路由协议中路由环路问题的解决方法概括来讲,主要分为六种:
1.定义最大值;
2.水平分割技术;
3.路由中毒;
4.反向路由中毒;
5.控制更新时间;
6.触发更新。
下面我们就来一一讲解各种解决方法的实现原理:
1.定义最大值:
距离矢量路由算法可以通过IP头中的生存时间(TTL)来纠错,但路由环路问题可能首先要求无穷计数。
为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(如rip协议最大值为16),比如跳数。
也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送15次,一旦达到最大值16,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。
2.水平分割:
一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。
其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。
比如有三台路由器ABC,B向C学习到访问网络10.4.0.0的路径以后,不再向C声明自己可以通过C访问10.4.0.0网络的路径信息,A
向B学习到访问10.4.0.0网络路径信息后,也不再向B声明,而一旦网络
10.4.0.0发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达10.4.0.0的错误信息。
3.路由中毒(也称为路由毒化):
定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。
为此,路由中毒就可以彻底解决这个问题。
其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。
4.反向中毒(也称为毒化逆转):
结合上面的例子,当路由器B看到到达网络10.4.0.0的度量值为无穷大的时候,就发送一个叫做毒化逆转的更新信息给C路由器,说明10.4.0.0这个网络不可达到,这是超越水平分割的一个特列,这样保证所有的路由器都接受到了毒化的路由信息。
5.控制更新时间(即抑制计时器):
抑制计时器用于阻止定期更新的消息在不恰当的时间内重置一个已经坏掉的路由。
抑制计时器告诉路由器把可能影响路由的任何改变暂时保持一段时间,抑制时间通常比更新信息发送到整个网络的时间要长。
当路由器从邻居接收到以前能够访问的网络现在不能访问的更新后,就将该路由标记为不可访问,并启动一个抑制计时器,如果再次收到从邻居发送来的更新信息,包含一个比原来路径具有更好度量值的路由,就标记为可以访问,并取消抑制计时器。
如果在抑制计时器超时之前从不同邻居收到的更新信息包含的度量值比以前的更差,更新将被忽略,这样可以有更多的时间让更新信息传遍整个网络。
6.触发更新:
正常情况下,路由器会定期将路由表发送给邻居路由器。
而触发更新就是立刻发送路由更新信息,以响应某些变化。
检测到网络故障的路由器会立即发送一个更新信息给邻居路由器,并依次产生触发更新通知它们的邻居路由器,使整个网络上的路由器在最短的时间内收到更新信息,从而快速了解整个网络的变化。
但这样也是有问题存在,有可能包含更新信息的数据包被某些网络中的链路丢失或损坏,其他路由器没能及时收到触发更新,因此就产生了结合抑制的触发更新,抑制规则要求一旦路由无效,在抑制时间内,到达同一目的地有同样或更差度量值的路由将会被忽略,这样触发更新将有时间传遍整个网络,从而避免了已经损坏的路由重新插入到已经收到触发更新的邻居中,也就解决了路由环路的问题。
其中的路由中毒和反向中毒在提示一下:
路由中毒:是指在路由信息在路由表中失效时,先将度量值变为无穷大,而不是马上从路由表中删掉这条路由信息。
(这句话要理解,如RIP协议中,其度量值变为16,意味着路由不可达)再将其信息发布出去,这样相邻的路由器就得知这条路由己无效了.....
毒性反转与路由中毒概念是不一样的,它是指收到路由中毒消息的路由器,不遵守水平分割原则将中毒消息转发给所有的相邻路由器,也包括发送中毒信息的源路由器,也就是通告相邻路由器这条路由信息己失效了,主要目的是达到快速收敛的目的。