组织:中国互动出版网(http://www.china-pub.com/) RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm) E-mail:ouyang@china-pub.com 译者:熊劲松(zte_shawn, xiongjinsong@mail.zte.com.cn) 译文发布时间:2001-6-5 版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须 保留本文档的翻译及版权信息。 Network Working Group G. Malkin Request for Comments: 1723 Xylogics, Inc. Obsoletes: 1388 November 1994 Updates: 1058 Category: Standards Track 路由信息协议(版本2) ( RFC1723 RIP Version 2 Carrying Additional Information ) 本文档的状态 本文档详细说明了一种Internet标准的循路协议以及进一步的请求讨论和建议。 请参考最新版的“Internet正式协议标准(STD1)”来获得本协议的标准化程度和状态。 本文档的发布不受任何限制。 概要 本文档详细说明了正如定义在[1,2]中的路由信息协议的扩展,扩充了在RIP信息中携 带有用信息的数量,增加了安全措施。 在本文档的旧文档RFC1388中,描述了对“路由信息协议”STD34(RFC1058)的更 新信息。 RIP-2 协议分析参考文档RFC1721[4] IP-2 适用性陈述参考文档RFC1722[5] RIP-2 管理系统库的描述参考文档RFC1724[3] RFC1389是其旧文档 致谢 感谢ITTF ripv2 工作组对RIP-2协议改进提供帮助 目录 1、源由 . . . . . . . . . . . . . . . . . . …………….. . . . . . . 2 2. 现行的RIP协议 . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3. 协议扩展 . . . . . . . . . . . . . . . . ……………. . . . . . 3 3.1 认证 . . . . . . . . . . . . . . . . . . . ………… . . . 4 3.2 路由标签. . . . . . . . . . . . . . . . . . . ….. . . . . . . 4 3.3 子网掩码 . . . . . . . . . . . . . . . . . . . . ….. . . . . 5 3.4 下一跳 . . . . . . . . . . . . . . . . . . . . ….. . . . . . 5 3.5 组播 . . . . . . . . . . . . . . . . . . . . ………. . . . 5 3.6 请求与响应. . . . . . . . . . . . . . . . . . . . … . . . 6 4. 兼容性 . . . . . . . . . . . . . . . . . . ………….. . . . . . . 6 4.1 兼容转换 . . . . . . . . . . . . . . . . ……….. . . . 6 4.2 验证机制 . . . . . . . . . . . . . . . . . . . …….. . . 6 4.3 增加跳距极限限制. . . . . . . . . . . . . . . . . .. . . 7 4.4 无地址链接 . . . . . . . . . . . . . . . . . …… . . . . 7 5. 安全考虑 . . . . . . . . . . . . . . ……………… . . . . . 7 附录 A . . . . . . . . . . . . . . . . . . . . ………… . . . . . . . 8 参考文献. . . . . . . . . . . . . . . . . . . . . . . …………… . . . 8 作者地址 . . . . . . . . . . . . . . . . . . . . . . ………….. . . 9 1、 源由 随着OSPF和IS-IS协议的出现,有人认为RIP协议过时了。不可否认,新的IGP路由 协议比RIP协议优越得多,但RIP协议也有许多优点: 首先,在小型网络中,RIP协议在带宽使用、配置和管理时间上有一些优势。而且,RIP 协议特别是相对新的IGP协议来说十分容易去实现。 此外,现在RIP还在大量使用,这是OSPF与IS-IS所不能比的,并且这种情形还可能 持续好几年时间。 既然RIP在许多领域和一定时期内仍具有使用价值,那么就有理由增加RIP的有效性, 这是毫无疑问的,因为对已有技术进行改造所获收益比起彻底更新要现实得多。 2、现行的路由信息协议 现行的RIP数据包仅包含路由器为包在网络中路由所需的最少必需信息,由于其自身 的原因,RIP包中还有许多地址空间未用。 现行的RIP协议并没有考虑自治系统之间以及内部网关协议与外部网关协议之间的联 系,没有考虑子网和验证功能,这些问题要由后来的RIP协议加以解决。 因为路由器需要子网掩码来获知怎样去决定路由,故缺少子网掩码对路由器来说是一 个很严重的问题。如果RIP路由是网络路由(所有非网络号字节为零),则子网掩码就是网 络掩码;然而如果加入了主机号,路由器就不能确定出子网掩码号,同样不能确定是子网路 由还是主机路由。当前,一些路由器是通过路由学习来简单地选择接口的子网掩码和决定路 由类型的。 3. 协议的扩展 本文档对RIP协议本身没有做根本改变,只是对RIP数据包格式定义作了补充,来使 路由器享有一些重要的附加信息。 RIP数据包的首四位字节是RIP数据头,余下的字节由1到25个路由实体组成。新的路 由信息协议数据包格式定义如下: 0 8 16 31 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 命令 (1) | 版本 (1) | 未使用 | +-----------------+------------------+---------------------------------+ | 地址族标识符 (2) | 路由标签 (2) | +-------------------------------------+---------------------------------+ | IP 地址 (4) | +------------------------------------------------------------------------+ | 子网掩码 (4) | +------------------------------------------------------------------------+ | 下一跳 (4) | +-------------------------------------------------------------------------+ | 度量值 (4) | +-------------------------------------------------------------------------+ 其中命令域、地址族标识符域、IP地址域和度量值符域都保留了它们在RFC1058中的 定义。版本域被指定为2的RIP包将会支持使用验证机制和携带一些新的定义域信息;未 被使用的两个字节域继续保留不使用。 所有的字节域皆采用IP网络字节顺序来编码。 3.1、 验证功能 验证机制是数据包的功能,在RIP消息头中只有两个字节的空间可利用,然而任何合 理的验证算法都需要两字节以上的空间,所以对于RIP(版本2)的验证算法将使用整个RIP 消息体中一个实体空间来进行身份验证。 如果数据包中第一项实体(并且仅仅是第一项)的地址族标志符为0XFFFF,那么这 个实体的其它字节域就包含了验证所需的信息,也就是说RIP数据包中仅剩下最多包含24 个实体路由信息。如果不使用验证功能,则数据包中就没有含有地址族标志为0XFFFFFF 实体。具有验证功能的RIP数据包格式定义如下: 0 8 16 31 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 命令(1) | 版本 (1) | 未使用 | +--------------------+-----------------+---------------------------------------------+ | 0xFFFF | 验证类型 (2) | +---------------------------------------+---------------------------------------------+ ~ 验证信息 (16) ~ +--------------------------------------------------------------------------------------+ 现在,能确定的唯一的验证算法就是“明文验证”,它的类型是2,其余下的16个字节 包含了纯文本密码。如果密码大小少于16个字节,则位数向左对齐,右边补零。 3.2路由标签 路由标记字段的存在是为了支持外部网关协议(EGP)。有关与这个字段的使用已经超出 本协议的范围了。不论使用什么方法,这个字段被期望用于传递自治系统的标号给外部网关 协议以及边界网关协议(BGP)。任何RIP系统收到一个包含有非零路由标记字段的RIP包时, 必须重新对外广播收到的值。而没有路由标记的路由器必须将0作为自己的路由标记对外广 播。 路由标签域(RT)是分配给路由的一个属性,必须受到保护并随路由重发。路由标签 域的设置提供了把内部RIP路由与外部RIP路由(可能来于EGP和另一个IGP)隔离的方 法 除RIP以外的路由器支持的协议都应该能配置,以使路由标签能配置成从不同源输入的路 由。例如:从EGP或BGP输入的路由要么可以成任意值的路由标签,要么至少可设置成发来路由 的独立系统号。 在RIP领域中只要所有路由器协调的使用路由标签域,其许多使用是十分有效的,它 考虑了在BGP-RIP协议间交互文档的可能性,此交互文档描述了在传输网络中同步路由的 方法。 3.3 子网掩码 子网掩码域字段包含的子网掩码,对应于IP地址的网络号部分。如果其值为0,表示 这个实体中不包含子网掩码。 运行RIP-1的路由器在收听和处理RIP-2数据包时遵循以下原则: 1) 网络内部的路由信息不可以向其他的网络广播, 2) 有关特定子网的路由不能对运行RIP-1协议的路由器广播,因为它会误认为那是一个 到主机的路由, 3) 超网路由不能对运行RIP-1协议的路由器广播,因为它会被路由器曲解。 3.4、下一跳 指定一个包到一个特定地址的立即下一跳地址的路由器应该被路由通过的。如果这个 字段的值为0.0.0.0的话,说明这个路由是RIP广播发出者。每一个被指定的下一跳地址, 都必须是可以通过发送RIP广播的逻辑子网而直接抵达的。 增加下一跳地址字段的目的是消除包在发送的过程中不会增加不必要的跳数。当一个网 络上并不是所有的路由器都运行RIP时,下一跳地址字段就会显得特别有用。一个很简单 的例子就是附录A中给出的例子。注意,下一跳地址字段是一个可选的字段。也就是说, 如果这些信息被忽略了,路由仍绝对有效,但不一定是最佳的。如果下一跳地址不可直接到 达则地址将被设为0.0.0.0。 3.5 、组播 为了减轻那些不接受RIP-2包的主机的不必要的负载,一个ip组播地址将被用于周期 性的广播。这个ip组播地址为224.0.0.9。注意,IGMP是不需要的,因为RIP路由信息包 只是在本地网络上进行组播。 为了维持向后兼容性,组播的使用是可选择的,具体方法参考4.1节。如果使用组播的 话,应该使用在所以支持它的接口上。 3.6、 请求与响应 如果RIP-2 路由器收到一个RIP-1请求,它将以RIP-1包响应;如果这个路由器作了仅 发送RIP-2包配置,那么它将对RIP-1请求包不作响应。 4、兼容性 RFC 1058在对版本号的处理规范中十分有远见,它做了如下规定:丢弃版本号为0的 RIP数据包;丢弃字节域应为0(MBZ域)却不为0,且版本号为1的RIP数据包、不可简 单地丢弃MBZ域包含非0值,版本号大于1的RIP数据包。这就意味着支持实施这个现存 的处理规范,新的RIP版本将全面向后兼容。 4.1 兼容性转换 需要兼容转换有两个原因。首先,一些RIP-1并不按照在上面所谈到的在RFC1058中 的描述那样去实现。其次,组播的使用将会阻止RIP-1路由器收到RIP-2路由更新数据包(这 正是在某些情况下希望得到的信息)。 这种兼容转换在基于某个单一的接口是可配置的,有四种配置方法: RIP-1,表示只有 RIP-1数据包发送;RIP-1兼容,表示用广播的方法发送RIP-2数据包;RIP-2,表示用组播的 方法发送RIP-2路由信息包;为空,表示RIP数据包发送失效。推荐的方法是RIP-1兼容。 路由器通过RIP-1、RIP-2、“both”和“none”四种选择配置来决定对RIP数据包的接 收与否控制,达到了对RIP包收发控制的完整性。对RIP包收发控制也可对每一个接口作 相应的配置。 4.2 、验证机制 验证RIP数据包使用下面的算法规则。 如果路由器没有配置为对RIP-2数据包信息作验证,那么路由器将接收RIP-1和没有验 证信息的RIP-2数据包,对带有验证信息的RIP-2数据包作丢弃处理;如果路由器配置为对 RIP-2数据包信息作验证,那么路由器将接收RIP-1和通过验证的RIP-2数据包,对不带有 验证信息和没有通过验证的RIP-2数据包作丢弃处理。从最高安全考虑,当使用验证体制时, RIP-1数据包将会被忽略(参考章节4.1)。 验证机制是将RIP包中验证实体地址族标识符字段设置为0xffff来标识的。对RIP-1路 由器来说,这是一个非IP地址族的地址,这个RIP包将会被路由器抛弃。应当注意:使用 验证机制并不能阻止RIP-1路由器得到RIP-2路由信息包。如果你希望达到这种效果的话, 应当像在3.5及4.1节中描述的那样使用组播来发送你的RIP-2路由信息包。 4.3 增加跳距极限限制 一提到兼容性,有一些增加跳距极限限制的请求。增加跳距限制不能实行的主要原因在 于它会破坏向后兼容,会明显地使旧版本的RIP路由器产生混乱。最好是能够忽略这些路 由信息,就像他们要求忽略跳距极限大小为16一样。 也有建议使跳距字段为一个字节并对其它的三位高字节加以使用,但是这样会破坏对为 4个字节实体的度量值的实现。 4.4、 无地址链接 与RIP-1一样,RIP-2也不支持无地址链接。 5、安全考虑 基本的RIP协议不是一个安全协议,为把RIP-2融入更盛行的路由协议之列,这个增强 性的协议引入了一个可扩展的验证机制。这个机制的描述参考章节3.1和4.2。 附录A 这是一个在RIP中使用下一跳的简单例子: ----- ----- ----- ------- ------ ------ |IR1| |IR2| |IR3| |XR1| |XR2| |XR3| ---+-- --+-- --+-- ----+-- ---+--- ---+--- | | | | | | ---+--------+--------+------------------------+---------+----------+-- <-------------------RIP-2-----------------> 假设IR1,IR2和IR3都是一个使用RIP-2作为内部网关协议的网络(例如一个校园网) 的内部路由器。另一方面,XR1,XR2,和XR3则是在另一个使用其他路由协议(例如 OSPF)的网络(如这个校园网所属的一个局域网)中。XR1,XR2和XR3之间会互相交换 路由信息,这样它们会知道到达网络N1,N2的最佳路由是经过XR1,到网络N3,N4 和N5的最佳路由是经过XR2,而到网络N6,N7的最佳路由是经过XR3。通过设定正 确的下一跳 (XR2为到达N3/N4/N5的下一跳,XR3为到达N6/N7的下一跳),只有XR1 需要与IR1/IR2/IR3交换路由信息来避免经由XR1的多余的跳数。假如没有下一跳 (如 使用RIP-1协议),那么我们就需要XR2,XR3也一样分享RIP-2路由信息以消灭多余 的跳数。 参考文献 [1] Hedrick, C., "Routing Information Protocol", STD 34, RFC 1058, Rutgers University, June 1988. [2] Malkin, G., "RIP Version 2 - Carrying Additional Information", RFC 1388, Xylogics, Inc., January 1993. [3] Malkin, G., and F. Baker, "RIP Version 2 MIB Extension", RFC 1724, Xylogics, Inc., Cisco Systems, November 1994. [4] Malkin, G., "RIP Version 2 Protocol Analysis", RFC 1721, Xylogics, Inc., November 1994. [5] Malkin, G., "RIP Version 2 Protocol Applicability Statement", RFC 1722, Xylogics, Inc., November 1994. 作者地址 Gary Scott Malkin Xylogics, Inc. 53 Third Avenue Burlington, MA 01803 电话: (617) 272-8140 电子信箱: gmalkin@Xylogics.COM RFC1723 RIP Version 2 Carrying Additional Information 路由信息协议(版本2) 1 RFC文档中文翻译计划