Skip to main content

RIP报文格式

RIP是Routing Information Protocol(路由信息协议)的简称。它是一种较为简单的内部网关协议IGP(Interior Gateway Protocol),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。 

RIP是一种基于距离矢量(Distance-Vector)算法的协议。

RIP有两个版本:RIP-1和RIP-2。

  • RIP-1是有类别路由协议(Classful Routing Protocol),它只支持以广播方式发布协议报文。RIP-1的协议报文中没有携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1无法支持路由聚合,也不支持不连续子网(Discontiguous Subnet)。

  • RIP-2是一种无分类路由协议(Classless Routing Protocol),有两种报文传送方式:广播方式和组播方式,缺省将采用组播方式发送报文,使用的组播地址为224.0.0.9。当接口运行RIP-2广播方式时,也可接收RIP-1的报文。

协议栈结构

RIP通过UDP报文进行路由信息的交换,使用的端口号为520。

    +-------------------------------------+
    |                 RIP               |
    +-------------------------------------+
    |       UDP Header (Port = 520)     |
    +-------------------------------------+
    |             IPv4 Header             |
    +-------------------------------------+
    |                 L2                 |
    +-------------------------------------+
    |                 L1                 |
    +-------------------------------------+

RIP-1的报文格式

RIP-1报文由头部(Header)和多个路由表项(Route Entries)部分组成。在一个RIP报文中,最多可以有25个路由表项。RIP是一个基于UDP协议的,并且RIP-1的数据包不能超过512字节。

RIP-1报文格式
 0               7              15              23              31
 +---------------------------------------------------------------+
 |     Command | Version     |           Must be zero       |
 +---------------------------------------------------------------+
 | Address family identifier   |           Must be zero       |
 +---------------------------------------------------------------+
 |                           IP address                         |
 +---------------------------------------------------------------+
 |                           Must be zero                       |
 +---------------------------------------------------------------+
 |                           Must be zero                       |
 +---------------------------------------------------------------+
 |                             Metric                           |
 +---------------------------------------------------------------+
RIP-1报文字段解释
字段名 长度 含义
Command 8比特 标识报文的类型: 1:Request报文,向邻居请求全部或部分路由信息; 2:Response报文,发送自己全部或部分路由信息,一个Response报文中最多包含25个路由表项。
Version 8比特 RIP的版本号: 1:RIP-1 2:RIP-2
Must be zero 16/32比特 必须为零字段。
Address family identifier 16比特 地址族标识,其值为2时表示IP协议。对于Request报文,此字段值为0。
IP Address 32比特 该路由的目的IP地址,可以是自然网段的地址,也可以是子网地址或主机地址。
Metric 32比特 路由的开销值。对于Request报文,此字段值为16。

RIP-2的报文格式

RIP-2的报文格式
 0               7              15              23              31
 +---------------------------------------------------------------+
 |     Command | Version     |           Must be zero       |
 +---------------------------------------------------------------+
 | Address family identifier   |           Route Tag           |
 +---------------------------------------------------------------+
 |                           IP Address                         |
 +---------------------------------------------------------------+
 |                           Subnet Mask                         |
 +---------------------------------------------------------------+
 |                           Next Hop                           |
 +---------------------------------------------------------------+
 |                           Metric                             |
 +---------------------------------------------------------------+
RIP-2的报文格式字段解释
字段名 长度 含义
Command 8比特 标识报文的类型: 1:Request报文,向邻居请求全部或部分路由信息; 2:Reponse报文,发送自己全部或部分路由信息,一个Response报文中最多包含25个路由表项。
Version 8比特 RIP的版本号: 1:RIP-1 2:RIP-2
Must be zero 16比特 必须为零字段。
Address Family Identifier 16比特 地址族标识,其值为2时表示IP协议。对于Request报文,此字段值为0。
Route Tag 16比特 外部路由标记。
IP Address 32比特 该路由的目的IP地址,可以是自然网段的地址,也可以是子网地址或主机地址。
Subnet Mask 32比特 目的地址的掩码。
Next Hop 32比特 提供一个更好的下一跳地址。如果为0.0.0.0,则表示发布此路由的路由器地址就是最优下一跳地址。
Metric 32比特 路由的开销值。对于Request报文,此字段为16。

RIP-2的验证报文格式

RIP-2为了支持报文验证,使用第一个路由表项(Route Entry)作为验证项,并将AFI字段的值设为0xFFFF作为标识。

RIP-2的验证报文格式
 0               7              15              23              31
 +---------------------------------------------------------------+
 |     Command | Version     |             Unused           |
 +---------------------------------------------------------------+
 |         oxFFFF             |       Authentication Type     |
 +---------------------------------------------------------------+
 |                                                               |
 +                                                               +
 |                     Authentication                           |
 +                                                               +
 |                                                               |
 +                                                               +
 |                                                               |
 +---------------------------------------------------------------+
RIP-2的验证报文字段解释
字段名 长度 含义
Command 8比特 标识报文的类型: 1:Request报文,向邻居请求全部或部分路由信息; 2:Reponse报文,发送自己全部或部分路由信息,一个Response报文中最多包含25个路由表项。
Version 8比特 RIP的版本号: 1:RIP-1 2:RIP-2
Unused 16比特 保留未使用。
0xFFFF 16比特 验证项标识,表示整个路由报文需要验证。
Authentication Type 16比特 验证类型: 2:明文验证; 3:MD5验证。
Authentication 16字节 验证口令,当使用明文验证时该字段才会包含密码信息。

参考标准

文档编号 描述
RFC 1058 Routing Information Protocol
RFC 1721 RIP Version 2 Protocol Analysis
RFC 1722 RIP Version 2 Protocol Applicability Statement
RFC 1723 RIP Version 2 Carrying Additional Information
RFC 1724 RIP Version 2 MIB Extension
RFC 2082 RIP-2 MD5 Authentication
RFC 2453 RIP Version 2