一、简介
RIP协议(Routing Information Protocol,路由信息协议)是一种基于距离矢量的动态路由选择协议。
在RIP协议中,如果路由器A和网络B直接相连,那么路由器A到网络B的距离被定义为1跳。若从路由器A出发到达网络B需要经过N个其他路由器,则路由器A到网络B的距离计算为N+1跳。RIP协议基于一个核心原则:距离(即跳数)最小的路径被视为最佳路径。这里的"距离"在RIP协议中也被称为"跳数",每经过一个路由器,跳数就增加1。需要注意的是,RIP协议规定一条路径上最多只能包含15个路由器,因此跳数的最大值为16(在RIP中表示网络不可达)。正因如此,RIP协议主要适用于小型网络环境。
二、RIP的路由表
2.1、结构
目的IP地址域:这是路由表中最重要的信息,指示了可以到达的网络目的地。当路由器收到一个数据报文时,会查找路由表中的目的IP地址,以确定如何转发该报文。
度量标准(距离-向量度量)域:此域指出了从路由器到特定目的地的总耗费,即路径的"距离"。在RIP中,这个距离是以跳数来衡量的,每经过一个路由器,跳数就增加1。
下一跳IP地址域:如果目的网络不与路由器直接相连,这个域就会包含下一个路由器接口的IP地址,这是数据包在前往目的地途中的下一个跃点。
路由变化标志域:此域用于标识到目的IP地址的路由是否最近发生了变化。这对于RIP协议的收敛过程至关重要。
路由计时器域:路由表中与每条路由相关的有两个计时器,超时计时器和路由刷新计时器。这些计时器协同工作,以确保路由表中存储的路由信息的有效性。
2.2、功能
-
路径选择:基于路由表中的信息,路由器能够确定到达每个目的地的最优路径。这是通过比较不同路径的度量标准(在RIP中是跳数)来实现的。
-
动态更新:RIP协议支持动态更新路由表。当网络拓扑发生变化时,如链路故障或新链路的添加,路由器会通过RIP协议及时更新其路由表,以确保网络的连通性和最优路径的选择。
2.3、维护
-
定期更新:路由器会定期(通常是每隔30秒)向邻居路由器发送整个路由表信息,以保持网络中的路由器之间路由信息的一致性。
-
路由收敛:通过一系列路由更新,网络中的每个路由器最终都会形成一张完整的、一致的路由表,这个过程称为收敛。收敛是确保数据包能够沿着最优路径传输的关键。
2.4、示例
目的网络 | 子网掩码 | 下一跳地址 | 跳数 | 标记 |
---|---|---|---|---|
192.168.1.0 | 255.255.255.0 | 直接连接 | 0 | C |
10.0.0.0 | 255.0.0.0 | 192.168.1.2 | 2 | R |
172.16.0.0 | 255.240.0.0 | 192.168.1.2 | 3 | R |
203.0.113.0 | 255.255.255.0 | 10.0.0.2 | 4 | R |
默认路由 | 0.0.0.0 | 10.0.0.1 | 1 | G |
说明:
- 目的网络:表示目标网络的IP地址。
- 子网掩码:用于划分网络地址和主机地址的子网掩码。
- 下一跳地址:表示数据包在前往目的网络途中的下一个跃点地址。如果是直接连接的网络,则显示为"直接连接"。
- 跳数:从当前路由器到目标网络所需经过的路由器数量(跳数)。直接连接的网络跳数为0。
- 标记 :用于指示路由的来源或类型。常见的标记包括:
- C:表示该路由是直连网络。
- R:表示该路由是通过RIP协议学习到的。
- G:表示该路由是一个默认路由,通常指向一个网关。
三、RIP的工作原理及更新算法
RIP协议的工作原理如下:
- 每个路由器每隔30秒会向其所有邻居路由器广播RIP报文,这些报文包含了该路由器当前的路由表信息。当两个路由器共享一条链路或处于同一物理网络中时,它们被称为邻居。值得注意的是,RIP是应用层协议,其报文通过使用UDP数据报传送,端口号为520
- 在接收到邻居路由器的路由表信息后,每个路由器都会更新自己的路由表。它们会添加新的路由表项或修改旧的路由表项。这样,在下一次广播时,它们就可以将更新后的路由信息告知邻居。
- 如果一个路由器在180秒内没有收到某个邻居路由器的路由表信息,它会认为该路由器出现了故障。随后,它会将路由表中所有以该故障路由器为下一跳的表项的距离字段修改为16,这表示目的网络不可达。
**路由表更新算法:**当路由器收到邻居路由器广播的RIP报文后,它会根据距离矢量算法来更新自己的路由表。该算法的基本思想如下:
假设路由器A收到了来自路由器B的路由信息,路由器A会在以下情况下更新自己的路由表:
- 如果B的路由表中包含了A之前不了解的网络信息,那么A会在自己的路由表中增加相应的表项。
- 如果A的路由表中已经包含了到达某个网络的路由信息,并且该路由的下一站是路由器X,但B的路由表提供了一个更短的路径到达该网络,那么A会更新自己的路由表项,选择更短的路径。
- 如果A的路由表中包含了一条到达某个网络的路由信息,并且该路由的下一站是路由器B,但当B的路由表中关于到达该网络的距离信息发生变化时,A会相应地更新自己的路由表项。
四、RIP的网络拓扑搭建(Cisco)
实际拓扑图
4.1、步骤一
打开Packet Tracer并添加三个2901路由器和三个PC机
4.2、步骤二
将路由器和PC机之间相互连接
注意:有些路由器一开始是没有Se接口的,需要在路由器内添加相应的组件,如下图:
这里注意,最好在选项里设置查看接口号,如下图:
4.3、步骤三
配置两个PC机的IP地址和网关
4.4、步骤四
按照实际拓扑图所提示的IP地址对路由器进行接口IP地址配置(以下的命令皆是缩写后按TAB键补全)
对R1路由器
Router>enable //进入特权执行模式
Router#configure terminal //进入全局配置模式
Router(config)#hostname R1 //更改路由器的主机名
R1(config)#interface gigabitEthernet 0/0 //进入Gigabit Ethernet 0/0接口的配置模式
R1(config-if)#ip address 192.168.10.254 255.255.255.0 //给Gigabit Ethernet 0/0接口配置IP地址和子网掩码
R1(config-if)#no shutdown //启用Gigabit Ethernet 0/0接口
R1(config-if)#exit //退出当前接口的配置模式,返回到全局配置模式
R1(config)#interface serial 0/3/0
R1(config-if)#ip address 30.0.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address 20.0.0.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
对R2路由器
Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface gigabitEthernet 0/0
R2(config-if)#ip address 10.0.0.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface gigabitEthernet 0/1
R2(config-if)#ip address 20.0.0.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
对R3路由器
Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface gigabitEthernet 0/0
R3(config-if)#ip address 192.168.10.254 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface serial 0/3/0
R3(config-if)#ip address 30.0.0.2 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface gigabitEthernet 0/1
R3(config-if)#ip address 20.0.0.1 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
在输入完以上三个路由器的命令之后,就可以看到每个路线之间的出现绿色三角形
在此时虽然每个接线之间都已经是出现代表畅通的绿色三角形,可以尝试PC1机pingPC0机
但是RIP的动态路由还没有真正开始配置。
4.5、步骤五
对路由器进行RIP协议的配置
对R1路由器
R1(config)#router rip //启动RIP路由进程并进入RIP配置模式
R1(config-router)#version 2 //指定RIP的版本为2
R1(config-router)#network 20.0.0.0 255.255.255.0 //R1上的哪个网络应该参与RIP路由过程
R1(config-router)#network 30.0.0.0 255.255.255.0
R1(config-router)#network 192.168.10.0 255.255.255.0
R1(config-router)#end //退出RIP配置模式,返回到特权执行模式
对R2路由器
R2(config)#router rip
R2(config-router)#version 2
R2(config-router)#network 20.0.0.0
R2(config-router)#network 10.0.0.0
R2(config-router)#end
对R3路由器
R3(config)#router rip
R3(config-router)#version 2
R3(config-router)#network 10.0.0.0
R3(config-router)#network 30.0.0.0
R3(config-router)#network 192.168.20.0
R3(config-router)#end
在此刻,才算真正配置好RIP动态路由。
4.6、检验
尝试让PC1传输一个数据包给PC0,看看是走那条路。由于配置了RIP动态路由,数据包会从PC1->R3->R1->PC0进行传输
使用命令,查看路由表
show ip route
注:内容仅为个人意见,有什么不妥或错误的地方,欢迎指出!!!