rip协议中周期性广播路由信息的报文_[HCIARouting&Switching]路由篇RIP及试验

a688427105100d95a2436d0c2734ed1a.png RIP

RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模较小的网络中,比如校园网以及结构较简单的地区性网络。对于更为复杂的环境和大型网络,一般不使用RIP。

由于 RIP 的实现较为简单,在配置和维护管理方面也远比OSPF 和IS-IS 容易,因此在实际组网中仍有广泛地应用。

RIP和OSPF的区别在于,RIP是基于距离矢量,只知道下一跳的相关信息,不了解整个网络的信息;而OSPF是路由状态协议,它是知道整个网络状态的。

a688427105100d95a2436d0c2734ed1a.png RIP工作机制

1. RIP 的基本概念

RIP 是一种基于距离矢量(Distance-Vector)算法的协议,它通过UDP 报文进行路由信息的交换,使用的端口号为520。

RIP 使用跳数来衡量到达目的地址的距离,跳数称为度量值。在RIP 中,路由器到与它直接相连网络的跳数为0,通过与其相连的路由器到达另一个网络的跳数为1,其余依此类推。为限制收敛时间,RIP 规定度量值取0~15 之间的整数,大于或等于16 的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不适合应用于大型网络。

为提高性能,防止产生路由环路,RIP 支持水平分割(Split Horizon)和毒性逆转(Poison Reverse)功能。后面会介绍。

2. RIP 的路由数据库

每个运行 RIP 的路由器管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:

? 目的地址:主机或网络的地址。

? 下一跳地址:为到达目的地,需要经过的相邻路由器的接口 IP 地址。

? 出接口:转发报文通过的出接口。

? 度量值:本路由器到达目的地的开销。

? 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。

? 路由标记(Route Tag):用于标识外部路由,在路由策略中可根据路由标记对路由信息进行灵活的控制。

3. RIP 的启动和运行过程

RIP 启动和运行的整个过程可描述如下:

? 路由器启动 RIP 后,便会向相邻的路由器发送请求报文(Request message),相邻的RIP 路由器收到请求报文后,响应该请求,回送包含本地路由表信息的响应报文(Response message)。

? 路由器收到响应报文后,更新本地路由表,同时向相邻路由器发送触发更新报文,广播路由更新信息。相邻路由器收到触发更新报文后,又向其各自的相邻路由器发送触发更新报文。在一连串的触发更新广播后,各路由器都能得到并保持最新的路由信息。

? RIP 采用老化机制对超时的路由进行老化处理,以保证路由的实时性和有效性。

4. RIP 定时器

RIP 受四个定时器的控制,分别是Update、Timeout、Suppress 和Garbage-Collect。

? Update 定时器,定义了发送路由更新的时间间隔。

? Timeout 定时器,定义了路由老化时间。如果在老化时间内没有收到关于某条路由的更新报文,则该条路由在路由表中的度量值将会被设置为16。

? Suppress 定时器,定义了RIP 路由处于抑制状态的时长。当一条路由的度量值变为16 时,该路由将进入抑制状态。在被抑制状态,只有来自同一邻居且度量值小于16 的路由更新才会被路由器接收,取代不可达路由。

? Garbage-Collect 定时器,定义了一条路由从度量值变为16 开始,直到它从路由表里被删除所经过的时间。在Garbage-Collect 时间内,RIP 以16 作为度量值向外发送这条路由的更新,如果Garbage-Collect 超时,该路由仍没有得到更新,则该路由将从路由表中被彻底删除。

5. 防止路由环路

RIP 是一种基于D-V 算法的路由协议,由于它向邻居通告的是自己的路由表,存在发生路由环路的可能性。

RIP 通过以下机制来避免路由环路的产生:

? 计数到无穷(Counting to infinity):将度量值等于16 的路由定义为不可达(infinity)。在路由环路发生时,某条路由的度量值将被设置为16,该路由被认为不可达。

? 水平分割(Split Horizon):RIP 从某个接口学到的路由,不会从该接口再发回给邻居路由器。这样不但减少了带宽消耗,还可以防止路由环路。

