Rip

路由信息协议RIP(Routing information Protocol)的简称,它是一种较为简单的内部网关协议IGP(Interior Gateway Protocol),主要应用于规模较小的网络中。

协议优先级为100,它是一种基于距离矢量(Distance-Vector)算法的协议,传言机制,使用跳数作为度量,它通过UDP报文进行路由信息的交换,使用的端口号为520。

RIP主要应用于规模较小的网络中,路由器有效跳数为15跳,最大跳数不能超过16跳,否则路由信息不可达。RIP路由协议设置最大跳数为15跳是因为可能形成环路,因此才定义16跳为不可达。毒性逆转主要是为了尽快扩散不可达链路信息:当一个链路不可达的时候就直接把该链路置为16跳并实现触发更新,这样所有的对端设备就可以很快知道该链路不可达了。缺省情况下,设备到与它直接相连网络的跳数为0,通过一个设备可达的网络的跳数为1,其余依此类推。也就是说,度量值等于从本网络到达目的网络间的设备数量。为限制收敛时间,RIP规定度量值取0~15之间的整数,大于或等于16的跳数被定义为无穷大,即目的网络或主机不可达。由于这个限制,使得RIP不可能在大型网络中得到应用。

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

 Rip_第1张图片

路由器从邻居那获得非直连网络的路由信息,路由器每经过特定时间周期向邻居发送自己的路由表。

一. RIP工作原理:

 Rip_第2张图片

① 路由器运行RIP后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应。

② 网络稳定后,路由器会周期性(30S)发送路由更新信息。

二. RIP-v1:

有类别路由协议(Classful Routing Protocol),不支持无类路由,在传递过程中不携带子网掩码。

RIP是一个基于UDP协议的,并且RIP-1的数据包不能超过512字节,并且RIP的路由最多只能存在25条路由条目,RIP-1的协议报文中没有携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1无法支持路由聚合,也不支持不连续子网(Discontiguous Subnet)。

1. RIP-v1特点:

① RIPv1在发送请求报文和响应报文的时候,目的地址都是广播地址,即:255.255.255.255。这样的报文发送方式,网络中的所有设备都会收到

② RIPv1是有类路由协议,因此它在传递路由的时候不携带子网掩码,所以无法支持可变长度的子网掩码(VLSM)和无类域间路由(CIDR)。

③ 因为RIPv1是有类路由协议,所以会自动汇总,且无法关闭

④ RIPv1还无法支持链路之间的认证

⑤ RIPv1对路由没有标记的功能

⑥ RIPv1发送的response的报文里面没有next-hop属性

2. RIP-v1报文:

(1)RIP-v1报文特点:

① 使用广播地址进行路由更新

② 基于UDP进行传递,源端口号和目标端口号都为520

③ 每30S泛洪一次广播路由表,180S路由条目失效。

注:只有首次配置完RIP后会发送Request请求信息,在收敛后,两端会每隔三十秒自动发送Response刷新邻居的路由表

(2)RIP-v1报文格式:

RIP报文为4Byte的头部+20Byte的路由信息,由于历史原因,一个RIP报文不能超过512Byte,中最多可以存放25条路由信息,所有RIP报文的总长度为:25*20+4=504(Byte

 Rip_第3张图片

  • 头部(4Byte):

① Command1Byte,命令类型:

a)       1为Request

b)       2为Response

② Version1Byte,版本,用于标识RIP版本

③ Must be Zero2Byte,保留

  • 路由信息(20Byte):

① Address Family Identifier地址协议簇,V1中总为2(IP)

⑤ IP Address路由前缀

⑥ Metric开销值

(3)RRIP-v1报文类型:

① Request请求报文:

路由器会在以下情况发送Request报文:

① 运行RIP的路由器重启

② RIP进程重启

③ 当一个down又UP的时候,接口会发送Request报文

注:Request报文中,AFI、IP前缀都为0,Metric为16

 Rip_第4张图片

② Response回复报文:

 Rip_第5张图片

3. . RIP-v1转发规则:

(1)发送更新规则:

① 发送路由与发送接口不为同一主类网络,将发送的路由条目汇总成主类网络,广播出去(自动汇总)

② 发送路由与发送接口为同一主类网络,路由条目与发送接口的掩码一致,不做任何汇总直接发送该路由

③ 发送路由与发送接口为同一主类网络,路由条目与发送接口的掩码不一致,生成一条主类路由通告出去

(2)接收更新规则:

① 接收到的路由与接收接口地址不为同一主网,直接匹配主网掩码

