一、RIPv1和RIPv2概况
1.RIP的报文结构
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报文中并不携带路由的目的网络掩码。
2.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)
该路由的度量值。