? 毒性逆转(Poison Reverse):RIP 从某个接口学到路由后,将该路由的度量值设置为16(不可达),并从原接口发回邻居路由器。利用这种方式,可以清除对方路由表中的无用信息。

? 触发更新(Triggered Updates):RIP 通过触发更新来避免在多个路由器之间形成路由环路的可能,而且可以加速网络的收敛速度。一旦某条路由的度量值发生了变化,就立刻向邻居路由器发布更新报文,而不是等到更新周期的到来。

a688427105100d95a2436d0c2734ed1a.png RIP实验

实验要求:

R1-R2-R3-R4-R5 运行RIPV2,R6-R7运行RIPV1

1.使用合理IP地址规划网络,各自创建环回接口2.R1创建环回 172.16.1.1/24 172.16.2.1/24 172.16.3.1/243.要求R3使用R2访问R1环回4.加快网络收敛,减少路由条目数量,增加路由传递安全性5.R5创建一个环回模拟运营商,不能通告6.R1 telnet R2环回实际telnet 到R7上7.R6-R7路由器不能学习到达R1环回路由8.全网可达

拓扑如下:

03e91663c2e00548e2d749ffe8a5d375.png

首先配置IP和还回接口,同时给给R1再创建三个环回172.16.1.1/24 172.16.2.1/24 172.16.3.1/24

配置脚本如下:

-------------------------R1--------------------------

sysname R1

int lo0 

ip add 1.1.1.1 24

int g 0/0/0

ip addr 12.1.1.1 24

int g 0/0/1

ip addr 14.1.1.1 24

int lo1

ip add 172.16.1.1 24

int lo2

ip add 172.16.2.1 24

int lo3

ip add 172.16.3.1 24

-------------------------R2--------------------------

sysname R2

int lo0 

ip add 2.2.2.2 24

int g 0/0/0

ip addr 12.1.1.2 24

int g 0/0/1

ip addr 23.1.1.1 24

-------------------------R3--------------------------

sysname R3

int lo0 

ip add 3.3.3.3 24

int g 0/0/0

ip addr 23.1.1.2 24

int g 0/0/1

ip addr 34.1.1.1 24

-------------------------R4--------------------------

sysname R4

int lo0 

ip add 4.4.4.4 24

int g 0/0/0

ip addr 34.1.1.2 24

int g 0/0/1

ip addr 14.1.1.2 24

int g 4/0/0

ip addr 45.1.1.1 24

int g 0/0/2

ip addr 46.1.1.1 24

-------------------------R5--------------------------

sysname R5

int lo0 

ip add 5.5.5.5 24

int g 0/0/0

ip addr 45.1.1.2 24

-------------------------R6--------------------------

sysname R6

int lo0 

ip add 6.6.6.6 24

int g 0/0/0

ip addr 46.1.1.2 24

int g 0/0/1

ip addr 67.1.1.2 24

-------------------------R7--------------------------

sysname R7

int lo0 

ip add 7.7.7.7 24

int g 0/0/0

ip addr 67.1.1.2 24

配置完记得测试直连路由通不通,以及看一下每个路由器的路由表

2ca628ed65eebbf06a273d78068c5011.png

第二步:R1-R2-R3-R4-R5 运行RIPV2, R5不通告环回,配置脚本如下:

-------------------------R1--------------------------

rip 100 

version 2

network 1.0.0.0

network 172.16.0.0

network 12.0.0.0

network 14.0.0.0

-------------------------R2--------------------------

rip 100 

version 2

network 2.0.0.0

network 12.0.0.0

network 23.0.0.0

-------------------------R3--------------------------

rip 100 

version 2

network 3.0.0.0

network 23.0.0.0

network 34.0.0.0

-------------------------R4--------------------------

rip 100 

version 2

network 4.0.0.0

network 14.0.0.0

network 34.0.0.0

network 45.0.0.0

network 46.0.0.0

-------------------------R5--------------------------

rip 100 

version 2

network 45.0.0.0

-------------------------R6--------------------------

rip 100 

verify-source

version 1

network 6.0.0.0

network 46.0.0.0

network 47.0.0.0

