̥RIP:
Routing Information Protocal


    距离矢量路由选择算法发送完整的路由选择表到相邻的路由器,然后,相邻的路由器会将接受到的路由表项和自己原有的路由表进行组合,以完善路由器的路由表。由于远程网络的确认信息并没实地亲自去查找,故戏称为:传言路由.


RIP是通过UDP端口520来进行操作的,RIP信息包是封装在UDP segment中的.

RIP定义了2种信息类型:
Request message(请求信息)和Response message(应答信息).
  请求信息 用来向直连路由器请求发送一个update(更新),
  应答信息 运载着这个被请求的update.
RIP的metric是基于hop count(跳数)的,metric为16代表不可达。
RIP的版本:V1 V2 NG

V1与V2的区别
1、V1是有类的路由协议                V2是无类的路由协议
2、V1使用广播更新路由条目            V2使用组播,224.0.0.9
3、V1不支持手工汇总 ,支持自动汇总    V2支持手工汇总和自动汇总
4、V1不支持验证                      V2支持验证,明文和密文
5、V1不支持VLSM CIDR                 V2支持VLSM,不支持CIDR

 

RIP的缺陷 RIP虽然简单易行,并且久经考验,但是也存在着一些很重要的缺陷,主要有以下几点:
1.过于简单,以跳数为依据计算度量值,经常得出非最优路由;
2.度量值以16为限,不适合大的网络;
3.安全性差,接受来自任何设备的路由更新;
4.不支持无类IP地址和VLSM(Variable Length Subnet Mask,变长子网掩码);
5.收敛缓慢,时间经常大于5分钟;每固定时间更新一次消耗带宽很大

一、RIP的计时器
RIP是距离矢量路由协议(DV),通过周期性发送response报文来更新路由表,更新周期为30S(25.5~30,15%)

4个计时器:
update  更新周期    30S
invalid 无效        180S
holddown  抑制      180S  0S  60S
flush     刷新      240S


通过命令可以修改时间:
timers basic <update> <invalid> <holddown>  <flush>


二、RIP中的环路解决方法:
1、水平分割:(split-horizon)
              从该接口收到的路由不会在从该接口发出去
2、路由中毒:(route poisoning)
              网络出现故障后,路由器将该路由信息的跳数 标记为无限大,通告给直连路由器,使直连路由器及时得知网络发生故障
3、毒性逆转:(poison reverse)
              RIP从接口学习到路由后,将该路由的度量值设为无穷大,并 
              从原接口发回邻居路由器(毒性逆转可以超越水平分割)
4、保持失效:(holddown time)
              当路由条目标记为不可达,一段时间内不接收该路由条目的
              更新,除非从该路由条目发送方,重新传递更优的路由条
              目。
5、触发更新:(triggered updates)
              当路由表发生变化时,路由器立刻发送更新信息。
6、最大跳数:(MAX-HOP)
              当路由表中,路由的跳数达到16跳时,定义该条目为不可达。

 

RIP的基本配置:
router rip
network 192.168.1.0

sh ip route
debug ip rip


RIP汇总:
自动汇总(V1不可关闭)
什么叫汇总?
用一条不明细的路由代替多条明细的路由

自动汇总产生的条件是什么?
主网络的边界
1、什么叫主网络?
2、哪里是边界?


手工汇总:RIPV2支持
int  f0/0
ip summary-address rip
汇总后的掩码长度必须要大于或等于主网络的掩码长度,否则会出错,因为RIPV2不支持CIDR
如:ip summary-address rip 192.168.96.0 255.255.252.0
会有错误提示,因为22<24(CIDR特性)
若要解决此种情景,可以通过静态路由
ip route 192.168.96.0 255.255.252.0 null0
router rip
redistribute static metric transparent
此种方法可以在V1下使用吗?会有什么效果?


RIPV1的更新机制
1、发送机制:
RIP在接口发送update包,匹配更新路由是否和接口的IP在同一主网络,如果是,再次匹配路由掩码和接口掩码是否相同,如果相同,发送更新报文,如果不同,丢弃
       如果不在同一主网,则就会自动进行有类汇总后发出更新。


