在一个典型的冗余互备的交换网络内部,由于vlan的三层和二层关系,可能会导致数据流比较难以分析。我最近在考虑这个问题,想具体从数据包结构来分析一下交换机对数据流的处理过程。
网络环境描述(如图):
1,两台CW上面都存在vlan2和vlan5;
2,两台CW之间通过Gi9/1的trunk端口跑HSRP协议,交换环路有STP阻隔;
3,vlan2的HSRP的active和STP的root强制在SW-A上;
4,vlan5的HSRP的active和STP的root强制在SW-B上;
5,1.1.2.30处于vlan2;
6,1.1.5.30处于vlan5。
依据1.1.2.30与1.1.5.30之间的数据交互来进行交换机处理机制分析:
1,服务器Ser1(1.1.2.30)发数据包给Ser2(1.1.5.30),此时数据包为:
目标MAC 源MAC 源IP 目标IP
M_V2_GW M_Ser1 2.30 5.30
2, CW-A接收到数据包,发现目标MAC为自己,于是一层层解包到IP层到目标IP为5.30,于是查找5.30的路由表(CEF表)发现5.30直连在vlan5,于是通过ARP表查找vlan5的网关MAC,然后查找MAC表得知vlan5的网关MAC是通过Gi9/1到CW-B。于是保持IP层数据不变,封装MAC层如下:
目标MAC 源MAC 源IP 目标IP
M_V5_GW M_V2_GW 2.30 5.30
3,CW-B接收到数据包,类似于CW-A的处理过程,封装数据报如下:
目标MAC 源MAC 源IP 目标IP
M_Ser2 M_V5_GW 2.30 5.30
4,Ser2接收到数据包后,一层层解包直到将数据传给相关的应用处理后,回应数据报如下:
目标MAC 源MAC 源IP 目标IP
M_V5_GW M_Ser2 5.30 2.30
5,CW-B接收到数据包后类似于上面的过程处理数据,这里就不敷衍了。