第七讲:距离矢量路由协议及路由环路
回顾昨天:提问:1、距离矢量路由协议包括哪几种?2、路由器是如何确定最佳路由的说出步骤?
今天内容:距离矢量路由协议及确保路由表条目的的正确的六种方法,及六种方法的结合使用。
一、距离矢量路由协议学习路由的方法首先明确一点,该协议并不能学到整个网络的拓扑。只能靠学习邻居路由表内容来学习路由。但每个路由表中只有最佳路径(也就是路由)。也就是说只有目的地方向(路由器接口)和距离,于是被叫距离矢量。
举例:高速路上开车,没有地图,出错,只能打听。而打听的人也不知道还要向另外的人打听(好比路由器问邻居路由器,邻居也不知道于是就要再问下一个邻居,这样收敛的速度可想而知)
1、距离矢量路由协议是通过传递路由更新
包来学习路由的(见图10-1),在图10-2到10-4是说明了RIP路由协议是怎样来学习路由的。在路由协议刚刚运行的时
候,路由器没有开始相互发送UPDATE
包,于是路由表里只有自己直连的网段,管理距离是0。如图10-2,路由器学到
了自己直连的网段后便开始向邻居路由
器发送更新包了,此包里包含我们发布
的路由。(一台路由器所直接连接的网段
必须发布在路由协议里才能够被放到
UPDATE包里传送)这样路由器就学到
了其他路由器的路由了见图10-3。路由
器学到了邻居的路由再打包向邻居发,
这样所有路由器会学到所有的路由条
目。如图10-4(注意此图的RIP为RIPV2,找同学说为什么)
#########注意:从以上可以看出距离矢量路由协议就是靠和邻居之间周期性的交换路由表来一步一步学到远端路由的#######
2、路由更新包的格式决定了路由协议是有
类还是无类。
实际上有类的路由协议出现的比较早,当时没有出现子网。路由学到的都是正规的ABC 类网段。RIP V1等距离矢量路由协议的更
新包里没有放掩码位的地方,虽然能学到子网的网段但没有掩码来确定网络位,于是把学到的子网网段自动归为主类网从而学不到子网变成了事实。
RIP V2加入了放掩码的空间于是能用该掩码与学到的IP做与的运算,于是能学到子网
特例:见图10-5与昨天讲的图9-8做比较
原理:在有类的IP路由协议里有这样一个规定:当路由器从一个接口学到的网段和配置在这个接口上的IP地址属于同一个主类网时,可以用配置在该接口上的子网掩码作为所学到那个网段的子网掩码。
二、距离矢量路由协议保证路由表正确的
六种方法
路由环路是任何路由协议都要避免的路由故障,发生路由环路时,路由器的路由表会频繁的变化,从而造成路由表中的某一条或几条,甚至整个路由表都无法收敛,结果使网络处于瘫痪或半瘫痪状态。
1、路由环路是如何产生的(见课件10-6
-10)
2、保证路由表正确的六种方法
(1)最大度量值
不同协议的度量值不同,RIP规定最大跳数为16,到达16时将认为无效路由将其丢掉,于是最大网络直径15跳。16台路由器。而IGRP协议的算法比较复杂,最大度量值为4294967295。(2)水平分割
最大度量值的方法只能在环路产生之后才会有效。而我们要制定一个策略尽量制止环路的产生。即水平分割。
水平分割就是对一台路由器来说,从一个方向学来的路由信息,不能再放入发回那个方向的路由更新包并且发回那个方向(见图10-11)
(3)路由中毒
水平分割只能避免出现路由环路,可是从上图可以看到,路由器A和B中依然有到错误网段的路由表条目,那么路由协议要有一种机制自己的网段如果出错了,可以告诉别的路由器。(见图10
-12)
(4)反向下毒
在图中的路由器A和B都被下毒后它们会继续向自己的邻居下毒,同时为了保证整个网络中的路由器都被下毒它们会向毒源的方向下毒,(这种方式是不是违反水平分割??但这是被允许的)图10-13
(5)保持时间
如果只有路由中毒还是会出问题如图1―14当B被下毒后,把升级包刚要发给A的时候,却被A的UPDATA包抢先发过来,占据了B的路由表,下毒的路由条目又被使能,之后向所有邻居发送错误信息。再次环路。
针对这种现象我们做了保持时间,即在“可能DOWN”的状态下要保持一定时间,在些时间内,即使收到了别的升级包(度量值相等或更差)也不会改变“可能DOWN”的状态,直到一定时间后,整个网络可能都已经收敛为止。
(6)触发更新
我们知道了路由器是周期性的发送更新包,如果网络一旦出现故障。则要等到下一个周期才能发。那么将会造成网络中大量的数据包被错错误的路由到已经坏掉或都漰溃的路由器上。造成路由黑洞。路由更新就是为了解决这个问题的,一旦有错误发生会马上触发更新包通知给邻居路由器。