同VLAN个别主机上网出故障
2018-11-07
网络概况
单位局域网内划分有多个 VLAN,两 台思科核心层交换机运行HSRP协议互为热备,增强网络的健壮性。每个VLAN有三个网关,分别为虚拟网关、主网关、备网关。核心交换机上联防火墙接入Internet。网络结构如图1所示。
故障现象
VLAN20内主机PC1无法上网,同为VLAN20的主机PC2、PC3却可以正常上网。
解决思路
主要考虑有以下五种可能导致PC1访问外网失败。
1.物理线路有问题。
2.交换机端口Down掉。
3.防火墙是否挡住。
图1 网络结构
4.DNS服务器解析是否正常。
5.主机获得网关的MAC地址是否正确。
故障处理
到现场后发现,PC1的本地连接并没有断开,查看其IP及网关地址为X.X.X.126。进入cmd,ping X.X.126是通的。排除了上述1、2点的猜测。
查看可以上网的PC2、PC3的DNS地址为202.102.152.3,和 PC1的相同,说明DNS解析是没有问题的。排除了第3点。
查看PC2、PC3的网关地址,发现一个为X.X.X.124,另一个为X.X.X.125。将PC3的网关地址设置为其中任何一个均可以上网,唯独设置为X.X.X.126不可以上网。后来登录防火墙检查配置,并没有禁止PC1访问外网的配置。
于是就把注意力集中在第五点上,PC1网关地址X.X.X.126对应的MAC地址是否正确。
1.查看PC1获得网关的MAC地址。
打开PC1,进入cmd,输入arp -a,得到如下输出:
PC1获得X.X.X.126网关对应的MAC地址为8c-dc-d4-9e-20-e7。
2.登录核心交换机查看MAC地址表,如图2所示,发现VLAN2网关地址X.X.X.126对应的MAC地址为0000.0c07.ac14
至此得出初步的结论,PC1获取了错误的网关MAC地址导致无法上网。
通过使用Wireshark软件对VLAN2进行了抓包分析,很快发现了异常记录(注意带线框的记录)如图3所示。
在图3中,第一条线框:X.X.X.120的主机进行ARP广播,它想知道X.X.X.126网关的MAC地址。
图2 登录交换机查看MAC地址表
图3 对VLAN2抓包结果
第二条线框:MAC地址为8c:dc:d4:9e:20:e7主机立即回应X.X.X.126网关的MAC地址是它自己。
第三条线框:真正的网关回应了MAC地址,可惜为时已晚。
通过抓包分析,明确了PC1无法上网的原因是VLAN20内某台主机中了ARP病毒,不断发布错误的网关MAC地址而引起的。
最后,登录接入交换机,通过show ip arp命令查找MAC地址为8c:dc:d4:9e:20:e7所在的交换机端口,通过shutdown命令关闭端口断开与中毒主机的连接。
经验总结
1.由于中毒主机的MAC地址没有登记使用人,只能先在接入层交换机关闭端口。查找中毒主机用了很长时间,说明平时要注意加强对基础运维信息的收集,遇到问题才可以很快定位。
2.核心交换机通过HSRP协议互为热备,每个VLAN设置一虚拟网关,每台交换机相应VLAN接口分别设置网关,如果主交换机物理上断开,备交换机就变为主的,这样不会影响网络的畅通。
对于 VLAN20,X.X.X.126就是那个虚拟网关,X.X.X.124、X.X.X.125分 别设置在各自交换机。
PC2、PC3可以设置X.124、X.125为网关正常上网,但是当设置X.X.X.124网关交换机坏了,设置X.124的内网机就会无法上网,125同理。设置虚拟网关X.126就没事,除非两台交换机物理断开。
本次故障是病毒引起的而非硬件故障,所以还是建议VLAN20内的内网机将网关设置为虚拟网关X.126。