RIP协议-解析

声明:

部分内容摘自《Cisco路由器配置与管理完全手册》(第二版)以及其他大神博客


一、RIP资料整理

1. 定义:

路由信息协议(英语:Routing Information Protocol,缩写:RIP)是一种内部网关协议(IGP),为最早出现的距离向量路由协定。属于网络层,可以通过不断的交换信息让路由器动态的适应网络连接的变化,这些信息包括每个路由器可以到达哪些网络,这些网络有多远等。

RIP是一种分布式的基于距离向量的路由选择协议,是因特网的标准协议, RIP协议要求网络中每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。RIP协议将“距离”定义为:从一路由器到直接连接的网络的距离定义为1。从一路由器到非直接连接的网络的距离定义为每经过一个路由器则距离加1。“距离”也称为“跳数”。RIP允许一条路径最多只能包含15个路由器,因此,距离等于16时即为不可达。可见 RIP协议只适用于小型互联网,并不适用于复杂网络的情况。

重分发是将一种路由选择协议获悉的网络告知另一种路由选择协议,以便网络中每台工作站能到达其他的任何一台工作站。对重新分配影响最大的协议特性是:度量;管理距离;从无类别协议向有类别协议重新分配。

 

2. 特点:

(1)仅和相邻的路由器交换信息。如果两个路由器之间的通信不经过另外一个路由器,那么这两个路由器是相邻的。RIP协议规定,不相邻的路由器之间不交换信息。

(2)路由器交换的信息是当前路由器所知道的全部信息,即自己的路由表。

(3)按固定时间交换路由信息,如,每隔30秒,然后路由器根据收到的路由信息更新路由表。(也可进行相应配置使其触发更新)

3. 版本:

       (1)版本

       RIPv1:使用分类路由,在它的路由更新(Routing Updates)中并不带有子网的资讯,因此它无法支援可变长度子网掩码。这个限制造成在RIPv1的网络中,在同级网络下无法使用不同的子网掩码。换句话说,在同一个网络下所有的子网络数目都是相同的。另外,它也不支援对路由过程时的认证,使得RIPv1有一些轻微的弱点,有机会遭受到可能的攻击。

       RIPv2:因为RIPv1的缺陷,RIPv2在1994年被提出,与RIP1最大的不同是RIP2为一个无类别路由协议,其更新消息中携带子网掩码,它支持VLSM、CIDR、认证和多播。另外针对安全性的问题,RIPv2也提供一套方法,未透过加密来达到认证的效果。而之后[RFC 2082]也定义了利用MD5来达到认证的方法。

       RIPng:主要是针对IPv6做一些延伸的规范。与RIPv2相比下其最主要的差异是:RIPv2支援RIP更新认证, RIPng 则不支持,因为IPv6路由器理应会使用IPsec来进行身份验证;RIPv2 容许给路由器附上任何标签, RIPng 则不容许;

RIPv2 在每个路由表项中都保存下一跳的信息,RIPng是对一组路由表项指定下一跳信息;RIPv2 使用UDP端口520和多播地址224.0.0.9通信,RIPng 则使用UDP端口521和多播地址FF02::9通信。

       (2)版本异同:

 

4. 工作原理:

       (1)初始化——RIP[1]初始化时,会从每个参与工作的接口上发送请求数据包。该请求数据包会向所有的RIP路由器请求一份完整的路由表。该请求通过LAN上的广播形式发送LAN或者在点到点链路发送到下一跳地址来完成。这是一个特殊的请求,向相邻设备请求完整的路由更新。   

       (2)接收请求——RIP有两种类型的消息,响应和接收消息。请求数据包中的每个路由条目都会被处理,从而为路由建立度量以及路径。RIP采用跳数度量,值为1的意为着一个直连的网络,16,为网络不可达。路由器会把整个路由表作为接收消息的应答返回。   

       (3)接收到响应——路由器接收并处理响应,它会通过对路由表项进行添加,删除或者修改作出更新。   

       (4)常规路由更新和定时——路由器以30秒一次地将整个路由表以应答消息地形式发送到邻居路由器。路由器收到新路由或者现有路由地更新信息时,会设置一个180秒地超时时间。如果180秒没有任何更新信息,路由的跳数设为16。路由器以度量值16宣告该路由,直到刷新计时器从路由表中删除该路由。刷新计时器的时间设为240秒,或者比过期计时器时间多60秒。Cisco还用了第三个计时器,称为抑制计时器。接收到一个度量更高的路由之后的180秒时间就是抑制计时器的时间,在此期间,路由器不会用它接收到的新信息对路由表进行更新,这样能够为网路的收敛提供一段额外的时间。   

       (5)触发路由更新——当某个路由度量发生改变时,路由器只发送与改变有关的路由,并不发送完整的路由表。

5. RIP防环机制

5.1 记数最大值(maximum hop count):定义最大跳数(最大为15跳),当跳数为16跳时,目标为不可达。

5.2 水平分割(split horizon):从一个接口学习到的路由不会再广播回该接口。

5.3 毒性逆转(poison reverse):从一个接口学习的路由会发送回该接口,但是已经被毒化,跳数设置为16跳,不可达。

5.4 触发更新(trigger update):一旦检测到路由崩溃,立即广播路由刷新报文,而不等到下一刷新周期。

5.5 抑制计时器(holddown timer):防止路由表频繁翻动,增加了网络的稳定性。

6. RIP路由更新机制

RIP协议有两种更新机制:一是定期更新,二是触发更新。“定期更新”是根据设置的更新计时器定期发送RIP路由通告。该通告报文中携带了除“水平分割”机制抑制的RIP路由之外本地路由器中的所有RIP路由信息。而“触发更新”则是RIP路由器仅在有路由表项发生变化时发送的RIP路由通告,仅携带本地路由表中有变化的路由信息。RIP路由器一旦察觉到网络变化,就尽快甚至是立即发送更新报文,而不等待更新周期结束。只要触发更新的速度足够快,就可以大大地防止“计数到无穷大”的发生,但是这一现象还是有可能发生的。

无论是定期更新,还是触发更新,RIP路由的更新规则如下:

l  如果更新的某路由表项在路由表中没有,则直接在路由表中添加该路由表项;

l  如果路由表中已有相同目的网络的路由表项,且来源端口相同,那么无条件根据最新的路由信息更新其路由表;

l  如果路由表中已有相同目的网络的路由表项,但来源端口不同,则要比较它们的度量值,将度量值较小的一个作为自己的路由表项;

l  如果路由表中已有相同目的网络的路由表项,且度量值相等,保留原来的路由表项。

7. 分层

TCP/IP参考模型分为四层:应用层(ApplicationLayer)、传输层(Transport Layer)、网络层(Internet Layer)、链路层(Link Layer)。

TCP/IP分层

协议

OSI 分层

应用层

FTP

SMTP

Telnet

DNS

SNMP

7

传输层

TCP

UDP

4

网络层

IPICMP   (RIPOSPF)

3

ARPRARP

链路层

Ethernet

Token
Bus

Token
Ring

FDDI

WLAN

2

1

 

二、RIP 配置

1. 安装zebra软件,请移步大神博客

       http://blog.csdn.net/crescent__moon/article/details/52201199

2. 详细测试过程

       无论启用什么动态路由协议,必须首先启动zebra!!!!,

因为zebra这个daemon的功能是更新核心的路由规则;默认启动RIP这个daemon则是在向附近其他的Router沟通协调路由的传送与否。

2.1 配置文件

      2.1.1  zebra.conf   /var/etc/zebra.conf

       #zebra config file...

      

       2.1.2  ripd.conf     /var/etc/ripd.conf

       #ripd config file...

       interface eth0    !接口

       router rip      ! 创建RIP进程,启用RIP协议(监听520端口)

       redistribute kernel     !zebra通信,因为路由信息是zebra守护进程维护的

       redistribute connected     !把直连路由分布到路由协议中

       redistribute static             !将静态路由重分发到RIP

       network eth0             !宣告接口,也可宣告指定网段

       interface eth0    !接口

       ip rip send version 2  !设置发送v2,也可同时发送v1v2,即…version 1 2

       ip rip receive version 2     !设置接收v2

 

2.2 开启

# zebra -d -f /var/etc/zebra.conf &

# ripd -d -f /var/etc/ripd.conf &


目前更新到此,新手发帖,参考大神博客整理,在此感谢CSDN平台。

如有错误,欢迎指正。


你可能感兴趣的:(网络)