Windows

PXE 啟動無法通過 DHCP 獲取 IP 地址,但 DHCP 在作業系統啟動時工作

  • July 30, 2017

我正在嘗試 PXE 引導 Cisco UCS C240 伺服器以通過網路安裝新作業系統,但它在引導期間沒有通過 DHCP 獲取 IP 地址。我從 Intel Boot Agent 收到“未收到 DHCP 或 proxyDHCP 提供”錯誤。DHCP 伺服器上的 tcpdump 顯示 DHCP 伺服器機器上沒有收到與 DHCP 相關的數據包:

tcpdump -n -e -i eth2 ether src FC:99:47:49:D4:9E or ether dst FC:99:47:49:D4:9E

但是,當我將機器引導到已安裝的作業系統(在本例中為 Windows Server 2012)並為 DHCP 配置該網路介面時,它會從 DHCP 伺服器獲取 IP 地址。如果我讓 tcpdump 執行,我會看到以下內容:

13:34:36.525646 fc:99:47:49:d4:9e > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 126: 169.254.239.3.54275 > 255.255.255.255.111: UDP, length 84
13:34:40.118071 fc:99:47:49:d4:9e > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 110: 169.254.239.3.137 > 169.254.255.255.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
13:34:40.888206 fc:99:47:49:d4:9e > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 110: 169.254.239.3.137 > 169.254.255.255.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; BROADCAST
13:34:40.975407 fc:99:47:49:d4:9e > 01:00:5e:00:00:fc, ethertype IPv4 (0x0800), length 66: 169.254.239.3.55524 > 224.0.0.252.5355: UDP, length 24
13:34:41.387736 fc:99:47:49:d4:9e > 01:00:5e:00:00:fc, ethertype IPv4 (0x0800), length 66: 169.254.239.3.55524 > 224.0.0.252.5355: UDP, length 24
13:34:41.418849 fc:99:47:49:d4:9e > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 358: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from fc:99:47:49:d4:9e, length 316
13:34:41.419144 60:73:5c:68:b4:b6 > fc:99:47:49:d4:9e, ethertype IPv4 (0x0800), length 342: 10.10.0.131.67 > 10.10.0.151.68: BOOTP/DHCP, Reply, length 300

什麼可能導致 DHCP 在 PXE 引導過程中失敗,而在引導到作業系統時成功?據我所知,PXE 使用的網路介面與 Windows 相同。至少,在 PXE 引導期間報告的 MAC 地址與 Windows 啟動時通過 DHCP 獲取 IP 的 MAC 地址相同。

我已經看到 Portfast(或缺少 Portfast)導致了這種情況。在 DHCP 客戶端和伺服器之間的埠上啟用 Portfast 為我解決了這個問題。

您可能會看到此問題的另一次是預啟動執行 (PXE) 設備,例如 Windows 部署服務。下圖顯示了一個典型的 PXE 實現。以下是 PXE 發生的情況:

您給電腦通電,這會啟動 NIC,但不到 5 秒後,電腦的 POST 完成並且 NIC 嘗試從 DHCP 獲取 IP 地址,以便它可以直接從 PXE 伺服器載入啟動映像,但失敗了.

電腦在大約 10 秒內多次嘗試從 DHCP 伺服器獲取 IP 地址,之後放棄並移至另一個引導設備,例如硬碟驅動器。這個過程的不幸部分是,因為它無法獲取 IP 地址或連接 PXE 伺服器,您無法在該電腦上安裝新的作業系統映像。

此方案的問題在於,由於 STP 使電腦在埠上轉發流量之前等待 45 秒,因此 PXE 網路啟動已超時。image0.jpg PortFast 是解決客戶端電腦連接到交換機時延遲問題的解決方案。預設情況下不啟用 PortFast。在埠上啟用 PortFast 後,您可以有效地獲取該埠並告訴生成樹不要在該埠上實施 STP。

如果僅將一台電腦插入埠,則此解決方案還不錯——這樣人們就不會在網路上創建意外循環,這很容易做到。

http://www.dummies.com/how-to/content/spanning-tree-protocol-stp-and-portfast.html

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