路由信息协议,RIP协议,是路由协议中最早也是最基本最简单的协议之一。那么虽然它现在的使用已经渐渐不能适应我们的网络构建需要了,但是作为学习的基础,我们还是要全面掌握这个协议。同所有的协议一样,RIP协议是用来散发与路由器相关的网络信息的。在最基本的层面上,路由器需要知道能够达到什么网络以及到这些网络的距离有多远。RIP协议就做这件事情。RIP协议仍是目前被广泛应用的协议。
许多人咒骂RIP协议,说它汇聚的速度太慢,没有可伸缩性和不安全,因为RIP协议的身份识别只有明文的方式,而且这个协议还受到了Split-horizon的影响。这些情况都是真实的。但是,这个协议仍然是非常有用的。我们希望这篇文章能说明这些问题,帮助你理解这个应用最广泛的内部网关协议之一。
RIP协议有两种版本:第一版(RIPv1)和第二版(RIPv2)。RIPv1的功能非常有限,因为它不支持CIDR(无类域间路由选择)地址解析。这就意味着这个协议只是一个有类域协议,你不能把24掩码网络分成更小的单位。另外,RIPv1还使用广播发送信息。这就意味着主机不能忽略RIP广播。请记住,每次发出广播时,广播域中的每一台主机都将收到一个中断,并且必须要要处理这个数据包以便确定这个数据包是不是它关心的东西。RIPv2使用多播技术。这个技术在以后的讲座中再介绍。现在,你们仅需要知道主机在无需处理这个数据包的情况下就可以知道是否可以忽略这个多播包。
请记住,我们曾经说过RIP是一种距离向量协议。这里提到的距离指的是RIP协议中的跳数,而向量指的是目的地。其它距离向量协议也许使用其它规则来对各向量进行度量,如BGP协议中的AS-PATH。这两种版本的RIP协议都是每隔30秒钟向UDP端口520发送一次信息。但是,它们发送什么信息呢?如果你推测是“它们的路由信息",你就猜对了。RIP能够发送有关它可以到达的网络的具体信息,并且把自己作为一个默认的网关播出(目的地为0.0.0.0,度量值/metric 为1)。
RIPv2数据包有自己的报头,同许多其它协议一样。请注意,RIP协议是在UDP协议之上的,因此,它实际上是一个应用层协议。每一个RIP数据包都包含一个指令、一个版本编号和一个路由域。然后后面是最多25条路由信息(一个数据包内)。
RIP数据包的指令
一个RIP指令可以是一个请求或者是一个应答。当主机(无论是一台Unix服务器还是一台路由器)第一次启动时,主机都需要获得一些路由信息。这时会发出“请求"指令。向网络广播包含请求指令的数据包。“应答"是另一种常见的RIP指令。它用于回答一个请求,或者仅是简单的每隔30秒发布一次的广播。
版本号:版本号为一或二,指令此数据包的RIP协议版本。
路由域:RIP协议中的一个路由域是一种用于具体说明路由实例的识别符。同一个网络中可以存在一套以上的RIP实例,可以具体指定一个信息仅仅是发送给一个具体域中的人员的。
RIP数据包的其它部分
在路由域之后,真正的RIP路由信息就开始了。一个数据包最多可以包含25个路由条目。每个路由条目需要包含如下信息:
◆网络地址:识别目标子网地址的开始点。
◆子网掩码:说明