② 接收到的路由与接收接口地址属于同一主网

  • 匹配主网掩码,主机位如果为全零,放入路由表
  • 匹配接口掩码,主机位如果为全零,放入路由表
  • 匹配32位主机地址,放入路由表

三. RIP-v2:

1. RIP-v2特点:

① RIP-v2支持无类网络

② 支持VLSM和CIDR,同时支持路由汇总

③ 支持对端明文认证和MD5认证

④ 支持Tag标签

⑤ 支持Next-Hop属性

⑥ 以组播的形式发送报文,组播地址为224.0.0.9/00-01-5E-00-00-09

注:可以使用命令将组播变为单播和广播

2. RIP-v2报文:

(1)RIP-v2报文特点:

① 使用组播地址进行路由更新,目标地址为224.0.0.9/00-01-5E-00-00-09

② 基于UDP进行传递,源端口号和目标端口号都为520

③ 每30S泛洪一次广播路由表,180S路由条目失效

注:只有首次配置完RIP后会发送Request请求信息,在收敛后,两端会每隔三十秒自动发送Response刷新邻居的路由表

(2)RIP-v2报文格式:

RIP-v2报文为4Byte的头部+20Byte的路由信息,一个RIP报文中最多可以存放25条路由信息,所有RIP报文的总长度为:25*20+4=504(Byte

 Rip_第6张图片

  • 头部:

① Command命令类型:

a)       1为Request

b)       2为Response

② Version版本,用于标识RIP版本

③ Unused保留

  • 路由信息:

④ Address Family Identifier地址协议簇,表示下面承载的信息,IP路由或认证字段

⑤ Route Tag路由标签

⑤ IP Address路由前缀

⑥ Subnet Mask子网掩码

⑦ Next Hop下一跳

⑧ Metric开销值

注:V2报文在V1报文增加了以下选项:

① 增加了掩码

② 增加了Next Hop

③ 增加了验证

注:增加了验证的报文,所以直接将使用路由空间进行认证

(3)RIP-v2报文类型:

① Request请求报文:

 Rip_第7张图片

② Response回复报文:

 Rip_第8张图片

2. 路由汇总:

RIP-v2路由默认会对vlsm路由进行主类网络汇总,也可以使用手工方式进行路由汇总。

[Huawei-GigabitEthernet0/0/1]rip summary-address 192.168.0.0 255.255.0.0

注:如果汇总中的明细路由开销值(跳数)不一致,则选择明细路由跳数最小的开销值作为汇总路由的开销值

汇总路由特点:

① 抑制明细路由,只通告一条汇总粗路由

② 明细路由全部消失,汇总路由消失

③ 汇总路由的开销值为明细路由中开销值最好的

汇总路由优点:

汇总路由的优点:

汇总路由的缺点:

1.减少路由表的路由条目

1.汇总度过大,造成路由黑洞

2.减小发送的路由条目

2.可能造成环路

3.减少路由抖动对网络的影响

 

  • 汇总路由造成环路场景1

 Rip_第9张图片

当AR1访问10.1.1.1、10.1.2.1以外的网段时,造成环路

注:解决路由汇总可能出现环路的方法:

为写一条静态路由,路由条目与汇总路由一致,将目标端口指向Null口,没有匹配到的路

由最终送入Null0

  • 汇总路由造成环路场景2

 Rip_第10张图片

如果两端的聚合路由相同,汇总条目后加入参数avoid-feedback命令,本接口将不再学习到和已发布的聚合IP地址相同的聚合路由,从而起到防止产生环路的作用,相当于汇总路由无意义

3. 验证:

验证对密码加密,可以防止攻击者的非法设备接入当前网络,但验证无法对报文进行加密。

RIP-v2版本支持对端对端的验证:

① 明文认证

② MD5认证

注:RIP-v1不支持密码认证,在端口上配置密码,也不会进行验证

(1)明文认证:

在传输报文时,密码会明文显示传输,最多可以配置16个字母,也就是16Byte,占用了4Byte的IP地址+4Byte的掩码+4Byte的开销值

注:默认如果不配置RIP认证,RIP路由报文可以存在25条路由条目,如果启用明文认证,认证字段为20Byte,所以占用了一条路由条目,所以如果配置了认证的UDP数据包,最多可以存放24条路由条目

配置命令:

[Huawei-GigabitEthernet0/0/1]rip authentication-mode simple Huawei

注:ensp验证密码需要重新启动接口

(2)MD5认证:

