Linux

路由器交換後無法通過 DHCP 連接 CentOS 虛擬機

  • March 12, 2013

我最近更換了舊的 Netgear 調製解調器/無線路由器,並更換為我們的 ISP 提供的 ZyXel P660HW-T1。我已經對其進行了配置,以便新路由器具有與舊路由器相同的 IP 地址、子網遮罩、IP 池起始地址和 IP 池大小。此外,我將其配置為使用與舊設備相同的無線 SSID 和密鑰。(為了阻止使用者對我大喊大叫:-))

Windows 機器可以毫無困難地連接到網路(全部通過 WiFi)。兩台 Ubuntu 機器通過 WiFi 毫無困難地連接(IP 地址分配給 wlan0,我猜這是人們所期望的)。

問題在於我們在 Windows 工作站上執行的 CentOS 虛擬機。以前我們可以在橋接模式下連接它們,它們將通過 DHCP 在網路上分配一個 IP 地址。連接的設備是 eth0。然而,現在這只是非常偶然。鑑於我認為我已將新路由器配置為與舊路由器相同,因此我無法理解問題所在。我們不想回滾到舊路由器,因為它變得不可靠,經常斷開連接等等。有人有什麼建議嗎?

事實證明,在這種情況下,問題出在 ZyXel 路由器本身 - 似乎這個特定型號的第一批發出時帶有一個無法正確處理 DHCP 租約的不可靠韌體。經過大約兩週的電話(!)和沮喪的使用者後,我設法從 ISP 發送了一個替代品,它開箱即用地完美執行……

對於調試網路問題,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)如何工作有基本的了解。網上到處都是解釋。此外,比較沒有問題的機器(或安靜時間的舊路由器)的流量也有助於理解。

調試愉快!

引用自:https://serverfault.com/questions/480231