RIP--路由信息协议

一、定义

  • 是一种基于UDP封装的距离矢量型协议,路由器采用周期性发送消息数据包来传递路由信息,使用“跳数”(即metric)来衡量到达目标地址的路由距离

  • RIP使用UDP的520端口来发送和接收RIP分组。

  • 跳数的取值范围为0~16,16表示路径无限长,也就是16跳表示不可达,最大调试只能取到15,这就使得该协议不能应用于小型的网络

  • 一条RIP更新报文最多包含25条路由信息,若启用路由认证,则最多传递24条路由信息。

  • RIP分组分为两种:请求分组和响应分组。

二、定时机制

  • 更新计时器(Updata Timer):
    每隔30s广播发送一次更新报文,其实是在为25.5~30秒间的随机数时间内发送,叫做异步周期更新,异步更新为了防止同步更新带来的网络拥塞,周期更新是为了解决RIP没有确认机制,来保活,保证可靠传输。

  • 无效计时器(Invalidation Timer)/ 超时计时器(Timeout Timer):
    每当一条路由180s后没有收到更新消息,也就是6个更新时间,就会将该路由的度量值改为16跳,不可达。

  • 垃圾收集(Garbage Collection)/ 刷新计时器(Flush Timer):
    该条路由停留至240s,会被作为垃圾路由从路由表删除,一般比超时计时器长40s~60s后就会被通告不可达且删除

  • 抑制计时器(Holddown Timer):
    用于抑制更新机制,保证网络稳定且不出环,在一条路由不可达之后,为了让所有路由器在一定时间内知道该路由不可达,该路由应在180s内被抑制。

三、工作原理

RIP是为了共享路由信息,每间隔30s给直连广播发送路由更新信息,包括局域网内能到达的网段与路由距离,比如下图中R3告知R2我所在网络c,你到142.10.0.0网段需要跳数是1跳,R2告诉R1到达142.10.0.0网段跳数是你到我1跳加上我到目标网段1跳,一共是2跳。
RIP--路由信息协议_第1张图片
实际上如果网络带宽足够快的前提下,路由选路不仅只关注跳数小的路径,还会综合链路特征选择,比如下图R1到达R3走直连跳数为1,但是R1会选择R1-R2-R3的路径,因为这条路径2Mbps2跳比56Kbps1跳快得多。RIP--路由信息协议_第2张图片

RIPV1和RIPV2的区别

  • RIPv1是有类路由协议,RIPv2是无类路由协议
  • RIPv1不能支持VLSM,RIPv2可以支持VLSM。
  • RIPv1没有认证的功能,RIPv2可以支持认证,并且有明文和MD5两种认证。
  • RIPv1没有手工汇总的功能,RIPv2可以在关闭自动汇总的前提下,进行手工汇总。
  • RIPv1是广播更新,RIPv2是组播更新。
  • RIPv1对路由没有标记的功能,RIPv2可以对路由打标记(tag),用于过滤和做策略。
  • RIPv1发送的update最多可以携带25条路由条目,RIPv2在有认证的情况下最多只能携带24条路由。
  • RIPv1发送的update包里面没有next-hop属性,RIPv2有next-hop属性,可以用于路由更新的重定。

参考RIP协议百度百科

四、防环机制

  • 水平分割机制:
    此接口接受路由不能转发回去,适用于直连拓扑,MA网络中可以减少重复更新,目的是防环,Cisco中可以用no ip split-horizon关闭水平分割

  • 毒性逆转水平分割:
    当一条路由不可达时,改条路由不会立即被删除,直接将度量值设置为16跳不可达带毒性路由,发送出去,当其他路由器收到该毒性路由,因为RIP协议不存在ACK确认包,防止毒性路由一直广播发送,会给发出毒性路由的接口回复一条我已收到该毒性信息来确认,该毒性路由就不在广播发送,在路由表中驻留到超被删除为止,这就打破了水平分割机制,加快路由收敛,同时保证了网络的稳定性。

  • 触发更新:
    大型网络难有了毒性逆转水平分割因为延时问题也难免会出现环路,为了加速收敛速度,每当路由跳数有变化,就会立即发出更新信息,不受常规更新时间的限制。

  • 抑制计时器:
    定时机制中有讲到,这里不做过多解释,但确实是一个防环机制。

五、实验

1、实验要求
RIP--路由信息协议_第3张图片
RIP--路由信息协议_第4张图片
2、实验分析
(1)配置IP地址,环回,配置完成之后按要求起协议。
(2)要使R3访问R1的环回走R2,我们可以考虑修改优先级与开销值,因为华为中修改优先级不能确定接口,所以只能修改开销值metic(Cisco中可以),在R4上增加开销值,影响别人做metic out,也可以在R3上做metic in,讲环回接口手工汇总,减少路由条目,增加网络稳定性。
(3)telnet,看成时外网互相访问,实则telnet到内网上,做NAT
(4)不能学习R1环回就要ACL控制。
(5)全网可达就是环回之间访问需要在R5上向邻居发送缺省,毕竟R5环回是一个模拟运营商,没有被通告。

3、配置及测试
第一步:IP地址配置,这里就不展示了,说明一下,R1与R2直连网段,R1这边,12.1.1.1/24,环回1.1.1.1/24,R2这边12.1.1.2/24,环回2.2.2.2/24类似直连都是同理,再照实验要求R1再配三个环回

第二步:R1-5起RIPV2,R6-7起RIPV1,除了5的环回不通告之外通告其所有网段
R2-5与R1配置相同,R7与R6配置一致