使用MD5认证会将密码生成密文

注:默认如果不配置RIP认证,RIP路由报文可以存在25条路由条目,如果启用MD5认证,认证头会占用第一个路由空间20Byte,认证字段会占用最后一个路由空间为20Byte,所以占用了两条路由条目,所以如果配置了MD5认证的UDP数据包,最多可以存放23条路由条目

 Rip_第11张图片

MD5认证过程(IETF模式):

① 本端通过使用管理员手工配置的Key ID对应的密钥对密码进行加密,生成哈希值

② RIP路由通过携带哈希值和Key ID送往对端,对端使用相应的Ked ID对应的密钥对密码

进行解密

注:华为私有Key ID为随机设置

4. 支持Tag标签:

RIP-v2支持路由表tag标签的携带,用于解决路由环路的问题:

 Rip_第12张图片

拓扑中RIP和OSPF相互引入,如果192.168.5.0/24的网段断掉,OSPF没有及时发送路由信息给RIP,RIP会从R8将192.168.5.0/24的网段在传回来,造成网络环路。

配置Tag标签解决环路问题:

[Huawei]ip  ip-prefix 1 index 5 permit 192.168.5.0 24

[Huawei]route-policy tag permit node 5

[Huawei-route-policy]if-match  ip-prefix 1

[Huawei-route-policy]apply tag 100

[Huawei]route-policy tag permit node 10

5. Next-Hop Feature:

RIP-v2在V1的基础上在报文中增加了Next-Hop属性,用于防止次优路径的发生。

 Rip_第13张图片

AR1与AR3之间运行OSPF,AR1与AR2之间运行RIPv2,在AR1上OSPF路由引入RIP中

  • 如果没有Next-Hop属性时,此时AR2会将数据包交给AR1,在由AR1交给AR3
  • 当存在Next-Hop属性时,此时在路由信息前将AR3的IP地址放入Next-Hop列表中,此时AR2会直接将数据交给AR3

 Rip_第14张图片

此时,路由表中的下一跳地址为192.168.1.3,AR2去往AR3方向的数据时,二层地址就直接封装AR3接口的MAC地址,交换机直接将数据转发给AR3,防止了次优路径的发生。

注:如果Next-Hop的IP地址和当前接收到此RIP条目的地址不在同网段,路由器将拒绝此路由

四. 单播RIP:

RIPv1和RIPv2都支持单播建立邻居,提供更加灵活的组网

 Rip_第15张图片

三台都启用RIP的路由器,如果只想要AR1和AR2之间传递RIP路由信息,存在两种方法

① AR1和AR2配置相同的密码认证

② AR1和AR2单播指路由表目标地址

配置:

AR1:

注:如果直接使用Peer命令,则组播报文和单播报文同时都发,所以首先将端口设置为Silent端口停止组播报文的发送

[Huawei-rip-1]silent-interface all

[Huawei-rip-1]peer  192.168.1.2

五. RIP计时器:

RIP协议在更新和维护路由信息时主要使用四个定时器:

① Update timer更新定时器

② Age timer老化定时器

③ Garbage-collect timer垃圾收集定时器

④ Suppress timer 抑制定时器

使用一下命令修改各个参数:

[Huawei-rip-1]timers rip 10 15 1----修改Update时间为10S,Age time为15s,垃圾收集定时器为1S

(1)Update timer:

更新定时器,档次定时器超时时,立即发送更新报文。默认时间为30S

(2)Age timer:

老化定时器,RIP设备如果在老化时间内没有收到邻居发送过来的路有更新报文,则认为路由不可达,路由表删除此条路由条目,数据库中保留此路由条目并开启垃圾收集器时间。默认Age timer为180S。

(3)Garbage-collect timer:

垃圾收集定时器,如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将从数据库中彻底删除。所以当一条路由条目从失效到删除时间为300S(180+120),默认Garbage-collect时间为120S。

六. 链路故障收敛:

1. 非直连链路故障收敛:

 Rip_第16张图片

① 当AR2与LSW1的链路故障down掉

② AR3收不到AR2的RIP路由,启用Age timer定时器

注:在Age timer没超时前,依旧每隔30S向AR4发送RIP路由更新,路由条目中依旧包含192.168.1.0/24的有效路由条目

③ 当AR3的Age timer超时后,路由表将192.168.1.0/24路由条目删除,并启用garbage-collect timer定时器

④ 在garbage-collect timer定时器期间,AR3每30S向AR4发送Update 报文,将192.168.1.0/24的路由条目开销值设置为16,毒化此路由条目

