路由器接收到一个 IP 分组后:
路由表为分组转发提供了到达目的地址的“最佳路径”。
路由项的基本信息:
<目的网络地址,下一跳地址,转发接口,路由代价>
Router#show ip route
Codes: C-connected, S-static, R-RIP, D-EIGRP,
EX-EIGRP external,O-OSPF, IA-OSPF inter area
E1-OSPF external type 1,E2-OSPF external type 2,
*-candidate default
Gateway of last resort is 10.5.5.5 to network 0.0.0.0
172.16.0.0/24 is subnetted, 1 subnets
C 172.16.11.0 is directly connected, serial1/2
O 172.22.0.0/16 [110/20] via 10.3.3.3,01:03:01, Serial1/2
S* 0.0.0.0/0 [1/0] via 10.5.5.5
路由表中的路由信息主要通过三种方式获得:
管理距离是从0到255
的整数值,对于每个路由来源,包括特定路由协议、静态路由又或是直连网络,使用管理距离值按从低到高的优选顺序来排定优先级。
RIP(Routing Information Protocol)即选路信息协议,是一种基于距离向量算法的动态路由选择协议,是内部网关协议IGP中最先得到广泛使用的协议之一。
标准:
特点:
距离:
RIP要求自治系统AS内的每一个路由器都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为“距离向量D-V(Distance-Vector)" 。
RIP使用跳数(Hop Count)作为度量(Metric)来衡量到达目的网络的代价(cost)。
路由表交换:
30
秒。报文发送:
520
端口发送或接收 RIP 报文。RIP的路由条目的更新规则:
故障处理:
15
)RIP 协议报文由固定首部和路由项列表组成。
3
个字段,占4
个字节。1
个字节。
1
时是请求报文,表明请求接收方发送其全部或部分路由表;2
时是响应报文,表明报文携带有发送方的全部或部分路由表。响应报文可以是对请求报文的回应,也可以是发送方周期性的路由表发送。周期性发送也称为非请求响应。1
个字节,RIP1协议设置为1
,RIP2协议设置为2
。2
个字节,必须置为0
。25
个路由项。每个路由项描述了一条路由。2
个字节。对IPv4
协议,地址族标识符定义为2
。2
字节,是分配给该路由项的一个属性值,主要用于区分内部RIP路由和外部RIP路由。内部RIP路由是来自自治系统内部RIP协议的路由;外部RIP路由是来自其他自治系统RIP协议的路由。例如可用自治系统编号作路由标记。路由器在向邻居通告一条路由时,必须保持该路由的标记不变。0.0.0.0
),表示是默认路由。0.0.0.0
),表明报文接收方路由器到达目的地址的下一跳就是报文发送方路由器,其地址就是携带RIP报文IP分组的源地址。RIP 路由器可通过向邻居发送 RIP 请求报文的方式显式地请求其全部或部分路由表。
1
个路由项,且地址族标识符是 0
、距离是无穷(16)。16
。RIP2 中路由器可对每个接收的报文进行鉴别(authentication)。
鉴别信息占用了第一个路由项的 20
字节:
0xFFFF
RFC 2453 只定义了一种简单的密码鉴别:
2
16
字节包含了鉴别用的明文密码(若密码不足16字节,靠左对齐并补 0
)。RIP 协议通过在邻居路由器之间周期性交换路由表达到收敛状态:
网络发生故障时:
10
,其余网络的代价都是1
。某时刻 B 和 D 之间的网络发生了故障,则到达目标网络应通过C和D之间的网络:
T0
时刻,路由器B
通过超时机制发现B
和D
之间的网络发生故障,其将自己通过D
到达目标网络的路由项设置为不可达(Unreachable)。但此时A
和C
仍认为可通过B到达目标网络。T1
时刻,相邻路由器之间交换路由表,B
接收到A
和C
的路由表后,认为可通过A
或C
到达目标网络(距离都是4
;实际上不可能,因为通过A
或C
到达目标网络又要经过B
,而B
无法到达目标网络。),表中B
根据C
发送的路由项更新了自己到达目标网络的路由项。A
接收到B
和C
的路由表后,根据距离向量算法,会选择通过C
到达目标网络(通过B
无法到达,通过C
的距离是4)。C
可以接收到A
,B
和D
发送的路由表,C
会选择通过A
去往目标网络(通过B
无法到达目标网络,通过D
到达目标网络的距离是11
,通过A
到达目标网络的距离是4
。)。T2
到T7
时刻的路由表交换与T1
时刻类似,在此不再赘述。直到T8
时刻,路由器C
才找到正确的去往目标网络的路由(通过C
和D
之间的网络)。在下一个交换周期,A
和B
也找到了正确的路由。在最坏的情况下,当网络实际不可达时,到达该网络路由的距离要增加到无穷(16
),路由才会收敛,此称为计数到无穷问题。
这是距离向量算法的一个固有问题,可以采取多种措施减少出现该问题的概率或减小该问题带来的危害。
因此,RIP协议中用于表示无穷的距离值不能太大,以便在发生故障情况下路由能尽快收敛。RIP中采用16
表示无穷大,这是在网络直径与路由收敛速度之间的一个折中。
RIP协议采用水平分割技术和触发更新技术来尽量避免此类问题的发生。
前述例子中,路由收敛慢的原因在于路由器 A 和 C 之间形成了一个循环路由:各自以对方为到达目标网络的下一跳路由器。
路由器把从邻居学习到的路由再发送给邻居就有可能形成循环路由。
简单水平分割(simple split horizon):禁止将从邻居学习到的路由再回送给邻居。
带毒性逆转的水平分割(split horizon with positioned reverse):允许路由器在发送的路由表中包含从邻居学习到的路由,但将这些路由的距离置为无穷(16
)。
循环路由也可能存在于多个路由器之间。
水平分割技术只能避免在两个邻居路由器之间形成的环路,在这种情况下不起作用。
触发更新含义:
这种级联(cascading)的触发更新使路由变化尽快在网络中扩散开来,加速路由收敛。
【2016年题37】假设R1、R2、R3采用RIP协议交换路由信息,且均已收敛。若R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量,则R2更新后,其到达该网络的距离是()
A.2
B.3
C.16
D.17
解析:根据题目所给“R3检测到网络201.1.2.0/25不可达”可知,R3与该网络是直连的。
又根据题目所给“R1、R2、R3采用RIP协议交换路由信息,且均已收敛”可知,先前它们各自的路由表中关于该目的网络的路由条目分别是:
再根据题目所给“R3检测到网络201.1.2.0/25不可达,并向R2通告一次新的距离向量”可知,R3与该网络之间的链路出现了故障。当R3检测到该故障时,将自己到达该网络的路由条目中的距离修改为16,表示不可达。并向R2发送关于这条路由条目的通告。R2收到后将距离修改为16。
最后根据题目所给“则R2更新后”可知,R1给R2发送了关于该路由条目的RIP更新报文,而R2听信了该谣言,误认为到达该目的网络可以通过R1的转发,距离为3。
因此选B。
题目:R2为某公司总部,R1和R3是两个分部,主机PC1和PC2所在的网段分别模拟两个分部中的办公网络。现需要总部和各个分部,各个分部之间能够实现通信。分别使用静态路由和RIP路由协议实现需求。
设备名 | 端口 | ip地址 | 掩码 | 默认网关 |
---|---|---|---|---|
R1 | f2/0 | 192.168.1.254 | 255.255.255.0 | N/A |
f0/0 | 10.1.1.1 | 255.255.255.0 | N/A | |
R2 | f0/1 | 10.1.1.2 | 255.255.255.0 | N/A |
f0/0 | 10.1.2.1 | 255.255.255.0 | N/A | |
R3 | f0/1 | 10.1.2.2 | 255.255.255.0 | N/A |
f2/0 | 192.168.2.254 | 255.255.255.0 | N/A | |
PC1 | E0 | 192.168.1.1 | 255.255.255.0 | 192.168.1.254 |
PC2 | E0 | 192.168.2.1 | 255.255.255.0 | 192.168.2.254 |
实验步骤:
一、配置静态路由:R2上配置到192.168.1.0/24和192.168.2.0/24网段的静态路由。
R2(config)#ip route 192.168.1.0 255.255.255.0 10.1.1.1
R2(config)#ip route 192.168.2.0 255.255.255.0 10.1.2.2
二、配置默认路由:R1和R3上配置默认路由。
R1(config)#ip route 0.0.0.0 0.0.0.0 f0/0
R3(config)#ip route 0.0.0.0 0.0.0.0 f0/1
三、查看路由配置情况
R1#show ip route
R2#show ip route
R3#show ip route
实验步骤:
一、在R1上配置RIP
# 启动RIP
R1(config)#router rip
# 指定RIP的版本
R1(config-router)#version 2
# 关闭路由聚合
R1(config-router)#no auto-summary
# 指定直连网段
R1(config-router)#network 192.168.1.0
R1(config-router)#network 10.1.1.0
# 指定被动接口
R1(config-router)#passive-interface f2/0
二、在R3上配置RIP
# 启动RIP
R3(config)#router rip
# 指定RIP的版本
R3(config-router)#version 2
# 关闭路由聚合
R3(config-router)#no auto-summary
# 指定直连网段
R3(config-router)#network 192.168.2.0
R3(config-router)#network 10.1.2.0
# 指定被动接口
R3(config-router)#passive-interface f2/0
三、在R2上配置RIP
# 启动RIP
R2(config)#router rip
# 指定RIP的版本
R2(config-router)#version 2
# 关闭路由聚合
R2(config-router)#no auto-summary
# 指定直连网段
R2(config-router)#network 10.1.1.0
R2(config-router)#network 10.1.2.0
四、查看路由信息
R1#show ip route
R2#show ip route
R3#show ip route
五、抓包分析
在R1和R2的链路上启动抓包,在wireshark的显示过滤器设置过滤条件为rip.version==2
❗ 转载请注明出处
作者:HinsCoder
博客链接: 作者博客主页