路由环路的产生原因与解决方法

路由环路

路由环路就是数据包不断在这个网络传输,始终到达不了目的地,导致掉线或者网络瘫痪。

TTL (生存时间):数据包每经过一个路由器的转发,其数值减1,当一个数据包的TTL值为0是,路由器将不再转发而直接丢弃。

拓展配置

负载均衡

当路由器到达同一个目标,具有多条开销相似的路径时,可以让流量进行拆分后延多条路径同时传输,起到叠加带宽的效果。

建一个简单的拓扑方便理解:

在按拓扑中给出的IP配好路由器与PC的IP地址后,我们可以观察到R1的1.0网段与R3的6.0网段不直连,那么需要写一条到6.0网段上的静态路由,可是,我们在观察拓扑时发现有两条路可以走,一条是通过R2,一条是通过R4,这两条路开销值相等,所以我们在写的时候可以采用负载均衡的方式。

[R1]ip route-static 192.168.6.0 24 192.168.2.2
[R1]ip route-static 192.168.6.0 24 192.168.3.2

 

环回接口 (路由器的一个虚拟接口)

一般用于虚拟实验,而不受设备的限制(实的不行来虚的)。

建一个简单的拓扑方便理解:

因为R1、R2的环回接口不直连,所以应该配置静态路由,IP配置如下

[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R1]interface LoopBack 0
[R1-LoopBack0]ip add 192.168.1.1 24
[R1]int l1
[R1-LoopBack1]ip add 192.168.2.1 24

