Print

用户更换接入网口后不能正常上网

2006-02-09 发表

用户更换接入网口后不能正常上网的案例

问题描述:

 

 

某大楼在3层用了两台3526E,版本是 Version 3.10, RELEASE 0020S3526E双线路上行分别连接到两台S6506,下行接S3026E

 

每个工位有两个网口,两个网口在不同的S3026E下。当员工从一个网口换到另一个网口时,不能PING通网关(网关在S3526E上),也不能更新IP,只有在S3526E上清空ARP表后用户才能使用。

 

初步分析是ARP表不能自动更新。当用户更换到另一台3026E下时在3526E上的端口发生变化,但S3526E好像不知道有情况发生,当用户发起访问后也不能更新,一直要等到ARP老化。

 

处理过程:

 1  因为PC的网关在S3526上,PC移动端口后不能ping通网关,那么说明问题和S6506无关。将S6506设备可以从组网图中移出。

2  用如下组网本地测试。

 

PC 1.1.1.2先通过S3026E-1接到S3526E0/1上,ping网关1.1.1.1可以正常的ping通,ping通后,从S3526E上可以看到PC机的mac地址和arp如下:

<Quidway>dis arp

IP Address       MAC Address  VLAN ID  Port Name           Aging   Type

1.1.1.2          0050-ba20-f47e  1        Ethernet0/1            20    Dynamic

---   1 entry found   ---

<Quidway>dis mac

MAC ADDR     VLAN ID    STATE         PORT INDEX       AGING TIME

0050-ba20-f47e     1       Learned          Ethernet0/1             AGING

00e0-fc09-bcf9     1       Learned          Ethernet0/1             AGING

  ---  2 mac address(es) found  ---

 

3  移动PC,将PCS3026E-1移动到S3026E-2,再次ping网关,发现不能ping通,查看S3526Earpmac地址如下

<Quidway>dis arp

IP Address       MAC Address   VLAN ID  Port Name          Aging   Type

1.1.1.2          0050-ba20-f47e  1        Ethernet0/1            16    Dynamic

---   1 entry found   ---

<Quidway>dis mac

MAC ADDR    VLAN ID    STATE       PORT INDEX        AGING TIME

00e0-fc09-bcf9     1       Learned          Ethernet0/1             AGING

00e0-fc06-a024     1       Learned          Ethernet0/2             AGING

0050-ba20-f47e     1       Learned          Ethernet0/2             AGING

  ---  3 mac address(es) found  ---

 

发现0050-ba20-f47e这个主机的mac地址在mac地址表中存在于了E0/2上,而arp仍然存在于E0/1上。通过debug ni的报文收发可以看出:

*0.1219839 Quidway DRV_NI/8/debugging ni evt:

Received one packet to CPU , reason=0x10000000,length is 82

*0.1219970 Quidway DRV_NI/8/debugging ni evt:

>>>>>>Receive packet from port: 1, length: 82

00 e0 fc 1c d8 47 00 e0 fc 1c d8 47 81 00 00 01

08 00 45 00 00 3c 0e c0 00 00 1f 01 88 fd 01 01

01 02 01 01 01 01 08 00 25 5b 02 00 26 01 61 62

63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72

 

*0.1220340 Quidway DRV_NI/8/debugging ni evt:

>>>>>>Send packet to pbmp: 00000001, length: 78

00 50 ba 20 f4 7e 00 e0 fc 1c d8 47 81 00 00 01

08 00 45 00 00 3c 01 59 00 00 ff 01 b6 63 01 01

01 01 01 01 01 02 00 00 2d 5b 02 00 26 01 61 62

63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72

报文从E0/2收到了,但是回应的报文送到了E0/1去,所以不能ping 通。

 

4  此时,在设备上reset arppc就可以正常的ping 通交换机了。查看arpmac,发现都转移到了端口E0/2上了。

 

5  此时,将PC移回到S3026-1上,发现又不能正常的ping通了,此时,删除掉PC上的arp,也可以正常的ping通。

 

 

解决措施:

问题关键在于设备上的arp对应的端口和mac地址对应的端口不一致导致的,因此,解决方案有2

1、  主机移动后删掉设备上的arp

 

2、主机移动后删除掉主机上的arp

 

当在主机上进行ping时,如果删除掉了设备上的arp地址,设备收到主机的ICMP报文后,回先发送一个arp request解析主机的IP,主机回应arp后,arp就可以正确的学习到入端口上了。而如果删除主机上的arp,则主机开始ping时,直接发送arp request报文,报文送到设备后,设备上接收到arp报文,会进行arp的更新,从而将arp移动到正确的端口上。

 

显然,方案2可操作性更高。