⑤ AR4收到此毒化路由后,删除路由表象,并启用Garbage-collect timer

③ 当AR3的garbage-collect timer在120S超时后,192.168.1.0/24的路由条目将从AR3的Database中消失

2. 直连链路故障:

 Rip_第17张图片

① 当AR2与LSW1的链路故障down掉

② AR3直接将从该接口接收到的所有路由全部从路由表中删除,并启用garbage-collect定时器

③ 在garbage-collect timer定时器期间,AR3每30S向AR4发送Update 报文,将192.168.1.0/24的路由条目开销值设置为16,毒化此路由条目

④ AR4收到此毒化路由后,删除路由表象,并启用Garbage-collect timer

⑤ 当AR3的garbage-collect timer在120S超时后,192.168.1.0/24的路由条目将从AR3的Database中消失

七. RIP防环机制:

1. RIP环路:

RIP的路由更新可能导致路由环路,通常一条路由条目的失效,如果没有防环机制,RIP会经历两个阶段:

① 路由失效,路由互指,环路出现

② 跳数递增,路由失效,环路解除

 Rip_第18张图片

(1)路由失效,路由互指,环路出现:

① RTB更新自己的网段10.0.0/8的路由信息给RTA。

② 由于是距离矢量,RTA每隔30S将自己的路由表信息(包含10.0.0.0/8)发送给RTB,但是RTB认为10.0.0.0/8的路由条目为自身网段,不会接受此路由条目

③ RTB的10.0.0.5/24的网段断掉,在180S内处于不激活状态,但是没有到达30S,不发送更新的路由表项给RTA

④ RTA由于没有收到RTB的更新路由信息,依旧认为10.0.0.0/8处于激活状态,并在30S后发送给RTB(度量值为2)

⑤ RTB收到RTA发送过来的路由表,发现10.0.0.0/8的路由条目为激活状态,并认为去往10.0.0.0/8的目标地址通过RTA,度量值为2,刷新自己的路由表,形成环路

⑥ 此时RTB每隔30S将10.0.0.8/24的路由条目传递给RTA,RTA依旧将此路由条目传递给RTB,每次传递,开销值都加1,在跳数有效期内,路由环路

(2)跳数递增,路由失效,环路解除:

两端互指,跳数不断增加,最终增加到16跳时,当其中一台路由器接收到16跳的路由条目,

认为此路由不可达,将其删除,环路解除

2. RIP防环机制:

为了防止RIP环路,可以使用防环机制避免环路的产生:

① Split horizon水平分割

② Poison reverse毒性反转

③ Trigger update触发更新

(1)Split horizon:

水平分割,路由器从某个接口学到的路由,不会从该接口在发送给邻居路由器

注1:huawei设备默认开启水平分割,使用以下命令关闭水平分割,使用以下命令关闭:

[Huawei-GigabitEthernet0/0/0]undo rip split-horizon

注2:在帧中继Hub-Spoke模式中,HUB端要关闭水平分割

 Rip_第19张图片

(2)Poison reverse:

毒性反转是指路由器从某个接口学到路由后将该路由的跳数设置为16,并从原接口发送给邻居路由器。

注1:水平分割与毒性反转互斥,默认只能配置一种,如果两种都配置,默认使用毒性反转。

注2:使用以下命令开启毒性反转:

[Huawei-GigabitEthernet0/0/0]rip poison-reverse

 Rip_第20张图片

(3)Trigger update:

触发更新是指当路由信息发生变化时,立即向邻居设备发送触发更新报文(只发送失效路由条目),将故障网段设置为16跳(路由毒化),当邻居收到毒化路由时,将此路由条目删除。

 Rip_第21张图片

注:Route poisoning

路由毒化,当一台路由器直连的网段出现问题后,路由器会发送一条RIP路由信息给邻居,将此路由条目的跳数设置为16跳不可达,当网络中的路由器收到此条路由条目后,会删除此条无效的RIP路由,路由毒化只会删除从接口上收到的毒化信息对应的路由条目,如果两个接口收到相同的路由,而只从一个接口收到毒化信息,只删除此接口的,不会删除其他接口上收到的此路由信息。

八. RIP特殊接口:

(1)undo  Input接口:

 Rip_第22张图片

在接口上配置rip input接口后,该接口将禁止接收RIP报文。

配置命令(接口下):undo rip input

(2)undo output接口:

 Rip_第23张图片

在接口上配置rip output接口后,该接口将禁止发送RIP报文(包括Request和Response)。

