路由协议02-距离矢量协议的设计思路
距离矢量路由协议的设计思路非常简单,总结下来为一句话
每个路由器向相邻的路由器定期广播自己的路由表,就相当于路由器之间共享自己的地图,好让所有路由器可以知道路由的全貌以便达到一致。
基于上述的设计思路,所有的距离矢量路由选择协议涉及以下几个方面:
1. 定期更新:周期性的发送更新信息,RIP为30s。
2. 邻居:共享相同数据链路的路由器(物理上连接的)或逻辑邻接(物理不接,逻辑邻接)
3. 广播更新:向广播地址发送更新信息。RIPv1是255.255.255.255, RIPv2是224.0.0.9
4. 全路由表更新:大多数距离矢量路由协议都是广播整个路由表,但是这样开销较大,并且有弊端
基于以上的设计思路后,在实践中遇到了以下几个问题
1. 路由黑洞:与目的网络直连的路由器故障了,无法对外更新目标路由不可达,因此持续的有数据表发送到目标网络,但由于路由器故障无法可达。
解决方法:给每一条路由设置失效计时器。计时器的周期范围一般为3-6个更新周期。
2. 逆向路由+相邻路由器之间的路由环路:A-B相邻,A把来自B的路由信息发给B,B再发给A,A再发挥B,无穷尽下去,导致路由环路
解决方法:水平分割(简单水平分割+毒性逆转水平分割)
简单水平分割:A不向B发送本就是B发来的路由信息
毒性逆转水平分割:A向B发送本就是B发来的路由信息,但是更新中将度量值设置为无穷大,不可达。
3. 网络中的路由环路
解决方法:计数到无穷大,设置最大跳数为16,即为无穷大
4. 周期性更新不灵活,无法立即发送故障信息
解决方法:触发更新,路由器主动立刻发
5.路由器有可能接收到错误的路由信息
解决方法:设置抑制计时器。就是让路由器等一等,等计时器超时了,也没有收到其他冲突的路由信息后,再更新路由表