[r1]rip 100    //起rip,进程号给100
[r1-rip-100]version 2     //版本号2
[r1-rip-100]network 1.0.0.0   //宣告环回
[r1-rip-100]network 12.0.0.0   //宣告直连网段
[r1-rip-100]network 14.0.0.0
[r1-rip-100]network 172.16.0.0
[r6]rip 100
[r6-rip-100]version 1   //版本号为1
[r6-rip-100]network 6.0.0.0
[r6-rip-100]network 46.0.0.0
[r6-rip-100]network 67.0.0.0

这样配置之后R4可以学习到RIPV2的所有路由,且携带网络掩码的无类路由,但是没有RIPV1的路由,R6可以学到R7的环回但是不携带网络掩码有类路由
RIP--路由信息协议_第5张图片
RIP--路由信息协议_第6张图片
第三步:手工汇总R1环回,两个路由出接口都要汇总,修改R3的metic in

[r1-GigabitEthernet0/0/0]rip summary-address 172.16.0.0 255.255.252.0  //汇总环回
[r1-GigabitEthernet0/0/1]rip summary-address 172.16.0.0 255.255.252.0
[r3]acl 2000   //ACL控制列表汇总路由
[r3-acl-basic-2000]rule permit source 1.1.1.0 0.0.0.0
[r3-acl-basic-2000]rule permit source 172.16.0.0 0
[r3-GigabitEthernet0/0/0]rip metricin 2000 3 //在经过R4的入接口处用ACL 2000控制将开销值增加3

查看R3的路由表,R3到达R1的下一跳就是R2了
RIP--路由信息协议_第7张图片
第四步:加快收敛速度,修改计时器的周期时间,增加安全性就是做认证,这里只在R1和R2上做示范,其他也可以做,不做演示

[r1-rip-100]timer rip ?
  INTEGER<1-86400>  Periodic update time (seconds)
[r1-rip-100]timer rip 15 ? //修改更新时间15s
  INTEGER<1-86400>  Age time (seconds)
[r1-rip-100]timer rip 15 60 ?  //修改老化计时器为60s
  INTEGER<1-86400>  Garbage collection time (seconds)
[r1-rip-100]timer rip 15 60 100  //修改垃圾回收时间为100s

[r1-GigabitEthernet0/0/0]rip authentication-mode md5 nonstandard plain 123 100 //做MD5认证,标准的明文认证,密码为123key id 为100
[r2-GigabitEthernet0/0/1]rip authentication-mode md5 nonstandard plain 123 100 //双方的密码和key id要一致

查看修改后的计时器RIP--路由信息协议_第8张图片
第五步:RIP1与RIPV2互通,在R6上做,让R6给R4发送RIPV2路由

[r6]inter g0/0/0
[r6-GigabitEthernet0/0/0]rip version 2

在R4上查看是否学到R6给的RIPV2的路由,在R6学到的RIPV1的路由已经是RIPV2,有携带网络掩码,虽然7.0.0.0网段是/8,但是这个是R6汇总过的路由RIP--路由信息协议_第9张图片
第六步:配置NAT,将R1和R2相连看成是外网,要telnet到R7的环回看成内网上,但是还要注意的是路由选路,来回走的路径都是R123467这一条路径,还需要做选路干涉
RIP--路由信息协议_第10张图片

[r2-GigabitEthernet0/0/1]nat server protocol tcp global interface loopback 0 telnet inside 7.7.7.7 telnet //NAT-server基于tcp,在R2的环回0接口上访问时,telnet到内网7.7.7.7
Warning:The port 23 is well-known port. If you continue it may cause function fa
ilure.
Are you sure to continue?[Y/N]:y

[r7]user-interface vty 0 4 //R7上开启NAT虚拟终端,可同时打开5个会话
[r7-ui-vty0-4]set authentication password cipher 123  //设置认证密码暗号为123


//干涉R2去7.7.7.7出接口走R3而不是走R1(干涉in方向)
[r2]acl 2000
[r2-acl-basic-2000]rule permit source 7.0.0.0 0
[r2-acl-basic-2000]q
[r2]inter g0/0/1
[r2-GigabitEthernet0/0/1]rip metricin 2000 3

//干涉回来到R4不走R1要走R3(干涉out方向)
[r1]acl 2000
[r1-acl-basic-2000]rule permit source 12.1.1.0 0
[r1-acl-basic-2000]q
[r1]inte g0/0/1
[r1-GigabitEthernet0/0/1]rip metricout 2000 3

测试登录:
RIP--路由信息协议_第11张图片
第七步:R6.7拒绝学习R1的环回,acl控制,再RIP调用

[r6]acl 2000
[r6-acl-basic-2000]rule deny source 1.1.1.0 0 //定义R6拒绝R1环回0
[r6-acl-basic-2000]rule deny source 172.16.0.0 0 //定义拒绝R1的环回123
[r6-acl-basic-2000]rule permit source any  //该拒绝的拒绝,剩余都要允许
[r6-acl-basic-2000]q
[r6]rip 100
[r6-rip-100]filter-policy 2000 import GigabitEthernet 0/0/0  //RIP在R6去往R4的接口上调用这个列表

查看R6路由表,果然没有了R1的环回,当然R7也访问不到R1的环回,因为他本身就是在R6上学到的R1的环回:
RIP--路由信息协议_第12张图片
第八步:全网可达,只需要在R5上做缺省,

[r5]rip 100
[r5-rip-100]default-route originate 
//路由器给邻居发送一条缺省路由,让所有邻居也都可以学的到。

//此条命令配置时也可以修改cost值

在这里插入图片描述
测试:虽然R6.R7没有到R1环回的明细路由,但是缺省可以使得其访问R1环回
RIP--路由信息协议_第13张图片
RIP--路由信息协议_第14张图片
RIP--路由信息协议_第15张图片

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