RIP概述
简介
- 距离矢量(DV)路由协议,属于IGP(Interior Gateway Protocol)内部网关协议
- 适用于中小型网络,有RIPv1和RIPv2两个版本
- 基于UDP,端口号为520
- 周期性更新(一般25s-30s更新一次)
- 支持水平分割(Split Horizon)、毒性反转(Poison Reverse)和触发更新等防环特性
- Router Information Protocol 路由信息协议
优缺点
- 配置简单
- 易于维护
- 适用于小型网络
RIP工作原理
工作流程
- 路由器运行RIP后,会首先发送更新请求Request
- 收到请求的路由器会将自己的路由表封装到Response中响应(周期性的更新)给请求的路由器
- 网络稳定后,路由器会周期性(25s-30s)的响应路由更新信息
图示
RIP开销(度量)
RIP开销
- RIP使用跳数作为度量值,来衡量到达目的网络的距离
- 缺省情况下,直连网络的路由跳数为0,当路由器发送路由更新的时候度量值会+1
- RIP规定超过15条为网络不可达
图示
RIPv1与RIPv2
简介
RIPv1
- RIPv1以全广播的方式发送报文
- RIPv1是有类别路由协议,不支持VLSM和CIDR
- 不支持认证
RIPv2
- RIPv2支持广播或组播的方式发送报文,组播地址是:224.0.0.9
- RIPv2是无类别路由协议,支持VLSM、路由聚合和CIDR
- 支持明文认证和MD5密文认证
报文
RIPv1
报文
解析
RIPv2
报文
解析
认证
RIP环路
图示
RIP环路配置
R1配置
1 | sys |
R2 配置
1 | sys |
其他的问题
- network 1.0.0.0 如果只有部分子网对应的接口走RIP协议,怎么将别的接口不走RIP协议
- 不同的进程号表示不同的数据库
- 可以在RIP中注入RIP
环路产生流程
- 正常情况
- 在R1与R2都开启RIP之后
- R1将自己直连的路由,通过RIP宣告给R2,对R1来说是0跳,对R2来说是1跳,R2也将自己从R1学习到有关R1直连设备的路由信息发送给R1,此时R1收到关于自己的直连设备的路由信息是0跳和2跳,在开启RIP机制的情况下,R1不会相信R2发过来有关自己直连的设备的路由信息。此时,就不会产生RIP环路
- R2将自己直连的路由,通过RIP宣告给R1,对R2来说是0跳,对R1来说是1跳
- 环路情况
- RIP会周期性宣告自己的路由更新
- R1将自己直连的路由,通过RIP宣告给R2,对R1来说是0跳,对R2来说是1跳
- R2会将自己从R1学到的有关R1直连设备的路由更新信息再次发给R1,此时R1收到两条有关自己直连设备的路由信息;当R1直连设备宕机的情况下,R1路由器将标记这条路由处于不可达的状态(即该条路由是16跳)。然而,R1需要等到路由信息更新时候才会将这条不可达的路由宣告出去(R1在30s左右时间更新路由信息),此时,R1会相信从R2学过来的有关自己直连设备的路由信息(即此时R1到自己直连设备的路由为2跳,并且下一跳为R2路由器的接口地址),此时,RIP协议的路由就产生了环路。知道RIP路由跳数是16后停止
避免环路的机制
水平分割(split-horison)
路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器
图示
毒性反转(Poison-reverse)
路由器从某个接口学到的路由后,将该路由的条数设置成16跳,并将从原接收接口发回给邻居路由器
与水平分割是矛盾的,默认是不开启的,当两个都开启的时候,优先执行毒性反转(poison reverse)机制
图示
触发更新
当路由信息发生变化的时候,立即向邻居设备发送触发更新的报文
图示
RIP高级配置
Output
在路由器的接口上可以禁止该接口发送RIP报文
图示
Input
在路由器的接口上可以禁止该接口接收RIP报文
图示
抑制接口
配置路由器的某个接口为抑制状态,只接受RIP报文
此命令的优先级大于rip input 与 rip output
命令
1
2rip 1
[R1-rip-1]silent-interface GigabitEthernet 0/0/1
图示
水平分割(Split-horizon)与毒性反转(Poison-reverse)
查看RIP详细信息的命令
命令
1
dis rip 1 interface g0/0/2 verbose
图示
图示
命令
1 | <R2>sys |
其他配置
查看配置
查看RIP接口详细信息
1
dis rip 1 # 1代表RIP进程号
查看RIP信息
1
dis rip int g0/0/0 verbose
调整度量值
Metricout
接受RIP路由信息的时候,Cost自动增加N个
命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<R2>sys
Enter system view, return user view with Ctrl+Z.
[R2]int
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]rip metricout
[R2-GigabitEthernet0/0/0]rip metricout 5 #将所有从此接口出去的RIP路由信息的Cost该为5
[R2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 12.0.0.2 255.255.255.0
rip metricout 5
rip poison-reverse
#
return
图示
Metricin
接受RIP路由信息的时候,Cost自动增加N个
命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33<R2>sys
Enter system view, return user view with Ctrl+Z.
[R2]int
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]rip metricin
[R2-GigabitEthernet0/0/0]rip metricin 5 # 路由器的该接口在接受RIP路由信息后,Cost自动增加5
[R2-GigabitEthernet0/0/0]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/0
ip address 12.0.0.2 255.255.255.0
rip metricin 5
rip metricout 5
rip poison-reverse
#
return
[R2-GigabitEthernet0/0/0]q
[R2]dis ip rout
[R2]dis ip routing-table pro rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
Destinations : 1 Routes : 1
RIP routing table status : <Active>
Destinations : 1 Routes : 1
Destination/Mask Proto Pre Cost Flags NextHop Interface
1.0.0.0/24 RIP 100 6 #Cost的值1+5 D 12.0.0.1 GigabitEthernet0/0/0
RIP routing table status : <Inactive>
Destinations : 0 Routes : 0
图示