[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[R2-GigabitEthernet0/0/0]int l0
[R2-LoopBack0]ip add 192.168.3.1 24
[R2-LoopBack0]int l1
[R2-LoopBack1]ip add 192.168.4.1 24

[R1]ip route-static 192.168.3.0 24 12.0.0.2
[R1]ip route-static 192.168.4.0 24 12.0.0.2

[R2]ip route-static 192.168.1.0 24 12.0.0.1
[R2]ip route-static 192.168.2.0 24 12.0.0.1

然后再进行测试,看全网是否通,因为环回接口的特殊性,所以我们在ping的时候可以采用指定源IP地址的方式来ping,命令如下:

[r1]ping -a   // 指定源IP发送ping包

测试得全网通!

手工汇总

当路由器可以访问多个连续的子网时,若均通过相同的下一跳,可以将这些网段进行汇总操作,之后,仅需编辑到达汇总网段的静态路由即可。以达成减少路由条目,提高转发效率的目的。

还是使用之前环回接口处的拓扑,IP已配好,直接开始实验。

从环回接口处知道了R1的环回接口L0与L1的IP地址到达R2的环回口需要经过同样的下一跳,所以我们可以采用汇总的方式,以此减少路由条目。(如果不会汇总的朋友可以参考我之前的博客,关于CIDR的模块:CSDN

[R2]undo ip route-static 192.168.1.0 24 12.0.0.1
[R2]undo ip route-static 192.168.2.0 24 12.0.0.1
[R2]ip route-static 192.168.0.0 22 12.0.0.1   //手工汇总

测试依旧全网通!

 

路由黑洞 

在汇总中,如果包含网络内实际不存在的网段时,可能造成流量的有去无回,浪费链路资源。

还是使用之前环回接口处的拓扑,IP已配好,直接开始实验。

192.168.0.0/22划分:

192.168.0.0/24

192.168.1.0/24

192.168.2.0/24

192.168.3.0/24

合理的子网划分和汇总则可以减少路由黑洞的产生。

缺省路由

华为体系中也叫默认路由。一旦路由黑洞和缺省路由相遇,将100%出现路由环路。

缺省路由就是一条不限定目标的路由条目。缺省路由一定是路由表中所有路由条目都无法匹配时,才最后匹配。

[r1]ip route-static 0.0.0.0 0 12.0.0.2

[r1]ip route-static 0.0.0.0 0 12.0.0.2

空接口路由

用来解决缺省和黑洞相遇出环的问题。 --- 在黑洞路由器上配置一条指向汇总网段的空接口路由。

  1. 路由器的匹配原则 --- 最长匹配原则(精准匹配原则) ---- 数据包如果匹配到多条路由条目,将按照掩码最长的来执行。
  2. NULL0 --- 空接口 --- 虚拟接口 --- 如果一条路由条目,出接口为空接口,则如果匹配到这条路由条目,则将直接丢弃该数据包。 

[r1]ip route-static 192.168.0.0 22 NULL 0

浮动静态路由

通过修改默认的优先级,实现静态路由的备份效果。

[r1]ip route-static 192.168.2.0  24  21.0.0.2 preference 61 --- 手动修改静态路由的优先级

[r1]display ip routing-table protocol static --- 过滤静态路由

[r1-GigabitEthernet0/0/1]shutdown --- 手动关闭接口

解决路由环路问题的方法,概括来讲,主要分为六种:

1.定义最大值;

2.水平分割技术;

3.路由中毒;

4.反向路由中毒;

5.控制更新时间;

6.触发更新。

定义最大值距

离矢量路由算法可以通过IP头中的生存时间(TTL)自纠错,但路由环路问题可能首先要求无穷计数。为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(最大值为16),比如跳数。也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送15次,一旦达到最大值16,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。

水平分割

一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。其规则就是不向原始路由更新来的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。比如有三台路由器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的错误信息。

路由中毒(也称为路由毒化)

定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。为此,路由中毒就可以彻底解决这个问题。其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。

反向中毒(也称为毒化逆转)

结合上面的例子,当路由器B看到到达网络10.4.0.0的度量值为无穷大的时候,就发送一个叫做毒化逆转的更新信息给C路由器,说明10.4.0.0这个网络不可达到,这是超越水平分割的一个特列,这样保证所有的路由器都接受到了毒化的路由信息。

控制更新时间(即抑制计时器)

抑制计时器用于阻止定期更新的消息在不恰当的时间内重置一个已经坏掉的路由。抑制计时器告诉路由器把可能影响路由的任何改变暂时保持一段时间,抑制时间通常比更新信息发送到整个网络的时间要长。当路由器从邻居接收到以前能够访问的网络不能访问的更新后,就将该路由标记为不可访问,并启动一个抑制计时器,如果再次收到从邻居发送来的更新信息,包含一个比原来路径具有更好度量值的路由,就标记为可以访问,并取消抑制计时器。如果在抑制计时器超时之前从不同邻居收到的更新信息包含的度量值比以前的更差,更新将被忽略,这样可以有更多的时间让更新信息传遍整个网络。

触发更新

正常情况下,路由器会定期将路由表发送给邻居路由器。而触发更新就是立刻发送路由更新信息,以响应某些变化。检测到网络故障的路由器会立即发送一个更新信息给邻居路由器,并依次产生触发更新通知它们的邻居路由器,使整个网络上的路由器在最短的时间内收到更新信息,从而快速了解整个网络的变化。但这样也是有问题存在,有可能包含更新信息的数据包被某些网络中的链路丢失或损坏,其他路由器没能及时收到触发更新,因此就产生了结合抑制的触发更新,抑制规则要求一旦路由无效,在抑制时间内,到达同一目的地有同样或更差度量值的路由将会被忽略,这样触发更新将有时间传遍整个网络,从而避免了已经损坏的路由重新插入到已经收到触发更新的邻居中,也就解决了路由环路的问题。

AS --- 自治系统 --- 由单一组织或机构所管理的一些IP网络及其设备所构成的集合。

为了方便对AS进行管理 --- AS号 --- 16二进制构成 --- 0 - 65535(1 - 65534) --- 现在也有拓展版的AS号 --- 32位二进制构成

AS的通信

AS内部 --- IGP --- 内部网关协议 --- RIP,OSPF,IS-IS,EIGRP等

AS之间 --- EGP --- 外部网关协议 --- BGP

IGP还可以根据算法进行分类:

距离矢量型协议(DV) --- RIP --- 贝尔曼.福特算法(Bellman-Ford) ---- 直接传递路由信息 --- “依据传闻的路由协议”

链路状态型协议(LS) --- OSPF --- 传递的是LSA信息(链路状态通告) --- 拓扑信息 --- SPF(最短路径优先算法) --- 图形结构 --- 树形结构 ---树形结构不会出现环路

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值