1. RIP路由协议
RIP(Routing information Protocol)是早期第一代动态路由协议,是一种基于距离矢量(Distance-Vector)算法来计算到达目的网络的最佳路径路由协议,它通过UDP报文进行路由信息的交换,使用的端口号为520,RIP是基于跳数(最多支持15跳)来衡量到达目的地址的距离,称为度量值,RIP协议有多个版本,分为v1/v2/ng版。
2.RIP路由协议原理
RIPv1版本的RIP协议是支持有类ip地址的协议,在所有路由器上启动RIP协议,路由器便会自动向邻居通告自己所知道的路由信息,同时接收邻居通告过来的路由信息,最终自动建立完整的路由表。比如:路由设备R1,R2,R3都启动了RIP协议,然后它们都通告一遍自身的本地网络号,然后这些路由设备都会共享这些本地网络号。
RIPv2路由协议是针对RIPv1协议的不足衍生出来的一种升级版无类路由协议,也是基于距离矢量的协议。
但是RIPv2更加具有可扩展性,发送分组(数据报)中含有子网掩码信息,支持VLSM,但默认该协议开启了自动汇总功能,所以如需向不同主类网络发送子网信息,需要手工关闭自动汇总功能(no auto-summary),RIPV2只支持将路由汇总至主类网络,无法将不同主类网络汇总,所以不支持CIDR。使用多播224.0.0.9进行路由更新,只有对应的多播MAC地址能够响应分组。
图1-RIPv1路由协议工作原理
路由器刚开始启动时,路由表中只会包含直连路由(相邻的邻居路由)。当R1设备和R2设备运行RIP路由协议之后, 路由器会发送Request广播报文(广播包都是以目标地址为255.255.255.255),用来请求邻居路由器的RIP路由。运行RIP的邻居路由器收到该Request广播报文后,会根据自己的路由表,生成Response报文进行单播的方式回复。路由器在收到Response报文后,会将相应的路由添加到自己的路由表中。
当接收到响应路由时会依据度量值的大小来判断路由的好坏,把度量值小的路由放入路由表中,判断过程如下:
1.先查看自己的路由表中是否有该路由信息
2.如果没有就添加该路由
3.如果有,那么只在新度量值较小时才更新
RIP网络稳定以后,每个路由器会周期性地向邻居路由器通告自己的整张路由表中的路由信息,默认周期为30秒。邻居路由器根据收到的路由信息刷新自己的路由表。当检测到更新时,会向邻居发送触发更新,通知路由发生变化了。
3.RIP路由协议报文结构
RIPv1报文结构
RIPv1报文结构
RIPv1报文中各个字段的含义如下。
命令字段(command)
值为1时该报文为Request报文,用于直接向直连路由器请求全部或部分路由信息。
值为2时该报文为Response报文,用于发送路由更新,该报文可以作为对Request报文的回应,也可以是路由器自主发送的,例如周期性发送路由更新或者触发性发送路由更新。一个Response报文最多可以携带25个路由条目,当待发送的路由数量大于该值时,需使用多个Response报文。
版本字段(Version)
在RIPv1中,该字段的值为1。
地址族标识符(Address family identifier)
该字段值为2时表示IP协议。如果该报文为Request报文并且是用于向直连路由器请求其整张路由表,则该字段值被设置为0,同时这个Request报文中包含且只包含一个路由条目,该路由的目的网络地址为0.0.0.0,度量值为16。
IP地址(IP Address)
路由的目的网络地址。
度量值(Metric)
路由的度量值。
值得注意的是,RIPv1的Response报文中并不携带路由的目的网络掩码。
RIPv2报文结构
RIPv2报文结构
RIPv2报文中各个字段的含义如下
命令字段(Command)
与RIPv1类似,不再赘述。
版本字段(Version)
在RIPv2中,该字段的值为2。
地址族标识符(Address Family Identifier)
与RIPv1类似,不再赘述。
路由标记(Route Tag)
用于为路由设置标记信息,缺省为0.当一条外部路由被引入RIP从而形成一条RIP路由时,RIP可以为该路由设置路由标记,当这条路由在整个RIP域内传播时,路由标记不会丢失。
IP地址(IP Adderss)
路由的目的网络地址。
网络掩码(Netmask)
RIPv1路由器在通告路由时是不携带目的网络掩码的,这是因为在RIPv1的报文中并没有定义相应的字段,这使得RIPv1无法支持VLSM。RIPv2在这一点上做了改进,定义了该字段用于存储路由条目的目的网络掩码,如此一来,RIPv2便能够支持VLSM。
下一跳(Next Hop)
RIPv2定义了该字段,使得路由器在多路访问网络上可以避免次优路径现象。一般情况下,在路由器所发送的路由更新中,路由条目“下一跳”字段会被设置为0.0.0.0,此时收到该路由的路由器将路由条目加载到路由表时,将路由的更新源视为到达目的网段的下一跳。在某些特殊的场景下,该字段值会被设置为非0.0.0.0。
度量值(Metric)
该路由的度量值。
4.RIP路由协议的特点
RIP协议的特点从以下几个方面来说:
OSI层次:应用层协议,基于UDP端口520
算法特征:距离矢量协议
有类无类:RIPv1为有类、RIPv2为无类
运行范围:IGP内部网关协议
最佳路径:管理距离120、度量值:跳数(路由器的个数)
5.RIPv1和RIPv2的区别
RIPv1 | RIPv2 |
---|---|
有类,不携带子网掩码 | 无类,携带子网掩码 |
广播更新 | 组播更新(224.0.0.9) |
周期性更新(30S) | 触发更新 |
不支持VLSM、CIDR | 支持VLSM、不支持CIDR汇总,但是可以传递CIDR汇总 |
不提供认证 | 提供明文和MD5认证 |