RIP(routing Information Protocol)路由信息协议
RIP是一种基于距离矢量(Distance-Vector)算法的内部网关协议。
RIP适用场景:小规模,可靠性较低的网络。
RIPv1报文
RIP报文结构由头部(header)+路由条目(Route Entries)组成。
- Command:此字段1个字节,用来表示消息类型。1为requerst,2为response。
- Version:此字段1个字节,用来表示RIP的版本,取值为1时表RIPv1,取值为2时表示RIPv2。
- Address family identifier:2个字节,地址族标识。采用ipv4协议时取值为2,对整张路由表请求时取值为0
- ip address:4个字节。表示路由的目的地址。
- Metric:4个字节,指RIP中跳数。取值范围是2^32,但在RIP中取值为1-16。
RIPv1特点:
1、有类别路由协议,协议报文中不包含掩码信息,不支持路由聚合。
2、广播更新,广播地址:255.255.255.255。
3、基于UDP 520端口
RIPv2报文
RIP报文结构由头部(header)+路由条目(Route Entries)组成。
RIPv2报文格式基本机构和RIPv1相同,RIPv2使用了RIPv1中未采用的字段来提供扩展功能。
新增以下报文:
- Route Tag:标记外部路由或者引入到RIPv2协议中的路由。
- Subnet Mask:标识使用IPv4地址的子网掩码。
- Next Hop:表示通告路由器地址更改的下一跳。如果字段为0.0.0.0,则通告路由器地址为最优下一跳。
RIPv2特点:
1、无类别路由协议,协议报文中不包含掩码信息,支持CIDR、路由聚合。
2、组播更新,组播地址224.0.0.9
3、基于UDP 520端口
4、支持外部路由Tag;支持指定下一跳;支持认证
疑问:RIPv2为什么没有认证字段却支持认证?
RIPV2配置认证时,通过修改第一个路由条目当中address family Identifier字段值来实现的,当字段取值为0xFFFF时,route tag字段会改为Authentication type字段,ip address、sub mask、next-hop和metric变为口令字段。
RIPv2相较与RIPv1改进点:
- 支持外部路由标记,可以再策略路由中根据Tag对路由进行灵活控制。不同的RIP进程间相互也可以使用Tag。
- 报文中携带掩码信息,支持路由聚合、CIDR。
- 支持指定下一跳,在广播网中可以选择到目的网段最优的的下一跳地址
- 支持组播更新报文,只有运行RIPv2的设备才能收到报文,减少资源消耗。
- 支持对协议报文进行认证,增强安全性。
RIP三个计时器
- 更新计时器:它定时出发更新报文的发送,更新周期默认30秒。
- 老化计时器:RIP设备在老化时间内(180s)没有收到邻居发来的路由更新报文,则认为路由不可达。老化计时器超时后,该路由条目的度量值设置为16。
- 垃圾收集定时器:在垃圾收集时间内(默认更新计时器的4倍,120秒),不可达的路由没有收到来自同一邻居的更新,则该路由将被从路由表中彻底删除。
三个定时器关系
- RIP更新信息由更新计时器控制,默认每30s发一次。
- 每当收到路由更新信息时,老化定时器启动。如果老化定时器超时,则吧路由条目度量值设置为16,表示路由不可达,并开始启动垃圾收集定时器,如果垃圾定时器超时,则在路由表中删除改条目。
路由删除时长
- 如果设备不触发路由更新,一个路由条目最多需要300s才能被删除(老化时间+垃圾收集时间)
- 如果设备触发路由更新,一条路由最多需要120s才能被删除。
RIP工作过程
- 初始状态:路由器开启RIP进程,宣告相应接口,则设备就会从相关接口发送和接收RIP报文。
- 构建路由表:路由器依据收到的RIP报文构建自己的路由表项。
- 维护路由表:路由器每隔30秒发送更新报文,同时接收相邻路由器发送的更新报文以维护路由表项。
- 老化路由表项:路由器为将自己构建的路由表项启动180秒的定时器。180秒内,如果路由器收到更新报文,则重置自己的更新
定时器和老化定时器。 - 垃圾收集表项:如果180秒过后,路由器没有收到相应路由表项的更新,则启动时长为120秒的垃圾收集定时器,同时将该路由
表项的度量置为16。 - 删除路由表项:如果120秒之后,路由器仍然没有收到相应路由表项的更新,则路由器将该表项删除
水平分割
- 水平分割指的是RIP从某个接口学到的路由,不会再从该接口再发给邻居设备。
- RIP采用水平分割可以减少带宽消耗,还可以防止环路。
毒性逆转
- 毒性逆转指的是从RIP某个接口学到路由后,将该路由的开销设置为16(路由不可达),并从原接口发回邻居设备。
- 毒性逆转可以清除对方路由表中的无用路由。
水平分割和毒性逆转区别
- 都是为防止RIP路由环路而设计的。
- 水平分割是不将收到的路由条目再按原路返回来避免环路。
- 毒性逆转是将路由条目按原路返回并标记该路由不可达。
- 同时配置水平分割和毒性逆转,只有毒性逆转功能生效。
路由聚合
- 同一个自然段的不同子网的路由在向其他网段发送时聚合成一个路由发送。
- RIPv2支持路由聚合
- 基于RIPv2进程的有类聚合即实现自动聚合
- 基于接口聚合的即实现手动聚合。
路由控制配置
路由属性
ip ip-prefix 1 index 10 permit 10.0.0.0 24 greater-equal 24 less-equal 24 //设置前缀路由10.0.0.0/24
(接口下)rip metricout ip-prefix 1 3 //设置该路由出去时cost为3
(接口下)rip metricin 2 //设置路由进来时cost为2
控制路由发布
(rip进程)silent-interface 接口 //抑制接口,不发送报文,可与peer同时使用,向指定设备发布路由
(接口下)undo rip output/input //命令用来禁止接口发送/接收RIP报文
控制路由接受
ip ip-prefix 1 index 10 deny 192.168.2.1 32 greater-equal 32 less-equal 32 //拒绝192.168.2.1地址
ip ip-prefix 1 index 20 permit 0.0.0.0 0 less-equal 32 #允许其他地址
(rip进程)filter-policy1 import //基于网关过滤路由
常用配置
rip 1 //允许rip进程
version 2 //指定版本
network 172.16.0.0 //宣告路由
路由认证
(接口下)rip authentication md5 nonstandard Huawei //认证
(接口下)rip reply-protect //缓冲区设置
计时器时间设置
(rip进程)timers rip 10 60 40 //基于网关过滤路由