天天看点

Rip v1 主机路由

3.7 RIPv1 中的主机路由现象 提要描述

由于RIP v1不支持发送子网掩码,所以只能依靠自己接口的掩码和接受到的路由条目进行”与”运算,来得出路由条目安装到路由表中。产生RIPv1主机路由现象其实很多时候是人为做成的,例如:IP地址的规划不当、网络结构不完善、网络合并或者迁移等。一般在RIPv1接收更新时出现主机路由现象就以下两种情况:

1:如果在同一主网的子网通告,采用接收接口的掩码更新安装进路由表,如果收到子网通告主机位不为零,则以/32主机路由方式安装进路由表,并通告给下一跳路由器。

2:如果在不同主网的子网通告,如果在路由表里已经存在对应子网,则忽略该更新。如果在路由表里不存在,则以主类网络号安装进路由表,或者以/32主机路由的方式安装进路由表(当接收接口为unnumbered link 时)。

实验目标:

调试分析主机路由的现象,验证上面的两种情况

↓调试配置及监测步骤↓ ( 实验 1) 正常配置的情况
Rip v1 主机路由
R1 的配置 R2

!

hostname R1

interface Serial1/1

ip address 192.168.1.33 255.255.255.240

no shut

router rip

network 192.168.1.0

hostname R2

interface Serial1/0

ip address 192.168.1.34 255.255.255.240

ip address 192.168.1.17 255.255.255.240

R3

hostname R3

ip address 192.168.1.18 255.255.255.240

接口互通后,在各台路由协议中启用 RIP 查看 的路由表 R1#show ip route

192.168.1.0/28 is subnetted, 2 subnets

C 192.168.1.32 is directly connected, Serial1/1

R 192.168.1.16 [120/1] via 192.168.1.34, 00:00:09, Serial1/1

此时正常显示 192.168.1.16/28 网段的路由信息,没有问题。 2) 出现主机路由的情况
Rip v1 主机路由

ip address 192.168.1.33255.255.255.224

配置内容和同实验 1 差不多,只是 S1/1 接口的地址改为 /27 的掩码

192.168.1.0/24 is variably subnetted, 3 subnets, 3 masks

C 192.168.1.32/27 is directly connected, Serial1/1

R 192.168.1.16/32 [120/1] via 192.168.1.34, 00:00:21, Serial1/1

R1#debug ip rip

*Mar 22 21:08:39.995: RIP: received v1 update from 192.168.1.34 on Serial1/1

*Mar 22 21:08:39.999: 192.168.1.16 in 1 hops

可以发现与正常配置的情况相比, 网段的路由信息 变为了一条 192.168.1.16/32 主机路由 首先总结一下 : 为什么 会学到主机路由 ? 收到 发送过来的路由更新时,是 192.168.1.16 ;由于RIPv1的更新报文中没有子网掩码,所以只能依靠自己接口的掩码和接受到的路由条目进行 运算,

在主网络号一致的情况下,对比其主机位,

结果不为零,这个地址不是 位掩码的子网,所以会被认为是主机路由。

主机位进行“与”运算

转换成二进制

收的网络

16

10000

接口掩码

255.255.255.224

224

111

00000

3)
Rip v1 主机路由

ip address 10.1.1.1 255.128.0.0

network 10.0.0.0

ip address 10.1.1.2 255.128.0.0

ip address 10.128.0.1 255.192.0.0

interface Loopback0

ip address 10.224.0.1255.224.0.0

ip address 10.128.0.2255.224.0.0

完成配置后查看个路由表:

10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

C 10.0.0.0/9 is directly connected, Serial1/1

R 10.224.0.0/32 [120/2] via 10.1.1.2, 00:00:26, Serial1/1

R2#show ip route

10.0.0.0/8 is variably subnetted, 3 subnets, 3 masks

C 10.0.0.0/9 is directly connected, Serial1/0

C 10.128.0.0/10 is directly connected, Serial1/1

R 10.224.0.0/32 [120/1] via 10.128.0.2, 00:00:16, Serial1/1

R3#show ip route

10.0.0.0/11 is subnetted, 2 subnets

C 10.128.0.0 is directly connected, Serial1/0

C 10.224.0.0 is directly connected, Loopback0

从路由表可以看到的 路由表中依然有主机路由,但是可以发现一个新的现象:因为 的掩码不一致,导致了 不能正确的发布路由,看 debug 命令的输出: R2#debug ip rip

*Mar 22 22:12:20.199: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (10.128.0.1) #----发往R3的方向

*Mar 22 22:12:20.199: RIP: build update entries - suppressing null update

*Mar 22 22:12:20.931: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (10.1.1.2) #----发往R1的方向

*Mar 22 22:12:20.931: RIP: build update entries

*Mar 22 22:12:20.935: subnet 10.224.0.0 metric 2

R2#

*Mar 22 22:12:27.779: RIP: received v1 update from 10.128.0.2 on Serial1/1

*Mar 22 22:12:27.783: 10.224.0.0 in 1 hops

