我最近更换了旧的 Netgear 调制解调器/无线路由器,换成了我们 ISP 提供的 ZyXel P660HW-T1。我已将其配置为新路由器具有与旧路由器相同的 IP 地址、子网掩码、IP 池起始地址和 IP 池大小。此外,我还将其配置为使用与旧设备相同的无线 SSID 和密钥。(为了阻止用户对我大喊大叫:-))
Windows 机器可以毫无困难地连接到网络(通过 WiFi)。两台 Ubuntu 机器也可以毫无困难地通过 WiFi 连接(IP 地址分配给 wlan0,我想这也是意料之中的)。
问题出在我们在 Windows 工作站上运行的 CentOS VM 上。以前我们可以在桥接模式下连接这些 VM,DHCP 会为它们分配一个网络 IP 地址。连接的设备是 eth0。但是现在,这只能偶尔起作用。考虑到我认为我已经将新路由器的配置与旧路由器完全相同,我不明白问题出在哪里。我们不想回滚到旧路由器,因为它已经变得不可靠,经常断开连接等等。有人有什么建议吗?
答案1
事实证明,问题出在 ZyXel 路由器本身上 - 似乎该型号的首批发货时带有一个不可靠的固件,无法正确处理 DHCP 租约。经过大约两周的电话沟通(!)和用户不满之后,我设法从 ISP 那里拿到了替换品,它开箱即用,运行良好......
答案2
对于调试网络问题,tcpdump(Linux)和Wireshark(Linux和Windows)是您的好朋友。
Wireshark 存在很多安全漏洞(通常是数百个解码器中的一些存在缓冲区溢出)。我并不特别担心这些漏洞,但为了安全起见,我更喜欢用更笨的方法进行捕获
sudo tcpdump -s 0 -i eth0 -w capture1.cap
并像普通用户一样使用 wireshark 来处理捕获的文件。
我已经有几年没用过 Windows 了,我不确定您是否会在 Windows 主机上看到桥接流量。如果您没有看到它,您可以在启动网络时在客户机上捕获它。如果在网络启动之前捕获失败,我编写了一个无限循环来尝试启动 tcpdump,直到它成功(即网络启动)。
在 CentOS 中,使用命令关闭和打开网络
sudo service network stop
sudo service network start
您可能想查看 DHCP 流量。
当然,阅读 Wireshark 输出需要对底层协议(例如 DHCP)的工作原理有基本的了解。网络上有很多解释。此外,比较没有问题的机器(或安静时段的旧路由器)的流量也有助于理解。
调试愉快!