前言
路由信息协议RPI(Routing Information Protocol) 是一种基于距离矢量算法的协议,以跳数作为度量来衡量到达目的网络的距离。RIP主要用于规模较小的网络中。
它配置简单、易于维护、适合小型网络
RIP简介
- 距离矢量路由协议;属于IGP协议
- 适用于小型网络;有RIPv1、RIPv2两个版本
- 基于UDP;目标端口号520
- 周期性发送数据以维持最新路由表状态
- 支持水平分割、毒性逆转和触发更新等防环路特性
RIP工作原理
当路由器运行了RIP协议后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应(响应的前提是收到请求的路由器也开启了RIP协议)
当网络稳定后,路由器会周期性(默认30S)发送路由更新信息
RIP的度量值
RIP使用跳数作为度量值来衡量到达目的网络的距离,因此RIP不管链路带宽为多少
缺省情况下,直连路由的路由跳数为0;当路由器发送路由更新时,会把度量值加1
RIP规定超过15跳(16跳时)即网络不可达(也因此RIP协议只能用于小型规模的网络)
RIPv1与RIPv2
- RIPv1是有类(即:不会发送掩码)别路由协议,不支持VLSM和CIDR
- 以广播的像是发送报文
- 不支持认证
- RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR
- 支持以广播或者组播(224.0.0.9)方式发送报文
- 支持明文认证和MD5密文认证
RIPv1与RIPv2抓包对比
RIPv1报文格式
RIPv2报文格式
RIPv2的认证
RIPv2的认证功能使得此路由协议更加安全
RIPv2的认证方式有明文认证、MD5认证
RIP环路问题
当网络发生故障时,RIP网络有可能会产生路由环路
例如图中所描述:
对于RB来说,10.0.0.0/8网络是0跳,那么RB会将跳数加1后将信息发给RA
此时RA得知,到达10.0.0.0/8这个网络的跳数为1跳
过段时间,RA会将到达10.0.0.0/8网络的跳数加1后发给RB
正常情况下,RB不会接受这条信息,因为在RB的路由表里,到达10.0.0.0/8网络明明跳数是0跳 且是直连路由
但若10.0.0.0/8这条路不通的时候,RB将会接收来自RA的信息;于是RB的路由表就会变成:通往10.0.0.0/8网络是2跳
接下类:RB发给RA告诉RA3跳、RA又告诉RB4跳 以此循环,直到16跳为止双方才会发现10.0.0.0/8不可达
为解决上述问题,产生了水平分隔技术、触发更新技术
环路避免-水平分割
路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器
例如:RB告诉RA:到达10.0.0.0/8网络需要1跳
这时候RA只能收来自RB的告知,但RA绝对不能再告诉RB:到达10.0.0.0/8网络需要2跳
环路避免-触发更新
触发更新是指 当路由信息发生变化时,立刻向邻居设备发送触发更新报文
例如:当RB发现10.0.0.0/8接口挂了,将立刻告知RA:到达10.0.0.0/8网络需要16跳
环路避免-毒性反转
毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为16,并从原接受口发给邻居路由器
例如:RB告知RA10.0.0.0/8网络需要1跳,RA收到信息后,会将跳数加到16然后再发回给RB
此时,若网络无问题的情况下,RB不会接收此条信息
但网络一旦出现问题,RB会接收来自RA的信息,从而双方都得知10.0.0.0/8网络不可达
配置RIP
<>system-view
[]rip 1 #进入rip配置,进程号为1(不同进程能够路由的区域不同 例如:R1进程为1,R3进程为3,那么R1与R3是不通的)
[rip]version 2 #开启RIPv2
[rip]network xx.xx.xx.xx #宣告地址(即指定运行RIP的接口,只需要输入接口的主类网络地址即可,只有处于此网络中的接口,才能进行RIP报文的收发)
例如:R1连接了3个接口,则需要宣告3个网络
[]display rip #查看rip信息
RIP额外配置内容:
这两条命令会影响路由的选路
例如:
命令一:RB告知RA进入10.0.0.0/8网络是1跳,RA收到后私自加5,从而RA就会认为进入10.0.0.0/8网络为6跳
命令二:RB告知RA之前,先将跳数修改成5再告知RA,这时候RA得知进入10.0.0.0/8网络是5跳
[g0/0/0]rip metricin 5 #在接收路由时增加度量值 [g0/0/0]rip metricout 5 #在发送路由时修改度量值
禁止接口发送RIP包
例如:配置G0/0/0接口禁止发送RIP包(但能收到)
[g0/0/0]undo rip output
禁止接口接收RIP包
例如:配置G0/0/0接口禁止接收RIP包
[g0/0/0]undo rip input
抑制接口
让某个接口只收不发;例如:将G0/0/0接口抑制
这条命令的优先级大于上面两条 "rip input"、"rip output" 命令
[]rip [rip]silent-interface G0/0/0
开启、关闭水平分割
水平分割默认在接口上开启
例如:开启G0/0/0接口的水平分割、关闭G0/0/0接口的水平分割
[g0/0/0]rip split-horizon #开启水平分割 [g0/0/0]undo rip poison-reverse #关闭水平分割
开启、关闭毒性逆转
例如:开启G0/0/0接口的毒性逆转、关闭G0/0/0接口的毒性逆转
[g0/0/0]rip poison-reverse #开启毒性逆转 [g0/0/0]undo rip poison-reverse #关闭毒性逆转
查看详细的RIP接口信息
例如:查看关于G0/0/0接口的rip信息
[]display rip int g0/0/0 verbose标签:0.0,HCIA,rip,RIP,RB,路由,RA From: https://www.cnblogs.com/kakureru/p/17760415.html