可以看到 没有向 通告 10.128.0.0 网段 也没有向 10.0.0.0 ,因为 接口都处于一个主类网络,就没有网络边界的概念,而且掩码不一致。 如果将 改为 9.128.0.1/10 ,并且通告 9.0.0.0 网段,可以看到如下结果:

R2(config)#int s1/1

R2(config-if)#ip address 9.128.0.1 255.192.0.0

R2(config)#router rip

R2(config-router)#network 9.0.0.0

*Mar 22 22:23:23.203: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (10.1.1.2) #----发往R1的方向

*Mar 22 22:23:23.203: RIP: build update entries

*Mar 22 22:23:23.207: network 9.0.0.0 metric 1

*Mar 22 22:23:34.047: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (9.128.0.1) #----发往R3的方向

*Mar 22 22:23:34.047: RIP: build update entries

*Mar 22 22:23:34.051: network 10.0.0.0 metric 1

正常发送了路由更新 ,所以总结以下:在 (1)  如果接口的 IP 地址是在相同的主类网络子网中,子网掩码不一致,会导致路由信息发布失败。 (2)  地址是在不同的主类网络子网中,子网掩码不一致,路由通告正常,且正常汇总。 4)
Rip v1 主机路由

interface FastEthernet0/0

ip address 10.10.10.1 255.255.255.0

ip unnumbered FastEthernet0/0

ip address 2.2.2.2 255.255.255.0

ip address 10.10.20.1 255.255.255.0

ip unnumbered Loopback0

network 2.0.0.0

完成配置之后看看各个路由器的路由表:

2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks

R 2.2.2.0/32 [120/1] via 2.2.2.2, 00:00:19, Serial1/1

R 2.0.0.0/8 [120/1] via 2.2.2.2, 00:00:19, Serial1/1

10.0.0.0/24 is subnetted, 1 subnets

C 10.10.10.0 is directly connected, FastEthernet0/0

2.0.0.0/24 is subnetted, 1 subnets

C 2.2.2.0 is directly connected, Loopback0

R 10.10.10.0/32 [120/1] via 10.10.10.1, 00:00:13, Serial1/0

C 10.10.20.0/24 is directly connected, FastEthernet0/0

当接收接口为 unnumbered link , 学到的路由条目以/32主机路由的方式安装进路由表。 看看 信息:

R1#

*Mar 22 22:47:29.255: RIP: sending v1 update to 255.255.255.255 via Serial1/1 (10.10.10.1)

*Mar 22 22:47:29.255: RIP: build update entries

*Mar 22 22:47:29.259: network 10.0.0.0 metric 1

*Mar 22 22:47:29.259: subnet 10.10.10.0 metric 1

*Mar 22 22:47:35.335: RIP: ignored v1 update from bad source 10.10.20.1 on FastEthernet0/0 #忽略错误的更新源

*Mar 22 22:47:52.179: RIP: received v1 update from 2.2.2.2 on Serial1/1

*Mar 22 22:47:52.183: 2.0.0.0 in 1 hops

*Mar 22 22:47:52.183: 2.2.2.0 in 1 hops

*Mar 22 22:47:52.183: 10.0.0.0 in 1 hops

*Mar 22 22:47:56.095: RIP: sending v1 update to 255.255.255.255 via Serial1/0 (2.2.2.2)

*Mar 22 22:47:56.095: RIP: build update entries

*Mar 22 22:47:56.099: network 2.0.0.0 metric 1

*Mar 22 22:47:56.099: subnet 2.2.2.0 metric 1

*Mar 22 22:47:56.099: network 10.0.0.0 metric 1

*Mar 22 22:47:56.631: RIP: ignored v1 update from bad source 10.10.10.1 on FastEthernet0/0

*Mar 22 22:48:00.703: RIP: received v1 update from 10.10.10.1 on Serial1/0

*Mar 22 22:48:00.707: 10.0.0.0 in 1 hops

*Mar 22 22:48:00.707: 10.10.10.0 in 1 hops

信息可以看到, 当使用无编号 地址的时候 ,RIP 会对数据来源的合法性进行检查 要么不用要么 2 边都用 其实无编号 地址不是没有地址 只是用其它地址来代替或者说是借用 可以节省地址 有时不会因为用到 个地址而浪费一个网段 ), 但是借用的也必须在同一网段。 同时可以看到 都忽略错误的更新源,这是因为 Fa0/0 的接口地址不在同一个子网,所以大家都不会从错误的源接受 RIPv1 的更新了。 当然, 如果想在不同子网,也能够接收路由的话,我们可以使用命令 no validate-update-source ,就可以使 口接收路由了:

R1(config)#router rip

R1(config-router)#no validate-update-source

R2(config-router)#no validate-update-source

*Mar 22 23:10:44.387: RIP: received v1 update from 10.10.20.1 on FastEthernet0/0

*Mar 22 23:10:44.391: 2.0.0.0 in 1 hops

R2# debug ip rip

*Mar 22 23:11:33.015: RIP: received v1 update from 10.10.10.1 on FastEthernet0/0

继续阅读