-------------------------R7--------------------------

rip 100 

verify-source

version 1

network 7.0.0.0

network 67.0.0.0

配置完成后,测试一下RIP V1内的所有路由是否可以相互学习,RIPV2也一样

首先查看R2,路由表如下:

e627dd6dba05dd190e2019d3542fbac4.png

检查R6的路由表如下

bbc9cf3b0ed57ffd82fa876335dc1288.png

说明配置到此都是正确的

第三步,R3通过R2来访问R1的环回,此处涉及到修改RIP的cost值。

在修改cost之前,先做一个路由汇总,因为下面有要求要减少路由条目。脚本如下:

-------------------------R1--------------------------

int g 0/0/0

rip summary-address 172.16.0.0 255.255.252.0

int g 0/0/1

rip summary-address 172.16.0.0 255.255.252.0

然后修改Cost

首先从R3上看,在修改前去1.0.0.0有两条等价路由,如下图

3d58676e1dfeba171f72525ace651e94.png

然后修改cost,脚本如下:

-------------------------R3--------------------------

acl 2000

rule permit source 1.1.1.0 0.0.0.0

rule permit source 172.16.0.0 0.0.0.0

q

int g 0/0/1

rip metricin 2000 2

然后再看R3到达1.0.0.0的路由只有一条了,COST大的路由已经变成unactive,所以不会显示出来

88b479dc552f75a024dc63f3f50283ff.png

第四步,实现R1 telnet R2环回实际telnet 到R7上,先在R7上开启telnet功能, huawei是密码,脚本如下:

-------------------------R7--------------------------

user-interface vty 0 4

authentication-mode aaa

quit

aaa

local-user admin password cipher huawei

local-user admin privilege level 15

local-user admin service-type telnet

quit

telnet server enable

然后让RIPV1 和RIPV2 可以相互学习路由,首先查看为相互学习之前的状态,如下图:只能学习到7.0.0.0网段的路由

46877806b8b9dfb36627a9d863a47e72.png

相互学习脚本如下:

-------------------------R6--------------------------

int g 0/0/0

rip version 2

然后查看R6的路由,已经学习了RIPV2的路由

ef4100eefd7521a030fe94b6bb363f00.png

此时也可以查看R2等路由器,也学习到67.0.0.0、6.0.0.0/7.0.0.0的网段。

第四步,在R2上做NAT的地址转换,这里我们使用 NAT SERVER

-------------------------R2--------------------------

int g 0/0/0

nat  server protocol tcp global interface loopback 0 23   inside 7.7.7.7 23

查看R7到1.1.1.1的路由,如下,他经过R4直接到R1,这显然不合我们的需求,我们需要它经过R2才可以,于是需要增大R1-R4之间的Cost。

b5eb1b2ad71e72e64c1a3448b4eb8787.png

增加Cost的脚本如下:

-------------------------R4--------------------------

acl 2000

rule permit source 12.1.1.0 0

int g 0/0/1

rip metricin 2000 4

此时通过R1 Telnet R2,输入admin huawei后显示R7, 说明实现了R1 telnet R2环回实际telnet 到R7上的目的。

注意:telnet需要在退出用户模式

a1bffd957798f0d65aa8d41a253c91af.png

第五步,R6-R7路由器不能学习到达R1环回路由,在R4 R6之间 做一个过滤,同样 export和import随便选一个,我们选择import

-------------------------R6--------------------------

acl 2000

rue deny source 1.1.1.0 0

rue deny source 172.16.0.0 0

rule permit source any

quit

rip 100

filter-policy 2000 import g 0/0/0

再来在R6上检测一下是否还能学到R1还回地址
[r6-rip-100]dis ip ro pr rip

9de42e39e09c3f4c709b5701f312299a.png

实验做到这里,本来已经全网可达了,但是我们刚刚让R6 R7过滤掉了R1的环回,所以现在我们让R5这个虚拟的运营商来下放缺省,这样就可以实现全网可达了

-------------------------R5--------------------------

rip 100

default-route originate

最终实现全网联通。

e51c64df4009eabcf8f12336bdb9ee56.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值