实验 13:静态路由配置错误导致的路由环路问题
# 130.实验13:静态路由配置错误导致的路由环路问题
下面我们来进行一个仿真实验,本仿真实验的目的在于验证静态路由配置错误所导致的路由环路问题。
我已经在软件中构建好了我们理论课讲解时所用到的网络拓扑,并且给网络中的各设备都配置了相应的 IP 地址和地址掩码。
对于网络中的各个主机,我还为他们指定了默认网关,对于网络中的各个路由器,我还给他们添加了静态路由,例如我给路由器 R1 添加了这样一条路由,那目的网络是 192.168.2.0,也就是主机 H2 所在的网络,相应的下一跳,应该转发给 R2 的接口, IP 地址是 10.0.0.2;
给路由器 R2 添加了两条静态路由,这一条是到达主机 H1 所在网络的,下一跳,应该是跳给 R1 的接口。第二条静态路由是到达主机 H2 所在网络的,下一跳应该从 R2 跳给 R3 的接口,给 R3 添加了一条到达主机 H1 所在网络的静态路由,他的下一跳应该从 R3 转发给 R2 的接口:
在所有配置工作完成以后,我们就可以测试一下主机 H2 和主机 H1 它们之间是否可以相互通信。那么我们用主机 H2 来 ping 一下主机 H1 看一下是否可以 ping 通,那么我们点击主机 H2,然后在桌面选项卡里面选择命令提示行,然后我们就可以进行 ping 了: ping 192.168.1.1,然后回车。第一条请求超时,第二条请求也超时了了,第 3 条请求也超时,那么第 4 条收到了来自主机 H1,也就是它的 IP 地址 192.168.1.1,收到了 H1 的回来的响应。
为什么会出现三次超时,我们在以前的实验中已经介绍过这个原因了,主要就是通过 ARP 广播请求的目的 MAC 地址那要逐段请求那所造成的这种现象。那么一旦这个过程结束以后,我们再 ping 一次,应该是可以连续收到 4 条响应,我们看到连续收到了 4 条响应,这样就证明我们这两个主机之间是可以通信的,因为我们主机 H2 ping H1 相当于发过去请求,H1 还要给发回来响应,所以这样就证明了他们之间是可以互通的,进而也证明了我们的 IP 地址配置的是正确的,静态路由添加的也是正确的。
C:\>ping 192.168.2.1
Pinging 192.168.2.1 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Reply from 192.168.2.1: bytes=32 time<1ms TTL=125
Ping statistics for 192.168.2.1:
Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
2
3
4
5
6
7
8
9
10
11
12
13
下面我们来看一下,如果我对路由器 R2 的第一条路由记录,由于我的疏忽,如果我把它配置错误了,会出现什么样的情况?例如现在我们看到的到达主机 H1 所在的网络下一跳,我给他写的是 10.0.0.1,也就是应该交给 R1 路由器的接口,这是我正确配置的情况。
如果说我疏忽了,我把它配置成了 R3 的接口,我们待会看一下会有什么样的情况。
我们点击 R2 这个路由器,然后在配置这个选项卡里面,我们在这儿有一个路由,下面有个静态,我们可以看到这是我之前配置的两条正确的路由。
现在我们要把这一条路由给它配置成错误的,也就是说到达主机 H1 所在这个网络是 192.168.1.0,然后相应的地址掩码 255.255.255.0,我要错误的是把下一跳的地址,它本来是跳给 R1 的接口是对的,但是我让他跳给 R3 的接口,也就是下一条地址我输为 10.0.1.2,。我们当然我们先把之前的正确的这一条给它删除掉,然后把我刚才输的错误的给它添加进来。
下面我们就来看一下主机 H2 的给 H1,如果发送一个 ICMP 的请求报文,需要 H1 回复一个会出现什么样的情况,我们先切换到从右下角切换到从实时切换到仿真模式,然后我们不要这么多协议,我们只显示一个 ICMP 协议就可以了。然后我们点击添加简单的 PDU,我们让 H2 为源主机,让 H1 为目的主机,那么我们点击这里的捕获前进按钮;
H2 先把 IP 数据报给了它的默认网关,也就是 R3。R3 去查路由表决定把它转发给 R2,而到了 R 2,R2 根据这个数据包里的目的 IP 地址也就是主机 H1 的 192.168.1.1,查到了是在他的路由表里面的第一条记录,而第一条这个记录只是他应该给我们刚才正确的是应该给接口,也就是 R1 的接口,而我们刚才已经把这个地方故意给它改错了,改成 R3 的接口。所以它应该转发到了 R3 路由器,而 R3 路由器的话收到以后又跟里面的把它的 IP 目的 IP 取出来,发现这条记录匹配又把它发回到 R2 的接口。我们现在就可以看出来了,由于我给 R2 路由器的静态路由配置错误的,会导致 IP 数据包在 R2 和 R3 的这两个路由器之间,它会反复的这么样的转发。
当然我们可以看一下在 ICMP,当然它是封装在这个 IP 数据报里面,我们可以看一下入站的 PDU 详情,也就是这个数据包进入到路由器,那么当时他进来的生存时间是 TTL 还可以有 248 跳,然后我们看路由器决定把它转发出来,也就从这出站 PDU 详情。我们可以看到这个 IP 数据包它每经过一个路由器,它会把生命值减一那么我们再进行前进,再看一下,那么再点它我们看到路段 PDU 也就是它进来的时候生命值是 247,那么准备把它转发出去,再点一下出战 PDU 路由器把它的生命值又减低了。那么直到这个 IP 数据报的低调的值减到 0 的时候,这个时候路由器就会把这个 IP 数据报给它丢弃掉,这样我们就验证了由于静态路由的配置错误所导致的路由环路问题: