KeyWords: VLAN show cam mac-address-table cdp loop troubleshooting
某局域网的ip地址主要通过DHCP来分配,各VLAN的PC都使用位于VLAN1的一台DHCP服务器来获取IP地址和网关等参数。治理员发现在该网络中存在一个希奇的现象,就是有一些机器有的时候获得的不是本VLAN的IP地址,而是别的VLAN的地址,更希奇的是,使用别的VLAN的地址也能正常通讯!这怎么可能呢?
经过观察,治理员终于跟踪到一个具体的表现。一台PC连接在交换机3548-03的F0/37端口,该端口属于VLAN1,但当前获得的是VLAN4的IP地址:192.168.4.111,它与其它网段互通没有问题。
在DOS窗口中输入命令ipconfig /all可以查看到PC的MAC地址00-d0-b7-19-06-fa。
在3548-03交换机上使用命令:show mac-address-table dynamic interface f 0/37, 没错该PC是连接在这个端口上:
Non-static Address Table:
Destination Address Address Type VLAN Destination Port
------------------- ------------ ---- -----------------
00d0.b719.06fa Dynamic 1 FastEthernet0/37
在核心交换机6509的路由模块MSFC上ping 192.168.4.111,通的,show arp in 192.168.4.111观察ARP记录,正确无误;从别的网段ping 和tracert 该地址,通的;使用工具扫描,分析结果可以确定地址192.168.4.111的确是那台PC。
这样说来,很可能是VLAN 1和VLAN 4在网络的某个地方被连通了。假设是这样,怎么才能找出这个错误的连接点呢?
既然该PC使用VLAN 1 或VLAN 4的IP地址都可以与别的网段连通,那么它和位于MSFC上的网关通讯肯定是正常的。由于MSFC的唯一邻接的二层设备就是6509的交换引擎,所以引擎的MAC地址表中无论是VLAN 1 或VLAN 4都应该有该工作站的MAC地址记录。使用命令show camp 看到如下结果:
6509_se (enable) show cam 00-d0-b7-19-06-fa
* = Static Entry. + = Permanent Entry. # = System Entry. R = Router Entry.
X = Port Security Entry $ = Dot1x Security Entry
VLAN Dest MAC/Route Des [CoS] Destination Ports or VCs / [PRotocol Type]
---- ------------------ ----- -------------------------------------------
1 00-d0-b7-19-06-fa 3/2 [ALL]
4 00-d0-b7-19-06-fa 3/1 [ALL]
好了,胜利在望。端口3/2 连接的是3548-03交换机,正确的,MAC地址出现在VLAN 1中,也是正确的; 端口3/1连接的是另一台交换机3548-01, 何以它会报告该MAC地址出现在VLAN 4中呢?
登录3548-01交换机,使用show cdp nei 得到如下输出:
设备名称 本地端口 设备型号 远端端口
3548-01 Fas 0/33 127 T S WS-C3548-XFas 0/38
3548-01 Fas 0/38 127 T S WS-C3548-XFas 0/33
可以看到,设备出现在自已的cdp nei 表中,说明端口f0/33和f0/38可能通过交叉线或HUB之类的设备相连形成了环路;通过命令show vlan 可以发现,f0/33端口属于VLAN 1, 而f0/38端口则属于VLAN 4, 问题至此水落石出。
假如端口f0/33和f0/38都属于VLAN 1,且答应了spantree portfast 特性,那就很可能会引起生成树的环路。现象为网络时通时断,MSFC的MAC地址在正确的端口(15/1或16/1)和出问题的交换机端口之间flapping。