路由按照配置方式又分为静态路由和动态路由两种。
静态路由是指管理员通过命令手工配置路由表来实现路由器之间的通信,静态路由虽然配置简单,但是工作量及其庞大,只适用于结构简单小型网络,且不易查错。那么遇到中大型网络,我们很难去对每一个路由器都进行路由表的配置,这个时候,我们就要使用到动态路由的方式来进行路由表的迭代。
什么是动态路由?什么是动态路由协议?
一般即指我们通常所说的动态路由协议。这是路由器用来计算、维护网络路由信息的协议,通常有一定的算法,工作在传输层或应用层。
动态路由是基于某种路由协议来实现的,路由协议定义了路由器在与其他路由器通信时的一些规则。动态路由协议就像路由器之间用来交流信息的语言,通过它,路由之间可以共享网络连接信息和状态信息。路由器也正是通过这种不同的语言,用不同的方式来进行路由表的迭代。
基于各个自治系统(AS)之间,动态路由还分为内部网关协议(IGP)和外部网关协议(EGP)两种。内部网关协议主要应用于自治系统中的网络通信,而外部网关协议应用于各个自治系统之间的通信。RIP协议就是IGP的其中一种。
RIP路由协议是什么?
RIP协议是最先得到广泛使用的一种路由协议,配置简单。是一种基于距离矢量算法的协议,它使用跳数作为度量来衡量到达目的网络的距离。RIP通过UDP报文进行路由信息的交换,使用的端口号为520。
RIP协议要求网络中每一台路由器都要维护从自身到每一个网络的路由信息。RIP协议使用跳数来衡量网络间的“距离”:从一台路由器到其直连网络的跳数定义为1;从一台路由器到其非直连网络的距离定义为:每经过一个路由器则距离加1。“距离”也称为跳数,RIP允许的最大跳数为15,当延伸到16时,即视为不可达。所以RIP一般只适用于小型网络。
1.RIP的工作原理
RIP协议启动时的初始路由表仅包含本设备的一些直连接口路由。通过相邻设备互相学习路由表项,才能实现各网段路由互通。当路由器发现直连网络发生更改时,会马上将路由表更新的信息以1跳的距离转发给所有相邻路由节点。其他路由器接收到更新信息后,以加1跳的距离继续向其他路由器转发。每个路由器收到更新信息,都会更新一遍自身的路由表信息。每个路由器平均每隔30s就从每个启动的RIP协议的接口发送路由更新信息。
目前RIP有两个版本,分为RIPv1和RIPv2,RIPv2是针对RIPv1进行补充,能够携带更多的信息量,并增强了安全性能。RIPv1和RIPv2都是基于UDP协议。
RIP协议完全依靠跳数来作为标准,在以下情况,R1通往R3的时候,就算2跳路径的传输速度远远大于1跳路径,RIP协议依然会选择这条10kbps的路径来进行传输。如果有特殊路径传输需要,可以手动干涉RIP的路径选择,增加路径的度量值来让其选择其他路径。
RIP路由环路问题
从第一个路由器开始,每经过一个路由器增加跳数1,为什么要设置最大跳数为15呢?是因为路由表装不下更多的路由信息吗?RIP协议之所以将路由器之间的最大跳数设置15以上不可到达,并不是因为路由表只记录以15跳为半径的网络结构。而是为了解决路由闭环的问题。
此AS系统使用RIP协议进行连接并能够互相通信,如下图所示。
1>路由器1断开了跟A网络的连接,并同时跟路由器2与路由器3发送更新报文。
2>因为链路堵塞,路由器2并没有接受到路由器1的更新报文。
3>路由器3收到路由器1的更新报文之后,将A网络从路由表中移除。
4>由于没有接受到路由器1的更新报文。30s后,路由器2发送更新报文,告诉路由器3网络A以2跳距离可达。
5>路由器3收到路由器2的更新报文,更新路由表,记录网络A以3跳距离可达,并将路由表更新信息转发给路由器1。
6>路由器1收到更新信息,更新路由表,网络A以4跳距离可达。并将更新报文发送给路由器2。如此往复。
由于计数到无穷大问题,当环路产生时,每经过一个路由器,都会将跳数加1,直到达到某一个峰值,路由器认为该路径不可达。才会将其删除。否则,路由环路将无休的进行下去。
水平分割法
在一定条件下,利用水平分割的方式可以有效的解决路由闭环的问题。
水平分割的原理是,RIP从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。
如果没有设置水平分割,路由器从某一个接口更新的路由信息,加1跳之后还会以此端口发送回去,两个路由器会不停的发送路由表更新信息,直到跳数达到峰值。设置水平分割之后可以有效的改善路由环问题。
毒性反转法
毒性反转相对于水平分割法,可以更高效率的解决掉路由环路问题。
毒性反转法的原理是,RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达)。利用这种方式,可以清除对方路由表中的无用路由。
当某一路由器发现与某直连网络断开以后,直接将此网络跳数设为16,并向相邻路由设备更新路由信息。使其都更新为16跳不可达。
RIPv1和RIPv2的区别
RIPv1是有类的路由协议,严格区分ABC类网络。RIPv2是无类的路由协议,支持路由汇总。
RIPv1是通过广播的方式更新,RIPv2是通过组播方式更新。
RIPv1对路由没有标记功能,RIPv2可以给路由进行标记,用于过滤和策略。
RIPv1没有认证功能,RIPv2可以支持认证,并且有明文和MD5两种认证。