RIP
RIP路由特性
特点
- 根据适用范围是一种IGP路由协议,根据算法是一种距离矢量(DV)路由协议
- 是一种传闻式的路由,容易产生环路
- RIP不支持超网路由聚合
- RIP路由往外发路由信息时加1跳
- RIPV2兼容V1,V1不兼容V2,导致路由学习错误,设备两端版本要一致
- 发送路由更新是自己路由表当中的全部路由条目,30s发一次。
优缺点
优点
- 实现简单、配置简单,维护容易
- 对设备消耗小,适用小规模网络,网络结构变化缓慢的地区性网络
- 可以支持IP,IPX等多种网络层协议
缺点
- 逐跳收敛,收敛速度比较慢
- 周期性较短的泛洪路由,当路由条目比较多,对网络的负担较大
- 16跳限制,在选路控制时灵活性差
- 根据跳数选择最优路由,不能反映物理链路的真实带宽
- 易形成环路
协议报文
request(请求)
- 请求RIP路由信息
- 当接口激活RIP时发出,不会周期性发送
response(应答)
- 应答RIP路由信息
发送条件
- 收到request时(发送协议路由表中所有的RIP路由)
- 周期更新时(发送协议路由表中所有的RIP路由)
- 触发更新时(只发送有发生变化的RIP路由)
response报文MTU为512字节(不包含IP头),每一个RIP的路由条目占20字节,所以一个response报文最多能携带的路由条目为25条(20*25=500)+4字节的rip头+8字节的UDP头
RIP Response报文的接收检查:源地址(如果是点到点链路,可以不在同一个网段,需要在RIP下关闭源检查)
RIPv1和v2对比
RIPv1 | RIPv2 | |
---|---|---|
端口号 | UDP 520 | UDP 520 |
报文发送地址 | 广播 | 组播(224.0.0.9)、广播 |
路由协议 | 有类 | 无类 |
子网掩码是否发送 | 否 | 是 |
是否支持不连续子网 | 否 | 是 |
是否支持手动路由汇总 | 否 | 可关闭自动汇总,接口支持手动汇总 |
是否支持VLSM | 否 | 是 |
支持Tag | 否 | 是 |
是否支持身份验证 | 否 | 明文、MD5(华为支持抗重放) |
更新携带下一跳地址 | 否 | 是 |
- V1中不携带下一跳地址,收到路由时,将报文的源IP地址作为路由的下一跳地址;
- V2 携带下一跳地址,收到路由时,下一跳地址为0.0.0.0,使用报文的源IP地址作为路由的下一跳地址;如果下一跳地址非为0.0.0.0,使用改下一跳地址作为路由的下一跳。
- V2 携带下一跳地址主要作用:避免次优路径的问题
V1和V2的兼容性
RIP 兼容版本(默认)
- 发:V1报文
- 收:V1报文,V2的广播和组播报文
RIPV1版本
- 发:V1报文
- 收:V1报文
RIPV2版本
- 发:V2的组播报文
- 收:V2的广播和组播报文
RIPv2 Broadcast
- 发:V2广播报文(只是发送的地址是广播地址,报文还是V2,所以V1不能接收)
- 收:任何版本的RIP报文
- 接口下的版本配置优先进程下的版本配置
RIP工作过程:

初始只有直连路由,通过广播/组播发送请求,邻居设备发送response报文里面携带路由信息,再根据response报文中的所携带的路由选择自己所需要的,同时向其他设备扩散
过程分析:
- 初始状态:路由器开启RIP进程,宣告相应接口,则设备就会从相关接口发送和接收RIP报文。
- 构建路由表:路由器依据收到的RIP报文构建自己的路由表项。
- 维护路由表:路由器每隔30秒发送更新报文,同时接收相邻路由器发送的更新报文以维护路由表项。
- 老化路由表项:路由器为将自己构建的路由表项启动180秒的定时器。180秒内,如果路由器收到更新报文,则重置自己的更新定时器和老化定时器。
- 垃圾收集表项:如果180秒过后,路由器没有收到相应路由表项的更新,则启动时长为120秒的垃圾收集定时器,同时将该路由表项的度量置为16。
- 删除路由表项:如果120秒之后,路由器仍然没有收到相应路由表项的更新,则路由器将该表项删除。
RIP的定时器
周期更新:30S(25至30S内的一个随机时间)
更新RIP的路由条目,避免RIP路由被老化
老化时间:180S
当180S收到不到路由更新,会路由表中删除此路由,然后在将此路由变为16跳放入到数据库中
垃圾收集定时器:120S
不可达路由的数据库中存在的时间
不可达路由在120S之内也会发送给邻居的RIP路由,确保邻居能收到16跳的不可达路由
抑制时间(HW取消此时间):在抵制状态下,不收其它邻居传来的路由,除非跳数更小
RIP防环机制
定义最大值
RIP最大有效跳数为15,终点16
水平分割
从一个接口收到的路由,不能在该接口发出
默认启用,但是在FR/ATM场景是关闭
路由毒化和毒性逆转
路由毒化:
- 当一个路由器发现一条路由不可用,这个路由器会对邻居进行通告。
- RIP将度量值设为无穷大(16),再进行通告
毒性逆转:
- 当邻居收到通告后,会检查路由表,若没有发现通往该路由的其他路径,则会发送应答。→允许超越水平分割
- RIP应答也是将原路由的度量值设为16跳
水平分割和毒性逆转的差别
- 水平分割和毒性逆转都是为了防止RIP中的路由环路而设计的,但是水平分割是不将收到路由条目再按“原路返回”来避免环路,而毒性逆转遵循“坏消息比没消息好”的原则,即将路由条目按“原路返回”,但是该路由条目被标记为不可达(度量值为16)。
触发更新
- 当自己的路由表发生变化时,立刻通告给邻居;触发更新不影响周期更新时间
- 如果设备不具有触发更新功能,一个路由表项最多需要300秒才能被删除(老化时间+垃圾收集时间)。
- 如果存在触发更新,那么一个路由条目最多需要120秒才能被删除(即为垃圾收集时间)。
RIPV1的路由通告原则
路由发送规则:
- 将发送的路由和接口的IP地址进行对比,
- 如果是相同主类相同网段,直接发送网络前缀;
- 如果是相同主类不相同网段,直接聚合成主类(华为),思科不发
- 如果是不同主类,汇总成主类进行发送。
路由接收规则:
- 将接收的路由和接口的IP地址进行对比,
- 如果是相同主类相同网段,接收路由并且使用接口的掩码;
- 如果是相同主类不相同网段,直接聚合成主类
- 如果是不同主类,接收路由并且使用该路由的主类掩码。
V1的主机路由处理方式:
- 如果收到一条路由前缀,将该路由前缀与接口IP地址的掩码进行与运行,如果主机位为非零,生成主机路由;
- 如果主机位为零,使用接口IP地址的掩码生成网段路由。
路由聚合
V2的路由聚合配置
接口下聚合:只能在路由的出接口做聚合rip summary-address 10.1.0.0 255.255.0.0
进程下聚合summary
自动汇总,默认启用,但是接口开启水平分割功能主动汇总是失效summary alway
(华为) 强制自动汇总,默认不启用,接口开启水平分割也可以汇总
路由聚合会产生的问题
- 路由黑洞
- 路由环路
解决方案
- 针对汇总路由配置静态路由指向null 0接口
rip summary-address 10.1.0.0 255.255.0.0 **avoid-feedback**
- 表示从一个接口发出的汇总路由不会在从该接口收到(华为)
汇总后的开销,是选明细里最小的开销,加上1再发送出去
选路控制
通过调整RIP接口的COST值rip metricout
表示路由发出时增加的跳数,默认为1rip metricin
表示接收路由是增加的跳数,默认为0
通过过滤RIP的报文(一般用于连接主机或者不希望发出或者接收RIP报文的接口)undo rip output
禁止该接口发送RIP的报文undo rip input
禁止该接口接收RIP的报文silent-interface
表示该接口不能发送组播以及广播的RIP报文,可以接收rip报文,但是依旧可以发送单播报文,通常配置peer X.X.X.X
使用
通过路由策略工具过滤路由filter-policy ip-prefix X IMPORT/EXPORT
filter-policy gateway 1 import
针对路由的下一跳过滤ip ip-prefix 1 index 10 deny 192.168.2.1 32 greater-equal 32 less-equal 32
ip ip-prefix 1 index 20 permit 0.0.0.0 0 less-equal 32
表示拒绝接收路由下一跳地址为192.168.2.1的路由
RIP默认路由下发
RIP 进程下下放默认路由default-route originate
RIP的接口下下放默认路由rip summary-address 0.0.0.0 0.0.0.0
将所有的RIP路由做汇总,只产生一条默认的rip路由(华为)rip default-route originate
通告缺省路由和其他路由(H3C)rip default-route only
仅通告缺省路由(H3C)
RIP报文格式
RIPv1报文格式
RIP每条消息包含两个部分,分别为Header和Route Entries。其中Header包含Command和Version。Route Entries最多包含25个路由条目,每个路由条目包含Address Family Identifier、目的网段的IP地址和跳数。
报文格式各个字段解释如下:
- Command:取值1或2,当取值为1时表示该消息为请求消息;当取值为2时表示该消息为响应消息。
- Version:当取值为1时表示该消息为RIPv1消息;当取值为2时表示该消息为RIPv2消息。
- Address Family Identifier:对于IPv4协议,该字段取值为2。当该消息是对整张路由表的请求消息时,该字段取值为0。
- IP Address:该字段表示路由的目的地址。这一项可以是网络地址、主机地址。
- Metric:该字段是指RIP中的跳数。虽然该字段取值范围为0-2^32,但是在RIP中,该字段的取值范围为1-16。
RIPv1的协议报文中没有携带掩码信息,所以RIPv1在发送和接收路由更新时会根据主类网段掩码和接口地址掩码来处理路由条目。因此RIPv1无法支持路由聚合,也不支持不连续子网。RIPv1的协议报文中没有验证字段,所以RIPv1也不支持验证。
RIPv2报文格式
RIPv2的报文格式的基本结构和RIPv1相同。RIPv2使用了RIPv1中部分未用字段以提供扩展功能。
报文格式部分字段解释如下:
- Route Tag:用于标记外部路由或者引入到RIPv2协议中的路由。
- Subnet Mask:用来标识使用IPv4地址的网络和子网部分。
- Next Hop:表示比通告路由器地址更好的下一跳地址。如果该字段为0.0.0.0,则说明通告路由器地址为最优下一跳地址。
当RIPv2配置认证时,RIPv2会对报文第一条Route Entries进行修改。具体修改如下:
- Address Family Identifier字段改为0XFFFF。
- Route Tag字段改为Authentication Type字段。
- IP Address、Subnet Mask、Next Hop和Metric会变为口令字段。
MD5认证实际上是把路由表项和共享密钥进行与运算,然后路由器将运算结果和路由条目发送给对端邻居。
��对端邻居。