2、接收机制:
RIP在接收update包时,匹配更新的路由和自己的接口IP是否在同一主网络,如果相同,就采用接口mask
            如果不相同,就会再次查找当前路由表是否存在和更新路由处在同一主网络的子网路由,如果存在则丢弃更新(主机地址除外,路由条目不稳定),如果不存在,则更新路由。

路由表中只存放网络地址和主机地址

不连续子网的通信:

 
1、若坚持使用V1版本或者默认版本,可使用第二地址建立传递报文(第二地址必须和需要连续的网络在同一个主网络)

2、使用V2版本,并no-autosummary


RIP默认版本与V2版本的通信:
1、QM_R1(config-if)#ip rip send version 2
2、QM_R2(config-if)#ip rip receive version 1


RIP的被动接口:
使用被动接口后,对update报文只收不发(只针对广播和组播生效)
router rip
passive-interface f0/0


RIP的单播更新(unicast update)
普通RIPv1使用广播更新路由,可通过手工修改实现单播更新
router rip
neighbor <对端单播ip>

FR下的RIP
FR的配置
1、FRSW的配置:
frame-relay switching
FR接口配置:
 encapsulation frame-relay
 clock rate 64000
 frame-relay lmi-type cisco
 frame-relay intf-type dce
 frame-relay route 103 interface Serial1/1 301
 frame-relay route 104 interface Serial1/2 401
2、路由接口配置

 interface Serial1/0
  ip address 123.123.123.1 255.255.255.0
  encapsulation frame-relay

RIP的配置:
router rip
 network 1.0.0.0
 network 123.0.0.0
 neighbor 123.123.123.4
 neighbor 123.123.123.3

 


关闭水平分割
接口下:R1(config-if)#no ip split-horizon


控制RIP的度量值:偏移列表,offset-list
通过结合ACL,来改变出站或者入站路由条目的metric
access-list 1 permit 192.168.1.0 0.0.0.255
offset-list 1 in 10(metric叠加)

 

RIPV2的验证:
支持明文及MD5验证
key chain cisco
key 1
key-string qmcisco

ip rip authentication mode md5
ip rip authentication key-chain cisco


密文发送机制:
当key chain中有多个key ID时,接口会发送key ID最小的key-string。并携带key ID。
密文接受机制:
路由首先查看key ID是否相同,如果相同,则查看key-string,相同验证通过,不同验证失败。
            如果keyID不相同,查看是否有下一keyID,若有,则匹配下一ID的key-string,相同验证通过,不同验证失败。注:只会向下匹配一个keyID!

总结:
1 明文认证:每台路由器都发送最小的KEY-ID中的密匙,但不携带KEY-ID,本路由器只看发来的密码是否在本KEY-CHAIN中存在,如果存在则认证通过,无所谓先后顺序(在有多个密钥时)

2 密文认证:只发送最小的一个KEY-ID的密钥匙.并携带KEY-ID.当本路由器接受到对方发过来的KEY-ID和密钥时.先匹配收到的密钥的KEY-ID号与自己的KEY-ID号是否相同.如果KEY-ID号有相同的,则看密码是否相同,密码相同则认证通过.密码不同认证不通过.如果对方发过来的KEY-ID号自己没有相同的KEY-ID号,就向下一个KEY-ID号匹配密钥(即比收到的KEY-ID号大的的下一个KEY-ID),而且只向下匹配一次KEY-ID号中的密钥.既密文认证是先匹配KEY-ID再匹配KEY的密码.


RIP的默认路由:
方法一:
router rip
default-information original
发给邻居一条默认路由,告诉邻居自己是默认路由的下一条

方法二:
 router rip
net 0.0.0.0
ip route 0.0.0.0 0.0.0.0 null0
也可以宣告一条默认路由

方法三:
重分发
ip route 0.0.0.0 0.0.0.0 null0(若下一跳是具体的IP地址,这此路由不能收到默认路由)
router rip
redistribute static metric transparent