同学过来告诉我,电脑上不了网。
症状:在vmare中,安装了redhat 9,将redhat 9的上网模式设置为bridge模式,redhat 9的IP是10.60.38.253,windows宿主机IP是10.60.38.250,现在,redhat 9能ping能windows宿主机,但就是上不了网。
经仔细检查,redhat 9的网关、DNS、MAC地址、hosts文件都设置无误,也能ping通10.60.38.0网段的除了网关以外的其它IP,但ping不通网关。能ping通其它IP,说明它和交换机间的连接没有问题,其它IP能ping通网关,说明网关和交换机的连接也没有问题,那这是怎么一回事呢?这个IP是不会过期的,而且,即使这个IP过了期,但是在一切连接都正常的情况下,它应该表现为能够ping通网关而不能上网,而不是现在连网关都ping不通。
百思不得其解,想到可能是arp欺骗,虽然不太可能,但还是看看在IP的下一层通信是否正常。为了排除vmware网络设置错误的干扰,在我的windows电脑上把IP和MAC地址都更改为不能上网的那个redhat9使用的IP(10.60.38.253)和MAC地址。改完以后,打开命令行,运行ipconfig /flushdns命令和arp –d命令删除本地缓存,然后ping网关,自然是不通。然后用arp –a查看记录的网关的MAC地址,把它和能ping通网关的电脑上记录的地址对照,发现它也确实是获取了正确的网关MAC地址,没有任何ARP欺骗的迹象。
上面的测试说明了一点,上不了网的这个IP确实把数据包发送给了正确的网关,网关也肯定给了回应(否则其它IP也不会ping通网关的),但这个回应数据包没有被这个IP收到。但是正常丢包绝对不会这么严重,只有一种情况,回应的数据包被别的电脑截获了。这么一想,马上关掉我的电脑(当前我的电脑设置的是那个上不了网的IP和对应的MAC),在同学的电脑上ping那个上不了网的IP,通了。很显然,那个IP被盗用了。
update:下午猛然意识到,当时ping那个上不了网的IP(10.60.38.253)时,虽然我的电脑关掉了,但是同学的虚拟机中的redhat 9还在,ping通了实际上是因为那个redhat 9还在运行的缘故。而且,当时如果没有那么轻易陶醉,应该能看出来问题的:如果是IP被盗用,应该表现为上网速度减慢,ping的时候时而通时而不通,而不是一直ping不通。那么现在,问题非常奇怪,猜想可能是网关那里的设置导致的这个问题,除此以外想不出其它原因了。