实验 8:聚合了不存在的网络导致的路由环路问题
一、 实验目的
二、 实验环境
• Cisco Packet Tracer 模拟器
三、 实验内容
1、聚合了不存在的网络导致的路由环路问题
(1) 第一步:构建网络拓扑:拖动三个主机,两个路由器,使用自动连接类型将其连接起来。其中路由器使用2911。并写好相应的IP地址,以及写好默认网关注释和默认路由、以及路由聚合等,如图1所示。
图 1 构建网络拓扑
(2) 第二步:验证一下上述的主机之间是否可以互相通信,使用主机H2ping一下左边的主机H1,即ping 192.168.1.1。如图2所示。之前之所以两次请求超时,是因为ARP广播导致的。同理,主机H2和主机H3之间也可以互相通信。
图2 主机之间互相通信成功
(3) 第三步:路由聚合聚合了以下四个网络,包括192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,192.168.3.0/24,之所以是聚合了四个网络,是因为在主机号中拿出两个作为子网号,刚好拿出两位作为子网号,所以就划分出了四个网络,其中192.168.1.0/24和192.168.2.0/24这两个网络在网络拓扑中是存在的,其余两个网络在网络拓扑中不存在。
(4) 第四步:切换到仿真模式,并且过滤协议,只保留ICMP协议,为主机H2添加复杂的PDU,如图3所示。PDU的目的IP地址填为192.168.3.1,TTL写8,序号填1,单次仿真时间1秒,如图4所示。
图3 过滤协议,只保留ICMP
图4 创建一个复杂的PDU
(5) 第五步:点击捕获前进按钮,发现PDU到达了路由器R2。如图5所示。
图5 复杂的PDU到达路由器R2
(6) 第六步:看一下路由器R2对这个数据包的处理,如图6所示。查看一下出站PDU详情,如图7所示。可以发现出站的时候,TTL会变成7,这是因为每经过一个路由器会减一跳。
图6 路由器R2上的PDU信息
图7 查看出站PDU详情
(7) 第七步:再次点击捕获前进之后,PDU到达路由器R1,再次查看PDU信息,如图8所示。此时目的IP地址是192.168.3.1,由于在转发表里面没有相应的记录,所以就会走默认路由的下一跳,也就是10.0.0.2,此时数据报就会从路由器R1发回路由器R2,如图9所示。此时数据报来回在路由器R1,R2之间转发,直到TTL的值为0,如图10所示。
图8 路由器R1上的PDU信息
图9 数据报来回在R1,R2之间转发
图10 TTL值为0,丢弃数据包
(8) 第八步:路由器R1丢弃了数据报之后,向它所丢弃的这个IP数据报的发送方发送一个ICMP的时间超过的通知报文,主机H2收到通知报文,如图11所示。此时主机H2就知道是路由器R1丢弃了数据报。
图11 主机H2收到通知报文
(9) 第九步:为了解决这个路由环路问题,就必须在路由器R1中,针对网络192.168.3.0/24写一个黑洞路由,即192.168.3.0/24 null0,也就是说当数据报想要到达192.168.3.0/24这个网路的话,就直接转发给路由器R1的null0接口,null0接口是一个虚拟的接口,相当于路由器R1丢弃了这个数据报。
(10) 第十步:为路由器R1添加黑洞路由,点击路由器R1,进入命令行界面,点击回车,然后输入enable,再输入config,再回车,然后进入配置模式,然后使用命令ip route 192.168.3.0 255.255.255.0 null0,然后回车就配置好了黑洞路由,如图12所示。
图12 配置黑洞路由
(11) 第十一步:删除之前的实验场景,再次让主机H2发送一个复杂的PDU,目的IP地址为192.168.3.1,序号填1,单次仿真时间1秒,如图13所示。
图13 创建一个复杂的PDU
(12) 第十二步:当IP数据报到达路由器R1时,R1直接丢弃了此数据报,因为黑洞路由,看一下具体细节,如图14所示。
图14 查看具体丢弃细节
2、网络故障导致的路由环路问题
(1) 第一步:构建网络拓扑:在逻辑工作空间上,拖动三个普通计算机和两个路由器,选择自动连接把设备连接起来,并设置好IP,并在计算机旁边写好IP注释。并写好默认网关以及默认路由注释。如图15所示。
图 15 构建网络拓扑并写好注释
(2) 第二步:使用ping指令,让主机H2去ping一下主机H1,ping 192.168.1.1。如图8所示。为什么会有两次超时,因为经过了两个路由器,每个路由器发送一个ARP广播,然后又会丢掉接收到的ICMP报文,所以就丢了两次,直到第三,四次请求才成功。
图16 主机之间成功ping通
(3) 第三步:查看路由器R1的路由表,如图17所示。
图17 路由器R1的路由表
(4) 第四步:把路由器R1的端口一断开,此时路由器R1的路由表发生变化,如图18所示。
图18 路由表发生变化
(5) 第五步:切换到仿真模式,并且过滤协议,只保留ICMP协议,如图10所示。并添加简单的PDU,让主机H2为源主机,主机H1为目的主机,如图19所示。
图19 过滤协议,只保留ICMP
(6) 第六步:点击捕获前进,数据报到达R1之后,如图20所示。此时由于路由表里面没有相关目的地址的下一跳,就只能走默认路由,又回到了R2,此时又在R1和R2之间来回转发,形成了路由环路,直到TTL的值为0,
图20 数据报到达路由器R1
(7) 第七步:为路由器R1添加黑洞路由,点击路由器R1,进入命令行界面,点击回车,然后输入enable,再输入config,再回车,然后进入配置模式,然后使用命令ip route 192.168.1.0 255.255.255.0 null0,然后回车就配置好了黑洞路由,如图21所示。此时路由表中就应该会有黑洞路由的记录,如图22所示。
图21 为R1添加黑洞路由
图22 路由表中有黑洞路由
(8) 此时再让主机H2给主机H1发送一个简单的PDU,到达路由器R1之后,R1就会直接丢弃此数据报,如图23所示。
图23 路由器R1直接丢弃数据报
四、 实验体会
1. 这两个实验的步骤都遵循构建网络拓扑、配置网络环境、跟踪数据包和查看数据包这四个规则。
2. Cisco Packet Tracer 模拟器可以清晰地展示 PDU 在传送过程,设备是如何处理 PDU 的。通过仿真传送过程,有助于我们理解有关的知识。
3. 聚合不存在的网络可能导致路由环路问题,影响网络的稳定性和性能。当路由器在接收到错误的路由信息时,可能会错误地认为某个网络是可达的,从而形成循环路径。这种情况不仅会导致数据包在网络中无限循环,还可能引发网络拥塞和资源浪费。为了防止此类问题,网络管理员应定期检查路由表,确保路由信息的准确性,并应用适当的路由协议和配置策略。此外,引入环路避免机制,如分层路由和时间戳,能够有效降低路由环路的发生概率,提升网络的可靠性。
4. 网络故障引发的路由环路问题是网络管理中的重要挑战。当网络中的某个节点或链路发生故障时,路由器可能会接收到错误的路由信息,导致对某些网络的错误判断,从而形成环路。这种环路会使数据包在网络中不断循环,造成延迟、丢包和带宽浪费,严重时甚至可能导致整个网络瘫痪。为了解决这一问题,网络管理员应实施快速故障检测和恢复机制,利用路由协议中的环路避免技术,如毒性反转和水平分割,确保网络的稳定性与高可用性。此外,定期的网络监测和维护也是预防路由环路的重要措施。