距离矢量路由协议
----------------------
    通过使用Bellman-Ford算法,距离矢量路由协议在邻接的数据链路上,周期性地向直连邻居广播整个路由表的路由更新信息,而不管网络是否发生了拓扑改变。对于许多路由协议来说,当所接收到的多个路由的度量更新值相同时,就将两个表项都放入路由表中,并执行负载均衡(通过两条可选路径传输包)。
缓解路由环路
----------------
为了避免路由环路,距离矢量路由协议在路由协议操作的内部采取了几种对策:
1、无穷计数:在路由协议的设计中包含一个最大跳数。使用这种策略,在到达了协议所允许的最大跳数之后,路由器就可以决定网络是不可到达的。注意:RIPv1和RIPv2的最大跳数都为15,这在很大程度上限制了RIP网络的规模。由于EIGRP有一些距离矢量路由协议的特性,因此最大跳数值为224。OSPF是链路状态路由协议,不受最大跳数的限制,因此它可以有无穷大的跳数。
2、水平分割:不会在同一个接口上将学到的网络信息再通告回去。
3、路由抑制、毒性逆转和抑制定时器
    毒性逆转是某路径崩溃后,最早广播此路由的路由器将原路由继续保留在若干报文中,但指明该路由为无限长(接收方收到路由信息以后,告诉对方不可从我处到达)。利用毒性逆转进行路径水平分割,包括更新的路径,但将其距离设成无限大。从效果上来说,这就相当在传播那些路径无法到达的信息。
4、触发更新:一条路由down以后,会立刻发送更新信息。

 

RIP维护路由信息
--------------------
1、路由更新定时器:定义路由信息更新的周期,默认30s;
2、路由失效定时器:定义一条路由为失效路由所以历的时间,默认为180s;
3、保持失效定时器:定义一条路由为失效路由的时间,在此时间内此路由信息不可以转发数据,默认为180s(在路由表中将其删除)。
4、路由刷新定时器:定义失效路由从RIP路由表中删除的时间,默认为240s;
    RIP最多能够支持6条相等路径的负载均衡(默认时为4条)。RIP的更新间隔是每隔30s,它的失效定时器设置为180s。因此,RIPv1将每隔30s广播其路由表,在6个周期都没有收到更新之后,RIP将认为邻居或网络失效了。

 

RIP的配置
--------------
    只要记住下面两条简单的规则,就可顺利完成RIP的配置:
1、只通告直连的网络;
2、只通告有类的网络。
    要牢记:除非用network命令在路由协议进程中包括了各自的网络,否则,路由协议就不会在接口上侦听网络,也不会从通告中学到网络。

    如果想要改动所允许的等价路径的数量,以便用RIP实现负载均衡,就可以在路由进程中使用命令maximum-paths。例如,如果想要将最在路径数量改动为6条,配置如下:
Router(config) #router rip
Router(config-router) #maximum-paths 6
    要在多条等价路径上禁用负载均衡,可将最大路径数设置为1。

 

被动接口
-------------
    在某个接口上配置了被动接口命令之后,更新就不会再从那个接口上发送出去。然而余,如果由于某种原因在那个接口上接到了更新,它就仍将处理这个更新,并将它放入其路由表中。具体配置命令如下:
Router(config) #router rip
Router(config-router) #passive-interface fastethernet 0/0

 

RIPv2的特性
----------------
1、组播更新:RIPv2不是广播其路由更新,而是使用保留的组播地址224.0.0.9来与其他RIPv2邻居进行通信。通过使用组播地址,它就不会浪费非RIP设备的处理资源,因为只有RIPv2设备才处理到组播地址的信息。
2、对有类和无类的支持:默认时,RIPv2是有类的,但可配置为无类路由协议,这样就能够在路由更新中发送子网掩码信息。这种增强性的实施,使得RIPv2能够支持VLSM和不连续网络设计。
3、对更新的认证:为了保证路由更新的原始性,免受攻击者欺骗性路由更新,RIPv2允许对更新的认证,在进行认证时,所有路由器上的口令都必须匹配,以确保路由更新的有效性。


RIPv2的配置
---------------
    RIPv2的配置实际上与RIPv1是一样的。换句话说,仍然必须使用router rip命令进入RIP路由进程,仍然必须通告直连的有类网络。要启用RIPv2,必须在路由进程中输入命令version 2:
Router(config) #router rip
Router(config-router) #version 2
Router(config-router) #network 172.16.0.0
Router(config-router) #network 192.168.1.0
    默认时,RIPv2是有类的。要配置这种增强的路由协议来支持无类路由更新,要在路由进程中输入的唯一配置命令是no auto-summary;
Router(config) #router rip
Router(config-router) #no auto-summary
    在配置了这个命令之后,RIPv2更新就通过组播地址224.0.0.9发送出去,就不再被认为是有类的了,因为在路由更新中子网掩码将随网络一起通告出去。
提示:默认时,RIP配置为发送版本1并接收版本1和版本2更新,这意味着没有改动到版本2的路由器仍将接收版本2更新,但将它们处理为版本1(忽略任何子网掩码和认证)。如果你决定使用命令version 1将RIP配置转换到版本1,就一定要牢定这一点。这个命令用来指示路由器只接收版本1更新,这将导致版本2更新被当作非法的版本而被忽略掉。要转换默认的RIP配置,更好的方法是在RIP路由进程中使用命令default version。


RIPv2更新的认证
--------------------
    就像前面提到的,RIP提供更新认证,通过对路由更新进行认证,可以帮助路由器免受虚假的设备或攻击者将错误的路由信息注入到路由表中。这种认证是通过定义密钥,并在密钥之后附加一个密钥串(口令)来实现的。这种密钥串必须在两台路由器上相匹配,否则更新将被拒绝。
    要定义认证密钥,可在全局配置模式下使用命令key chain,后面紧跟密钥串的名称。在输入此命令之后,就进入config-keychain子配置模式:
Router(config) #key chain luckyrabbitsfoot
Router(config-keychain) #
    如果愿意,可以在这里配置几个密钥,后面紧跟几个不同的密钥串口令。要创建密钥,可使用key关键词,以及一个用于此key的数字标识符。这时将进入对应于此特定key的另一个子配置模式,通过config=keychain-key提示符反映出来:
Router(config-keychain) #key 1
Router(config-keychain-key) #
    现在,我们终于可以定义口令了,可使用命令key-string来定义,后面紧跟将在每台路由器上进行匹配的口令:
Router(config-keychain-key) #key-string whataRIPoff
    在定义了密钥串之后,必须将它应用连接到带有匹配认证配置的邻接RIPv2路由器的接口上。向接口分配密钥串的命令是ip rip authentication key-chain,后面紧跟刚才定义的密钥串:
Router(config-keychain-key) #exit
Router(config-keychain)# exit
Router(config) #interface serial0/0/0
Router(config-if) #ip rip authentication key-chain luckyrabbitsfoot
    默认时,在链路上以明文形式发送这种密钥串,这将成为安全链路的脆弱点,因为如果链路被搭线窃听了,就可以看到密钥串。要保证其安全,可使用如下命令对口令使用MD5散列:
Router(config-if) #ip rip authentication mode md5


RIP的验证
---------------
    要验证RIP,可使用各种各样的show命令,每个show命令都能够提供同样多的有关所配置的RIP路由协议的信息。具体的有:
show running-config
show ip route
show ip protocols