配置命令(接口下):undo rip output

(3)被动接口:

 Rip_第24张图片

配置接口为rip被动接口,默认只接收RIP报文,不发送Response报文,但是发送Request报文。

注:被动接口不会发送组播的Response报文,但是发送组播的Request报文,并且如果配置了单播邻居,也会发送单播的Response

配置命令(rip视图下):silent-interface g0/0/1

九. 版本兼容:

(1)RIP-V1:

使用命令[Huawei-rip-1]version 1将RIP版本设置为版本1

  • 发送版本1格式的广播报文
  • 接收版本1格式的广播报文

 Rip_第25张图片

(2)RIP-v2:

使用命令[Huawei-rip-1]version 2将RIP版本设置为版本2

  • 发送版本2格式的组播报文
  • 接收版本2格式的组播、广播报文

 Rip_第26张图片

(3)RIP-v1兼容模式:

默认模式

  • 发送版本1的广播报文
  • 接收版本1的广播报文;接收版本2的组播、广播报文

 Rip_第27张图片

(4)接口版本:

接口下配置[Huawei-GigabitEthernet0/0/0]rip version 2 broadcast调整此接口的RIP类型,优于全局配置

  • 发送RIP-v2格式的广播报文
  • 接收RIP-v1格式的广播报文;接收RIP-v2的组播、广播报文

 Rip_第28张图片

(5)版本差异举例:

路由器A

路由器B

现象

v1

v1

两边路由正常

v1

V2

两边路由都不正常

v1

兼容模式

两边路由正常

v1

v2广播

左侧路由不正常

v2

v2

两边路由正常

v2

兼容模式

左侧路由不正常

v2

v2广播

两边路由正常

兼容模式

兼容模式

两边路由正常

兼容模式

V2广播

两边路由正常

举例:

 Rip_第29张图片

针对AR10--RIP-v1的19.2168.10.0/24网段:

  • RIP-v1发送RIP-v1格式的广播报文给AR11,AR11为兼容模式,接收此路由条目
  • AR11发送RIP-v1格式的广播报文给AR12,AR12为v2,不接收v1格式的广播报文

针对AR11--RIP-v1兼容模式的19.2168.20.0/24网段:

  • RIP-v1兼容模式发送RIP-v1格式的广播报文给AR10,AR10为RIP-v1版本,接收RIP-v1格式的广播报文
  • RIP-v1兼容模式发送RIP-v1格式的广播报文给AR12,AR12为RIP-v2版本,不接受RIP-v1格式的广播报文

针对AR11--RIP-v1兼容模式的19.2168.20.0/24网段:

  • RIP-v2模式发送RIP-v2模式的组播报文,RIP-v1兼容模式接收所有的报文,所以接收此报文
  • RIP-v1兼容模式发送RIP-v1模式的广播报文,所以RIP-v1路由器接收此RIP-v1模式的广播报文

十. RIP常见配置:

(1)Metric值修改:

 Rip_第30张图片

① 在AR2上修改,针对1.1.1.1/24的路由条目在传递给AR4时开销值加4

[Huawei]ip ip-prefix 1 index  5 permit  1.1.1.1 32

[Huawei]inter g0/0/1

[Huawei-GigabitEthernet0/0/1]rip metricout ip-prefix  1 4

② 将AR2上所有从G0/0/1端口收到的路由全部加3

[Huawei]inter g0/0/1

[Huawei-GigabitEthernet0/0/1]rip metricin  3

十一. 面试:

1. Distance-Vector特点:

(1)优点:

① 报文直接传递路由,可以在任何位置做汇总、路由过滤

(2)缺点:

① 容易产生环路

2. RIP版本的共同点:

① RIPv1和RIPv2都是距离矢量型的路由协议

② RIPv1和RIPv2都是通过UDP的520端口来操作的,因此RIP是封装在UDP的报文中的,需要注意的是源和目的端口都是520。

③ RIPv1和RIPv2都定义了两种报文类型:请求报文(request message)和响应报文(response message)。

④ RIPv1和RIPv2都是使用“跳”数(hop count)作为度量值,1“跳”表示该路由始发于它直接相连的网络,有效“跳”数是15跳。如果达到了16“跳“,RIP就会认为该目标是不可达的,因此RIP只能适用于小型网络中。

⑤ RIPv1和RIPv2都使用相同的定时器,水分分割机制,触发更新机制,路由毒化机制。

3. RIP版本区区别:

 Rip_第31张图片

 

你可能感兴趣的