标签:
1) 距离矢量路由选择协议
大多数的路由选择协议都归于两类:距离矢量(distance ventor)和链路状态(link state);
首先距离矢量的路由是以矢量(距离,方向)的方式通告出去的,其中距离根据度量定义,方向根据吓一跳路由器定义。例如:目标A在下一跳路由器方向的5跳之远。
距离矢量路由选择协议是依照传闻进行路由选择的,每台路由器通过向邻接路由器学习它们所观察到的路由信息,然后向外通告自己观察到的路由信息,依次类推。
例如:IP路由选择信息协议(RIP)、internet网关路由选择协议(IGRP)、增强型网关路由选择协议(EIGRP)就是距离矢量路由选择协议。
距离矢量路由选择协议通常使用一个路由选择算法,算法中的路由器通过广播整个路由表,定期的向所有邻居发送路由更新信息。
主要属性如下:
图1.4.3
如图1.4.3,假如把如图网络的总收敛时间分片为t0+t1+t2,那么:
路由失效计时器:
如图1.4.3,在网络收敛后,当路由器R3发生故障,而网络192.168.4.0/24没有故障,那么路由器R1和R2中还是保留着达到网络192.168.4.0/24的信息,当有数据需要发送到192.168.4.0/24时,R2将继续把数据包转发给R3,而R3不可达,这样就相当于在网络上打开了一个黑洞。
所以在处理如上问题的时候,路由器的路由表中都设置了路由失效计时器,当R3不再往R2发送路由信息的时候计时器会超时,把从R3中获取的路由信息标记为不可达。
水平分隔:
如图1.4.3,在网络收敛后,当网络192.168.4.0/24发生故障的时候,R3将192.168.4.0/24标记为不可达并在下一更新周期时通告给R2,但是同时R2也会通告给R3,我这里有达到网络192.168.4.0/24的路由信息,跳数为1跳,而R3在更新路由表时把这个路由信息(到达网络192.168.4.0/24的路由跳数为2跳,下一跳为R2)存储在本地的路由表中。
那么这时当有数据包从R2转发到网络192.168.4.0/24时,会把数据包传送给R3,而R3查询路由表后又会把数据包传送给R2,依此类推,导致路由环路。
这个时候我们可以通过执行水平分隔的方式阻止环路的发生。分为简单水平分隔和毒性水平分隔。
简单水平分隔:从某接口发送更新消息不能包含从该接口收到的更新消息中所包含的网络;即图1.4.3中R2向R3发送的更新消息中不包含从R3获取到的关于192.168.4.0/24的信息。
毒性水平分隔:当更新信息被发送出某接口时,信息中将指定从该信息中获取的网络是不可达的;即图1.4.3中R2向R3通告了192.168.4.0/24的路由信息,但是R3认为R2发过来的路由信息都不可达。
计数到无穷大:
水平分隔切断了邻居之间的环路,但是它不能割断网络中的环路。
如图1.4.4所示,当网络192.168.7.0/24发生故障时,R1将标记192.168.7.0/24不可达,同时R1将向R2和R3通告192.168.7.0/24不可达,而在此时R4正在向外通告到达网络192.168.7.0/24可达,跳数为3跳/下一跳为R3的路由信息;这个时候R2和R3会把这个可达信息在加1后加入到路由表中并通告给R1,R1在没有其它更优路径可选的情况下也会将这个可达信息加入到本地路由表中,跳数为6跳;
那么在R4中有数据包发往R3---》R1---》R2—》R4,依次类推一直以跳数+1的方式环路,跳数计数到无穷大。
为解决如上问题,我们在路由器中设置最大跳数为15跳,路由器将跳数为16的路由视为不可达。
图1.4.4
触发更新:
为了提高收敛时间,在网络中设定如果一个度量变好或变坏,那么路由器将立即发送更新信息,而不等计时器超时。
注:抑制计时器,异步更新不在这里说了,想了解的请自行查资料。
标签:
原文地址:http://www.cnblogs.com/commanderzhu/p/4821864.html