一、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个路由条目。每个路由条目需要包含如下信息:•网络地址:识别目标子网地址的开始点。•子网掩码:说明这个网络有多大。•下一跳IP地址:也就是能够让你到达目的地的路由器。•度量值:这个网络的跳点距离有多少。RIP协议的一个重要的特点是它能够告诉你它从其他路由器那里了解到的的有关目标网络的情况。你可能听说过这类被称为“传闻路由(routingbyrumor)”的路由协议。它的工作方式是,在一台路由器广播RIP数据包之前把尺度域(metricfield)的值加一。例如路由器A告诉你你能够经过它通过两跳达路由器B,那么,你就知道路由器A和路由器B能够直2接对话,因为它们之间的距离只有一个跳点。所以,路由器A同路由器B一样在同一个广播域中有一个链路。但是,你却没有。当这个尺度,或者跳数,达到16的时候,说明你就遇问题。16这个数字在RIP协议中意味着无穷大。无穷数等于16是一种用来停止度量值无限增大的机制。之所以这样设计由于“传闻路由”的工作原理。这个问题讲起来有点复杂。但是,请你耐心看一下下面这个三个路由器的例子:路由器A知道它通过路由器B能够在2跳之内可以达到路由器C。你头脑中的画面可以是一条直线,路由器B在中间,路由器A和C在两端。现在,由于路由器B与路由器C有直接的连接,因此,当路由器C出故障的时候它将会知道。但是,当路由器B有机会告诉路由器A有关路由器C出故障的事情之前,路由器A发出了一个RIP更新信息。这个信息包括“我能够在2跳之内可以达到路由器C”。路由器B当然会相信路由器A,这就意味着路由器B相信路由器A能够达到路由器C。当然,路由器A是不能到达路由器C的,因为它的路径要经过路由器B。但是,路由器B并不知道这种情况,因为RIP协议中的惟一信息是下一跳地址,也就是路由器A。最后,当路由器B发送它的下一次更新的时候,它将包括通向路由器C的路由,这个路由现在是3跳。路由器A相信路由器B,因为路由器B毕竟是通向路由器C的惟一通道。这种事情经常发生,我们的跳数达到了16。这个路由将被放弃,而不会永远继续下去。这个问题如何解决呢?使用距离向量协议可没有办法。当我们告诉我们的邻居有关这个世界的情况时,我们没有提供有关每一个网络的详细信息,这样刚才那种计算无穷数的事情就可能发生。链路状态协议向全部路由器提供整个网络的状况因此可以避免了这种问题的发生。“水平分割”是帮助避开这个问题的另一种方法。但是,这种方法本身也存在瑕疵。Split-horizon意味着我们要跟踪更新信息发进来的端口,关注可能与之发生冲突的其它路由器发来的更新信息。换句话说,路由器纪录一条路由信息发送出去时使用的接口,当从这个接口收到到到同一目标的路由更新信息时,它会了解这是自己刚发出去的信息被其它路由器回传了回来,从面一定程序上避免问题,但是,当涉及到更多的路由器的时候,上面介绍的情况仍会存在。这种例子会变得更加复杂。但是,如果你对RIP协议感兴趣,你可以试着设计出一种环境,在这种环境中即使具有Split-horizon功能的路由器仍会出现计算无穷数的现象。RIP协议的最后一个“问题”就是聚合的速度慢。这是真的,主要是因为每次更新间隔的30秒等待时间。但是,在小机构中,这没什么大关系。RIPv2几乎能够在所有的硬件上运行,甚至在你买来支持宽带网连接的廉价的“家庭路由器”上也可以运行。即使你没有专门把RIP协议用作一个IGP协议,了解这个协议仍然是有用的,因为主机也可以使用这个协议作为手工设置一个默认的网关的替代方法。最后,即使你的机构很小,全部使用静态路由就够用,RIPv2也会给你带来更多的方便。小结:RIP是一种距离向量内部网关路由协议:它使用跳数和下一跳路由器来具体说明路由。RIPv1用来进行广播,但是并不支持CIDR地址解析。RIPv2是无类域间路由并且使用多播技术。虽然这个协议的汇聚速度很慢并且存在一些瑕疵,但是,RIP非常适合于中小企业环境。二、RIP协议的配置命令rip(routinginformationprotocol)是应用较早、使用较普遍的内部网关协议(interiorgatewayprotocol,简称igp),适用于小型同类网络,是典型的距离向量(distance-vector)协议。rip通过广播udp报文来交换路由信息,每30秒发送一次路由信息更新。rip提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则rip3认为两个路由是等距离的。rip最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。1.有关命令任务命令指定使用rip协议routerrip指定rip版本version{1|2}1指定与该路由器相连的网络networknetwork注:1.cisco的rip版本2支持验证、密钥管理、路由汇总、无类域间路由(cidr)和变长子网掩码(vlsms)2.举例routerrip启动rip协议version2配置rip协议的版本号,(可以不配,默认表示版号为1)network192.200.10.0应用在所连接的网络的网络号192.200.10.0network192.20.10.0应用在所连接的网络的网络号192.20.10.0相关调试命令:showipprotocol该命令的作用是能够看到路由器上运行的动态路由选择协议,以及该协议的一些特性showiproute该命令用来检查路由表的正确性debugiprip该命令可以实时地看到路由器收发的路由更新包三、RIP协议配置实例191.1.1.1/24191.1.1.2/24192.1.1.1/24192.1.1.2/24R1R2R3S1S0S1S0E00E00150.1.1.1/24152.1.1.1/244各接口IP地址分配如下:R1:51191.1.1.1/24,E0150.1.1.1/24R2:50191.1.1.2/24,S1192.1.1.1/24R3:50192.1.1.2/24,S1192.1.1.1/24实验中R1、R2之间和R2、R3之间的串行线路速率设置为64kbit/s实验设备:三台cisco(思科)路由器,每台至少有一个以太接口和两个串行接口一台运行超级终端程序的PC两根cisco(思科)DTE/DCE串行电缆一根console电缆配置路由器A:HostnameRaInterfaceserial1Ipaddress191.1.1.1255.255.255.0encapsulationpppNoshutdownRouterripNetwork191.1.1.0Linecon0Linevty04配置路由器B:HostnameRbInterfaceserial0Ipaddress191.1.1.2255.255.255.0encapsulationpppClockrate64000NoshutdownInterfaceserial1Ipaddress192.1.1.1255.255.255.0encapsulationpppClockrate64000NoshutdownRouterripNetwork192.1.1.0Network191.1.1.0Linecon0Linevty04配置路由器C:HostnameRcInterfaceserial05Ipaddress192.1.1.2255.255.255.0encapsulationpppNoshutdownRouterripNetwork192.1.1.0Linecon0Linevty04注意:两个路由器相连,必有一个是DCE,因此要分清哪个是DCE,并且DCE的哪个要设置时钟频率教学后记: