详解RIP协议的工作原理、版本对比、配置方法,以及在小微企业和特定场景中的实际应用
前言
“RIP协议?这么老的协议还有人用?”
“都什么年代了,还学RIP?”
“听说RIP被淘汰了,不需要学了吧?”
很多人觉得RIP是"上古时代"的协议,早就应该被淘汰了。但事实上,RIP并没有消失,它在某些特定场景下仍然是最佳选择。今天我们就来聊聊这个"老而弥坚"的路由协议。
一、RIP是什么?
1.1 RIP的定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP官方定义 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ RIP = Routing Information Protocol │ │
│ │ │ │
│ │ 中文: 路由信息协议 │ │
│ │ │ │
│ │ 核心特点: │ │
│ │ ├── 🔶 距离矢量路由协议 (Distance Vector) │ │
│ │ ├── 🔶 基于跳数(Hop Count)选路 │ │
│ │ ├── 🔶 最大跳数限制为15跳 │ │
│ │ ├── 🔶 配置极其简单 │ │
│ │ └── 🔶 UDP端口520 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
1.2 通俗理解RIP
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
34
35
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP通俗比喻 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 想象你在一个陌生的地方问路: │ │
│ │ │ │
│ │ 👤 你: "请问去地铁站怎么走?" │ │
│ │ │ │
│ │ 👨💼 路人甲: "我不知道,但我知道去火车站的路线" │ │
│ │ 👨💼 路人乙: "去火车站?那要先经过一个路口" │ │
│ │ 👨💼 路人丙: "地铁站啊?要过2个路口" │ │
│ │ │ │
│ │ RIP的工作方式: │ │
│ │ ├── 每个"路人"只知道去某些地方要"跳"几步 │ │
│ │ ├── 跳数越少,说明越近 │ │
│ │ └── 最多只能跳15步,超过就"太远了" │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ RIP的局限性: │ │
│ │ │ │
│ │ 想象问路时: │ │
│ │ ├── "这条路近但是很堵" → RIP不知道(只看跳数) │ │
│ │ ├── "这条路快但是要收费" → RIP不知道(只看跳数) │ │
│ │ └── "这条路虽然跳数多但有高速" → RIP不知道 │ │
│ │ │ │
│ │ RIP只看"多少步",不看"路好不好" │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
1.3 RIP vs 其他协议
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
34
35
36
37
38
39
|
┌─────────────────────────────────────────────────────────────────┐
│ 路由协议对比表 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 对比项 │ RIP │ OSPF │ BGP │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 协议类型 │ 距离矢量 │ 链路状态 │ 路径向量 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 最大跳数 │ 15 │ 无限制 │ 无限制 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 选路依据 │ 跳数 │ 带宽 │ 策略 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 收敛速度 │ 慢 │ 快 │ 慢 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 路由环路 │ 可能 │ 无 │ 无 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 资源消耗 │ 低 │ 中 │ 高 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 配置复杂度 │ 低 │ 中 │ 高 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 适用规模 │ <15跳 │ 中大型 │ 运营商级 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ VLSM支持 │ 仅v2 │ 支持 │ 支持 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 一句话总结: │ │
│ │ │ │
│ │ RIP = 最简单的"跳数计数",适合小型网络 │ │
│ │ OSPF = 智能的"地图导航",适合中大型网络 │ │
│ │ BGP = 复杂的"策略选路",适合运营商/企业互联 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
二、RIP工作原理
2.1 距离矢量协议基础
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
34
35
36
37
38
39
40
41
|
┌─────────────────────────────────────────────────────────────────┐
│ 距离矢量协议原理 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 什么是距离矢量? │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ "距离" = 跳数 (Hop Count) │ │
│ │ "矢量" = 方向 (Next Hop) │ │
│ │ │ │
│ │ 每个路由器只知道自己: │ │
│ │ ├── "到某个网络有多远"(跳数) │ │
│ │ └── "走哪个方向能到达"(下一跳) │ │
│ │ │ │
│ │ 每个路由器不知道: │ │
│ │ ├── 完整网络拓扑 │ │
│ │ ├── 其他路由器的完整路由表 │ │
│ │ └── 链路的带宽/延迟 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ RIP的"距离矢量" │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ RIP的跳数规则: │ │
│ │ ├── 直连网络: 跳数 = 0 │ │
│ │ ├── 经过1个路由器: 跳数 = 1 │ │
│ │ ├── 经过2个路由器: 跳数 = 2 │ │
│ │ ├── ... │ │
│ │ └── 跳数 = 16 时,视为"不可达" │ │
│ │ │ │
│ │ ⚠️ 为什么最大15跳? │ │
│ │ ├── 防止路由环路 │ │
│ │ ├── 限制网络规模 │ │
│ │ └── 超过15跳的网络,RIP就不适用了 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
2.2 RIP工作流程
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP工作流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 初始化 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 每个RIP路由器启动时: │ │
│ │ ├── 宣告自己的直连网络(跳数=0) │ │
│ │ ├── 等待邻居路由器发来路由更新 │ │
│ │ └── 初始化路由表 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 定期更新 (每30秒) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ RIP路由器定期向邻居发送: │ │
│ │ ├── 自己的完整路由表 │ │
│ │ └── 邻居收到后更新自己的路由表 │ │
│ │ │ │
│ │ 接收路由时的处理逻辑: │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ if 邻居说能到X,跳数是N: │ │ │
│ │ │ 我的跳数 = N + 1 │ │ │
│ │ │ │ │ │
│ │ │ if 我原来没有X的路由: │ │ │
│ │ │ 添加这条路由 │ │ │
│ │ │ │ │ │
│ │ │ else if 新的跳数更小: │ │ │
│ │ │ 更新这条路由 │ │ │
│ │ │ │ │ │
│ │ │ else if 来自同一个邻居且跳数相同: │ │ │
│ │ │ 更新路由(防环路) │ │ │
│ │ │ │ │ │
│ │ │ else if 跳数>=16: │ │ │
│ │ │ 标记为不可达,删除 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 触发更新 (网络变化时) │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 当路由发生变化时: │ │
│ │ ├── 立即发送更新(不等待30秒) │ │
│ │ ├── 通知邻居路由变化 │ │
│ │ └── 加快收敛速度 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
2.3 路由环路问题
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
┌─────────────────────────────────────────────────────────────────┐
│ 路由环路与解决方法 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 什么是路由环路? │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ 网络中断时可能发生: │ │ │
│ │ │ │ │ │
│ │ │ 路由器A ──跳1──▶ 路由器B │ │ │
│ │ │ ▲ │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ └─────── 跳2 ────┘ │ │ │
│ │ │ │ │ │
│ │ │ A以为B能到某网络,B以为A能到某网络 │ │ │
│ │ │ 数据包在A和B之间来回跳转,直到跳数=16 │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ RIP防环机制 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 1️⃣ 计数到无穷大 (Count to Infinity) │ │
│ │ └── 跳数最大限制为15,16视为不可达 │ │
│ │ └── 限制了环路的影响范围 │ │
│ │ │ │
│ │ 2️⃣ 水平分割 (Split Horizon) │ │
│ │ └── 从某个邻居学来的路由,不再传回给那个邻居 │ │
│ │ └── 最有效的防环方法之一 │ │
│ │ │ │
│ │ 3️⃣ 毒性逆转 (Poison Reverse) │ │
│ │ └── 从邻居学来的路由,标记为16跳再传回去 │ │
│ │ └── 比水平分割更"彻底" │ │
│ │ │ │
│ │ 4️⃣ 触发更新 (Triggered Update) │ │
│ │ └── 路由变化时立即通知,不等待周期更新 │ │
│ │ └── 减少环路持续时间 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 水平分割示例 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 路由器A直连网络 10.0.0.0/8 │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ A ──────── B ──────── C │ │ │
│ │ │ │ │ │
│ │ │ 没有水平分割时: │ │ │
│ │ │ A告诉B: "我能到10.0.0.0,跳1" │ │ │
│ │ │ B告诉C: "A能到10.0.0.0,跳2" │ │ │
│ │ │ C告诉B: "B能到10.0.0.0,跳3" │ │ │
│ │ │ B告诉A: "C能到10.0.0.0,跳4" ← 问题! │ │ │
│ │ │ │ │ │
│ │ │ 有水平分割时: │ │ │
│ │ │ A告诉B: "我能到10.0.0.0,跳1" │ │ │
│ │ │ B告诉A: "不告诉你" (从A学的,不传回) │ │ │
│ │ │ B告诉C: "我能到10.0.0.0,跳2" │ │ │
│ │ │ C告诉B: "不告诉你" (从B学的,不传回) │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
三、RIP版本对比
3.1 RIPv1 vs RIPv2
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
34
35
36
37
38
39
|
┌─────────────────────────────────────────────────────────────────┐
│ RIPv1 vs RIPv2 对比 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 对比项 │ RIPv1 │ RIPv2 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 有类路由 │ 不支持 │ 支持 │ │
│ │ (Classful) │ 只能用A/B/C │ 支持VLSM │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ VLSM支持 │ 不支持 │ 支持 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ CIDR支持 │ 不支持 │ 支持 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 路由汇总 │ 自动汇总 │ 手动汇总 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 认证 │ 不支持 │ 支持 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 组播更新 │ 广播 │ 组播(224.0.0.9)│ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 下一跳字段 │ 没有 │ 有 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 外部路由标记 │ 没有 │ 有 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 更新时间 │ 30秒 │ 30秒 │ │
│ │ ──────────────────────────────────────────────────────│ │
│ │ 适用场景 │ 淘汰 │ 小型网络 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 📝 结论: 实际项目中请务必使用RIPv2! │ │
│ │ RIPv1只存在于理论学习和老旧设备中 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
3.2 RIPv2报文格式
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
34
35
36
37
38
39
40
41
42
43
44
|
┌─────────────────────────────────────────────────────────────────┐
│ RIPv2报文格式 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ RIPv2 Response 报文结构 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ┌────────┬────────┬────────────────────────────────┐ │ │
│ │ │ │ │ │ │ │
│ │ │ Command│ Version│ Must be Zero │ │ │
│ │ │ 1字节 │ 1字节 │ 2字节 │ │ │
│ │ ├────────┴────────┴────────────────────────────────┤ │ │
│ │ │ │ │ │
│ │ │ Route Entry #1 │ │ │
│ │ │ │ │ │
│ │ │ ┌────────┬────────┬──────────────┬─────────┐ │ │ │
│ │ │ │Address │ Netmask│ Next Hop │ Metric │ │ │ │
│ │ │ │Family │ 2字节 │ 4字节 │ 4字节 │ │ │ │
│ │ │ │ 2字节 │ │ │ 4字节 │ │ │ │
│ │ │ └────────┴────────┴──────────────┴─────────┘ │ │ │
│ │ │ │ │ │
│ │ │ Route Entry #2... │ │ │
│ │ │ │ │ │
│ │ │ (最多25条路由) │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ RIPv2关键字段说明 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ Command: 请求(1) 或 响应(2) │ │
│ │ Version: RIPv2 = 2 │ │
│ │ Address Family: IP = 2 │ │
│ │ Netmask: 子网掩码 (支持VLSM!) │ │
│ │ Next Hop: 下一跳地址 │ │
│ │ Metric: 跳数 (1-16) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
四、RIP配置详解
4.1 华为设备基础配置
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
34
35
36
37
38
39
40
41
42
43
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP基础配置 (华为) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 基本配置步骤 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ <HUAWEI> system-view │ │
│ │ [HUAWEI] sysname R1 │ │
│ │ │ │
│ │ # 1. 启用RIP,指定进程号(通常用1) │ │
│ │ [R1] rip 1 │ │
│ │ │ │
│ │ # 2. 启用RIPv2 (默认是v1,必须改!) │ │
│ │ [R1-rip-1] version 2 │ │
│ │ │ │
│ │ # 3. 宣告直连网络 │ │
│ │ [R1-rip-1] network 10.0.0.0 │ │
│ │ [R1-rip-1] network 192.168.1.0 │ │
│ │ │ │
│ │ [R1-rip-1] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ network命令说明 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ RIP的network命令: │ │
│ │ ├── 华为: 按自然网段宣告(自动包含主类网络) │ │
│ │ ├── 例如: network 10.0.0.0 = 宣告所有10.x.x.x接口 │ │
│ │ └── 不会宣告像192.168.1.1/30这样的精确网段 │ │
│ │ │ │
│ │ 注意: │ │
│ │ ├── RIP只宣告主类网络(A/B/C类) │ │
│ │ ├── 10.0.0.0 = 10.0.0.0/8 │ │
│ │ ├── 172.16.0.0 = 172.16.0.0/16 │ │
│ │ └── 192.168.1.0 = 192.168.1.0/24 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
4.2 RIPv2高级配置
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP高级配置 (华为) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 配置RIP路由认证 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ # 方式1: 简单认证 (明文) │ │
│ │ [R1] interface GigabitEthernet0/0/0 │ │
│ │ [R1-GigabitEthernet0/0/0] rip authentication-mode simple cipher MyPassword123 │ │
│ │ [R1-GigabitEthernet0/0/0] quit │ │
│ │ │ │
│ │ # 方式2: MD5认证 (推荐,更安全) │ │
│ │ [R1] interface GigabitEthernet0/0/0 │ │
│ │ [R1-GigabitEthernet0/0/0] rip authentication-mode md5 nonstandard keychain MyKeyChain | │
│ │ [R1-GigabitEthernet0/0/0] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 配置路由汇总 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ # 自动汇总 (默认开启,但不适合VLSM网络) │ │
│ │ [R1-rip-1] summary │ │
│ │ │ │
│ │ # 关闭自动汇总 (推荐,配合手动汇总使用) │ │
│ │ [R1-rip-1] undo summary │ │
│ │ │ │
│ │ # 手动汇总 (在接口下配置) │ │
│ │ [R1] interface GigabitEthernet0/0/0 │ │
│ │ [R1-GigabitEthernet0/0/0] rip summary-address 10.1.0.0 255.255.0.0 | │
│ │ [R1-GigabitEthernet0/0/0] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 配置路由引入 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ # 引入静态路由 │ │
│ │ [R1] ip route-static 8.8.8.0 255.255.255.0 192.168.1.1 | │
│ │ [R1] rip 1 │ │
│ │ [R1-rip-1] import-route static │ │
│ │ │ │
│ │ # 引入直连路由 │ │
│ │ [R1-rip-1] import-route direct │ │
│ │ │ │
│ │ # 引入时设置度量值 (跳数) │ │
│ │ [R1-rip-1] import-route static cost 3 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 配置被动接口 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ # 被动接口只接收RIP更新,不发送 │ │
│ │ # 适合连接终端的接口 │ │
│ │ [R1-rip-1] silent-interface GigabitEthernet0/0/1 | │
│ │ │ │
│ │ ⚠️ 慎用!配置错误会导致路由不通 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 配置路由过滤 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ # 1. 创建ACL过滤特定路由 │ │
│ │ [R1] acl 2000 │ │
│ │ [R1-acl-basic-2000] rule deny source 172.16.0.0 0.0.255.255 | │
│ │ [R1-acl-basic-2000] rule permit │ │
│ │ [R1-acl-basic-2000] quit │ │
│ │ │ │
│ │ # 2. 应用过滤策略 │ │
│ │ [R1] rip 1 │ │
│ │ [R1-rip-1] filter-policy 2000 import │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
4.3 完整配置示例
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
┌─────────────────────────────────────────────────────────────────┐
│ 完整配置示例 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 场景: 3个路由器的小型网络 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ R1 R2 R3 │ │
│ │ 10.0.0.1 ──── G0/0/0 ──── 10.0.0.2 │ │
│ │ │ │ │ │ │
│ │ G0/0/1 G0/0/1 G0/0/1 │ │
│ │ │ │ │ │ │
│ │ 192.168.1.0 192.168.2.0 192.168.3.0 │ │
│ │ (R1网段) (R2网段) (R3网段) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ R1配置 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ <HUAWEI> system-view │ │
│ │ [HUAWEI] sysname R1 │ │
│ │ │ │
│ │ # 配置接口IP │ │
│ │ [R1] interface GigabitEthernet0/0/0 │ │
│ │ [R1-GigabitEthernet0/0/0] ip address 10.0.0.1 255.255.255.252 | │
│ │ [R1-GigabitEthernet0/0/0] quit │ │
│ │ [R1] interface GigabitEthernet0/0/1 │ │
│ │ [R1-GigabitEthernet0/0/1] ip address 192.168.1.1 255.255.255.0 | │
│ │ [R1-GigabitEthernet0/0/1] quit │ │
│ │ │ │
│ │ # 启用RIP │ │
│ │ [R1] rip 1 │ │
│ │ [R1-rip-1] version 2 │ │
│ │ [R1-rip-1] undo summary │ │
│ │ [R1-rip-1] network 10.0.0.0 │ │
│ │ [R1-rip-1] network 192.168.1.0 │ │
│ │ [R1-rip-1] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ R2配置 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ <HUAWEI> system-view │ │
│ │ [HUAWEI] sysname R2 │ │
│ │ │ │
│ │ [R2] interface GigabitEthernet0/0/0 │ │
│ │ [R2-GigabitEthernet0/0/0] ip address 10.0.0.2 255.255.255.252 | │
│ │ [R2-GigabitEthernet0/0/0] quit │ │
│ │ [R2] interface GigabitEthernet0/0/1 │ │
│ │ [R2-GigabitEthernet0/0/1] ip address 10.0.0.5 255.255.255.252 | │
│ │ [R2-GigabitEthernet0/0/1] quit │ │
│ │ [R2] interface GigabitEthernet0/0/2 │ │
│ │ [R2-GigabitEthernet0/0/2] ip address 192.168.2.1 255.255.255.0 | │
│ │ [R2-GigabitEthernet0/0/2] quit │ │
│ │ │ │
│ │ [R2] rip 1 │ │
│ │ [R2-rip-1] version 2 │ │
│ │ [R2-rip-1] undo summary │ │
│ │ [R2-rip-1] network 10.0.0.0 │ │
│ │ [R2-rip-1] network 192.168.2.0 │ │
│ │ [R2-rip-1] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ R3配置 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ <HUAWEI> system-view │ │
│ │ [HUAWEI] sysname R3 │ │
│ │ │ │
│ │ [R3] interface GigabitEthernet0/0/0 │ │
│ │ [R3-GigabitEthernet0/0/0] ip address 10.0.0.6 255.255.255.252 | │
│ │ [R3-GigabitEthernet0/0/0] quit │ │
│ │ [R3] interface GigabitEthernet0/0/1 │ │
│ │ [R3-GigabitEthernet0/0/1] ip address 192.168.3.1 255.255.255.0 | │
│ │ [R3-GigabitEthernet0/0/1] quit │ │
│ │ │ │
│ │ [R3] rip 1 │ │
│ │ [R3-rip-1] version 2 │ │
│ │ [R3-rip-1] undo summary │ │
│ │ [R3-rip-1] network 10.0.0.0 │ │
│ │ [R3-rip-1] network 192.168.3.0 │ │
│ │ [R3-rip-1] quit │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
4.4 常用查看命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP常用查看命令 (华为) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ # 查看RIP邻居状态 │
│ <R1> display rip 1 neighbor │
│ │
│ # 查看RIP路由表 │
│ <R1> display rip 1 route │
│ │
│ # 查看RIP数据库 │
│ <R1> display rip 1 database │
│ │
│ # 查看RIP接口信息 │
│ <R1> display rip 1 interface │
│ │
│ # 查看IP路由表中的RIP路由 │
│ <R1> display ip routing-table protocol rip │
│ │
│ # 查看RIP统计信息 │
│ <R1> display rip 1 statistics │
│ │
└─────────────────────────────────────────────────────────────────┘
|
五、RIP应用场景
5.1 哪些公司需要RIP?
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
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP适用规模 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 🚫 不适合RIP的场景: │ │
│ │ │ │
│ │ ├── ❌ 超过15跳的大型网络 │ │
│ │ ├── ❌ 需要基于带宽选路的网络 │ │
│ │ ├── ❌ 复杂的多区域网络 │ │
│ │ └── ❌ 对收敛速度要求高的网络 │ │
│ │ │ │
│ │ ───────────────────────────────────────────────────── │ │
│ │ │ │
│ │ ✅ 适合RIP的场景: │ │
│ │ │ │
│ │ ├── ✅ 小型网络(<15跳) │ │
│ │ ├── ✅ 网络结构简单(无复杂选路需求) │ │
│ │ ├── ✅ 设备老旧,不支持OSPF │ │
│ │ ├── ✅ 作为临时方案或过渡方案 │ │
│ │ └── ✅ 学习RIP协议原理(教学场景) │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
5.2 典型应用场景
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP典型应用场景 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 场景1: 小微办公室网络 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 规模: 10-30人,3-5台设备 │ │
│ │ │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ │ │ │
│ │ │ 路由器/防火墙 │ │ │
│ │ │ ▲ │ │ │
│ │ │ │ │ │ │
│ │ │ �──────┴──────┐ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ▼ ▼ │ │ │
│ │ │ 交换机A 交换机B │ │ │
│ │ │ │ │ │ │ │
│ │ │ ▼ ▼ │ │ │
│ │ │ PC群A PC群B │ │ │
│ │ │ │ │ │
│ │ │ 特点: 扁平网络,直连设备少 │ │ │
│ │ │ 建议: 实际上这种网络静态路由就够了 │ │ │
│ │ │ RIP有点"杀鸡用牛刀" │ │ │
│ │ │ │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 场景2: 老旧设备网络 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 场景描述: │ │
│ │ ├── 设备太老,不支持OSPF │ │
│ │ ├── 更换设备成本高 │ │
│ │ └── 需要动态路由但又不能升级设备 │ │
│ │ │ │
│ │ 建议: │ │
│ │ └── RIP作为过渡方案 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 场景3: 教学实验环境 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 场景描述: │ │
│ │ ├── 学习路由协议原理 │ │
│ │ ├── 实验环境搭建简单 │ │
│ │ └── 理解距离矢量协议的核心概念 │ │
│ │ │ │
│ │ 建议: │ │
│ │ └── RIP是学习路由协议的最佳入门协议 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 场景4: ISP末梢网络 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 场景描述: │ │
│ │ ├── ISP的接入层网络 │ │
│ │ ├── 结构简单,设备众多 │ │
│ │ └── 对选路没有特殊要求 │ │
│ │ │ │
│ │ 建议: │ │
│ │ └── 小型ISP的接入层可能还在使用RIP │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
5.3 RIP vs 静态路由选择
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
34
35
36
37
38
39
40
41
42
43
44
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP vs 静态路由选择 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 什么时候用静态路由? │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ✅ 网络设备少于5台 │ │
│ │ ✅ 网络拓扑简单,不经常变化 │ │
│ │ ✅ 对路由有精确控制需求 │ │
│ │ ✅ 管理员有足够时间手动维护 │ │
│ │ │ │
│ │ 📝 结论: 小型网络优先选择静态路由 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 什么时候用RIP? │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ✅ 网络设备5-20台 │ │
│ │ ✅ 网络拓扑有一定复杂度 │ │
│ │ ✅ 网络可能会扩展,需要一定自动化 │ │
│ │ ✅ 不想部署OSPF但需要动态路由 │ │
│ │ │ │
│ │ 📝 结论: 中小型网络且不需要精细选路时用RIP │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 什么时候用OSPF? │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ✅ 网络设备超过20台 │ │
│ │ ✅ 需要基于带宽选路 │ │
│ │ ✅ 需要快速收敛 │ │
│ │ ✅ 需要多区域分层设计 │ │
│ │ │ │
│ │ 📝 结论: 中大型网络请直接选择OSPF │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
六、RIP故障排查
6.1 常见问题
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP常见故障排查 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 问题1: RIP邻居起不来 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 检查清单: │ │
│ │ ├── ✅ 两端接口IP是否可达 (ping测试) │ │
│ │ ├── ✅ 两端RIP版本是否一致 (v1还是v2) │ │
│ │ ├── ✅ 认证是否匹配 │ │
│ │ ├── ✅ network是否宣告了该接口 │ │
│ │ └── ✅ 是否有ACL阻断UDP 520 │ │
│ │ │ │
│ │ 排查命令: │ │
│ │ display rip 1 neighbor │ │
│ │ display rip 1 interface │ │
│ │ ping 10.0.0.2 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 问题2: RIP路由没学到 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ 检查清单: │ │
│ │ ├── ✅ 邻居是否Established状态 │ │
│ │ ├── ✅ 邻居是否宣告了该网段 │ │
│ │ ├── ✅ 是否被filter-policy过滤 │ │
│ │ ├── ✅ 是否超过15跳 │ │
│ │ └── ✅ 是否在正确的RIP进程中宣告 │ │
│ │ │ │
│ │ 排查命令: │ │
│ │ display rip 1 route │ │
│ │ display rip 1 database │ │
│ │ display ip routing-table protocol rip │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ 问题3: 路由选路不对 │ │
│ ├─────────────────────────────────────────────────────────┤ │
│ │ │ │
│ │ ⚠️ RIP只看跳数,不看带宽! │ │
│ │ │ │
│ │ 检查清单: │ │
│ │ ├── ✅ 确认RIP是最佳选择吗?(是否需要OSPF) │ │
│ │ ├── ✅ 确认跳数计算是否正确 │ │
│ │ └── ✅ 是否有多条等价路径 │ │
│ │ │ │
│ │ 排查命令: │ │
│ │ display rip 1 route │ │
│ │ display ip routing-table x.x.x.x │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
七、总结
7.1 核心知识点
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
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP核心知识点速记 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 1. RIP是什么? │ │
│ │ 距离矢量路由协议,用跳数选路,最大15跳 │ │
│ │ │ │
│ │ 2. 版本选择 │ │
│ │ RIPv1已淘汰,务必使用RIPv2 │ │
│ │ │ │
│ │ 3. 防环机制 │ │
│ │ ├── 水平分割 │ │
│ │ ├── 毒性逆转 │ │
│ │ ├── 触发更新 │ │
│ │ └── 计数到无穷大(16跳) │ │
│ │ │ │
│ │ 4. 适用场景 │ │
│ │ 小型网络(<15跳)、老旧设备、教学环境 │ │
│ │ │ │
│ │ 5. 局限性 │ │
│ │ ├── 只看跳数,不看带宽 │ │
│ │ ├── 收敛慢 │ │
│ │ └── 最大15跳限制 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
7.2 选型决策树
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
|
┌─────────────────────────────────────────────────────────────────┐
│ 路由协议选型决策树 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 开始 │
│ │ │
│ ▼ │
│ 网络规模? │
│ │ │
│ ├── < 5台设备 ──▶ 静态路由 ✅ │
│ │ │
│ ├── 5-20台设备 │
│ │ │ │
│ │ ├── 简单拓扑 ──▶ RIP ✅ │
│ │ │ │
│ │ └── 需选路 ──▶ OSPF ✅ │
│ │ │
│ ├── 20-100台设备 ──▶ OSPF ✅ │
│ │ │
│ └── > 100台设备 │
│ │ │
│ ├── 企业内网 ──▶ OSPF ✅ │
│ │ │
│ └── 跨运营商 ──▶ OSPF + BGP ✅ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
7.3 给学习者的建议
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
|
┌─────────────────────────────────────────────────────────────────┐
│ 为什么还要学习RIP? │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 1. 理解路由协议基础 │ │
│ │ ├── 距离矢量 vs 链路状态 vs 路径向量 │ │
│ │ ├── 路由环路原理和解决方法 │ │
│ │ └── 路由收敛概念 │ │
│ │ │ │
│ │ 2. 理解路由协议演进 │ │
│ │ ├── RIP → OSPF → OSPF+ BGP │ │
│ │ └── 理解为什么需要更复杂的协议 │ │
│ │ │ │
│ │ 3. 排查老旧网络 │ │
│ │ └── 实际工作中可能还会遇到RIP网络 │ │
│ │ │ │
│ │ 4. 简单场景的快速解决方案 │ │
│ │ └── 小型网络快速部署RIP也不是不行 │ │
│ │ │ │
│ │ 📝 结论: RIP虽然"老",但它是理解网络的好起点 │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
|
附录: 常用命令速查表
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
34
35
36
37
38
|
┌─────────────────────────────────────────────────────────────────┐
│ RIP命令速查表 (华为) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ # 启用RIP │
│ rip 1 │
│ │
│ # 启用RIPv2 │
│ version 2 │
│ │
│ # 宣告网络 │
│ network x.x.x.0 │
│ │
│ # 关闭自动汇总 │
│ undo summary │
│ │
│ # 引入外部路由 │
│ import-route static/cost 3 │
│ │
│ # 被动接口 │
│ silent-interface GigabitEthernet0/0/1 │
│ │
│ # 路由过滤 │
│ filter-policy 2000 import │
│ │
│ # 路由认证 │
│ rip authentication-mode md5 nonstandard keychain xxx │
│ │
│ # 查看邻居 │
│ display rip 1 neighbor │
│ │
│ # 查看路由 │
│ display rip 1 route │
│ │
│ # 查看数据库 │
│ display rip 1 database │
│ │
└─────────────────────────────────────────────────────────────────┘
|
希望这篇RIP详解能帮助你理解这个"老而弥坚"的路由协议!虽然RIP在大规模网络中已经很少使用,但它仍然是理解路由协议原理的最佳起点。