园区网“232架构”实施案例分析(ICMP重定向报文导致的网络故障)

来源:互联网 发布:今日头条 淘宝链接 编辑:程序博客网 时间:2024/05/21 17:00

一、案例故障现象

“232架构”中的关键点是核心层与汇聚层之间互连IP地址的变化以及路由指向的变化,即汇聚层设备之间必须进行相关路由的指向(通过静态路由或者动态路由的方式),只有这样才能够实现“232架构”的数据转发特点,否则将会产生一些负面的影响,本节就对产生的这种负面影响进行原因分析和解释,以避免我们在实际的网络部署中发生类似的情况。

这里我们用图4-12或者图4-13来举例,说明一下在“232架构”下不合理部署导致的网络故障。案例图中我们在所有RG-S6806E上配置一条默认路由指向RG-S6810E的VLAN 100 SVI地址192.168.1.1,RG-S6810E上配置到各个RG-S6806E上网段的路由,下一跳分别是各个RG-S6806E上连三层接口地址192.168.1.2 / 192.168.1.3 / 192.168.1.4。

做完上述的规划和配置后,我们发现运行中的网络存在这样一个故障:PING RG-S6810E的虚接口地址192.168.1.1不通或是有丢包,但是下面的用户互通没有问题。

二、故障原因分析

在解释这个故障现象之前,我们先介绍一个概念:ICMP重定向报文。定向一般是用来让具有很少选路信息的主机逐渐建立更完善的路由表的,主机启动后路由表中一般只有一个默认的表项(即默认路由表项),一旦默认路由发生差错,默认路由器将通知它进行重定向,并允许主机对路由表进行相应的改动。ICMP重定向允许TCP/IP主机在进行选路时不需要具备智能特性,而把所有的智能特性放在路由器端。

一般来说如果一个路由器从某个端口收到一个报文,经过查看路由后发现这个报文还要从这个端口转发出去,则认为需要对报文的原发送端进行重定向,即在路由器上,报文重定向触发的条件是一个报文从某个端口进去后又从这个端口转发出去。例如图所示,ICMP重定向的过程如下:

PC如果要上Internet,首先把报文发给SW1(因为PC的网关指向SW1的接口);

SW1收到数据报文并检查它的路由表,发现SW2是发送该报文的下一跳,当它把报文发送给SW2时,SW1检测到这个报文的出接口与报文到达的接口是相同的,这样就给路由器发送重定向报文给原始发送端提供了线索;

SW1认为PC应该把默认路由指向SW2,所以发送一份ICMP重定向报文给PC,告诉它以后把数据报文发送给SW2。

以上是一个完整的ICMP重定向报文的产生过程,那么接下来我们分析一下三层交换机上的ICMP重定向报文。对于路由器而言,我们可以把一个物理端口看成是“三层”的(不考虑子接口的情况),ICMP重定向报文的触发条件是一个报文从某个接口进去,然后又从这个接口出来,这里的接口指的是三层的接口。而对于三层交换机而言,我们可以认为物理接口是一个“二层”的概念,真正具有“三层”属性的是VLAN SVI接口或者是路由口,所以在三层交换机上ICMP重定向报文的触发条件要改为一个报文从某个VLAN SVI接口或者是路由口进来,然后又从这个VLAN SVI接口或者是路由口转发出去(请注意是报文的三层转发,不是二层转发),或者说对于三层交换机来说,ICMP重定向报文的触发条件是在同一网段内(同一VLAN内)的三层转发。

 

现在我们结合图以及前面陈述的“232架构”不合理部署情况,分析一下当VLAN 2访问VLAN 7时网络中数据的转发过程:

RG-S6806E-1根据路由表将报文转发到RG-S6810E;

RG-S6810E查找路由表,找到下一跳是192.168.1.4,将报文转发到RG-S6806E-3;

同时RG-S6810E发现这个报文进出的VLAN接口相同(都是VLAN 100),所以要触发一个重定向报文,发往RG-S6806E-1,让RG-S6806E-1重新设置路由;

RG-S6806E-3回应报文,重复一次,再次产生重定向报文;
由于RG-S6806E-1、RG-S6806E-3的路由已经静态配置,不会更新自己的路由表,所以任意两个RG-S6806E之间的通信都会导致重定向报文的产生,而每触发一个重定向报文都会占用交换机CPU资源,当整个网络流量很大的时候,CPU就会忙于处理这些重定向报文,这时如果PING RG-S6810E的VLAN 100 SVI接口,由于CPU无法及时处理这些报文导致PING丢包甚至PING不通。

那么为什么下面的用户互通没有问题呢?解释这个问题之前先介绍一下交换机的工作流程。对于交换机而言,它有两个工作流程:主机流程和转发流程。主机流程是指报文需要上送到CPU进行处理的流程,比如PING SVI接口、telnet、启动了动态路由协议等;而转发流程则不同,基本上是由硬件自动完成的,比如对于二层转发,MAC地址的学习、老化以及转发全部是由ASIC芯片自动完成的,不需要CPU的干预。一个报文转发到交换机上走的是主机流程还是转发流程取决于这个报文的目的MAC地址是不是交换机的MAC地址,如果是,则走主机流程,如果不是,则走转发流程。交换机下的用户互通走的是转发流程,而PING SVI接口走的是主机流程,所以会有不同的结果,因此下面的用户互通没有问题。

三、合理部署方法

我们可以看到这种ICMP重定向报文的产生一般都是由于网络部署时设计的不合理导致的,我们可以通过重新规划网络来避免重定向报文的产生。对于“232架构”的网络模型,我们需要在RG-S6806E上设置到其它RG-S6806E的直接静态路由或是启用动态路由协议。

这样的话,从RG-S6806E-1到RG-S6806E-3的报文就可以通过RG-S6810E直接到达RG-S6806E-3,在这种情况下,RG-S6810E相当于一台二层交换机,只行使了二层转发的职能。

因此,通过这样合理的部署“232架构”园区网,一定程度上减轻了核心交换机的负担,而且使核心设备的配置变得简单,就资源利用来说是比较合理的。

原创粉丝点击