WDS PXE 伺服器偶爾會返回錯誤的 IP
我們有一個非常複雜的網路引導環境來保持我們的成像網路的流量分離,該網路每小時處理數百台機器。
我們使用 WDS 伺服器選擇菜單調整 ( http://www.stephan-schwarz.net/?p=58 ) 允許多個 PXE 伺服器作為手動負載平衡解決方案。
在此過程中,我發現非 UEFI 機器的來源上限為 20 個,UEFI 機器的來源上限為 16 個(我在 Technet 上發布了關於此問題的資訊,並且對 BIOS 上限感到滿意)
從那以後,我發現 MDT 能夠定義具有未知限制的伺服器源列表,因此一旦啟動到 MDT 映像中,這就是一個負載平衡解決方案。
但是,我很少看到無法理解的 PXE 問題。
當我進入 WDS 伺服器選擇菜單時,我看到所有 16 台伺服器都是 IP
$$ SERVER NAME (no domain) $$由首先回答的伺服器提供。策略是選擇一個特定的伺服器(從 1 到 16)。發生以下三種情況之一: 1- 載入有問題的伺服器(伺服器 01 載入了 WDS 伺服器選擇菜單,選擇了伺服器 05 並從中啟動)。這發生在 90% 的時間。
2-載入原始源伺服器而不是所選伺服器。這種情況很少發生,但也可能被伺服器數據幾乎總是相同的事實所掩蓋(直到現在)
3-機器嘗試載入任意IP,它可以是任何東西——包括公共IP。重新啟動並再次嘗試可能會一遍又一遍地導致不同的 IP。有時IP是一樣的。例如,我在 Wireshark 中擷取了來自一台機器的數據包流量,並且我看到了正常的 PXE 流量,直到有問題的設備發出一個 DHCP 請求,請求一個奇怪的目標 IP,如 8.128.0.0
現在,如果我讓機器通過網路引導隨機選擇引導伺服器,這一切都不會發生。我覺得(儘管還沒有測試到令人難以置信的數量)如果所需的伺服器位於 UEFI 的前 8 個中(至少在有問題的設備上,UEFI WDS Server Select 顯示了一些設備然後你需要滾動)。
這背後有什麼理由嗎?我在https://www.dropbox.com/s/qwsnvgda1lhxbcx/pcap_wds_ip_weirdness.pcapng?dl=0有一個 2MB 的 pcap 文件,其中包含從新啟動到請求的錯誤 IP 的流量。建議的過濾器是 eth.src == d4:c9:ef:f8:e4:db || eth.dst == d4:c9:ef:f8:e4:db
環境主要是 HP - ProCurve 2530G 和(很少)啟用 IGMP 和 STP 的 2510G 交換機,ESXi 集群上的 Windows Server 2012 R2 伺服器,主要是 HP Elitebook 810 G2 設備。
我很欣賞任何見解。
當 PXE 客戶端啟動時,它會從 N 個 DHCP/WDS 伺服器接收 N 個 PXE 提供。他們都提供wdsnbp(或wdsmgfw.efi)作為 NBP;最終一個提議被接受,NBP 被 TFTP 傳輸並啟動。現在,NBP 開始一個新的 PXE DCHP“請求”,但這次它保存“所有”收到的 DHCP ACK,並呈現一個包含所有這些的菜單。這第二次 WDS 伺服器將提供文件bootmgr(或bootmgfw.efi)作為新的 NBP。您的wireshark 正好顯示了這一點。
不同的限制(20/16)並不是您想像的 BIOS/UEFI 上限;這只是第一個 NBP 施加的限制。
流量擷取還顯示來自一個 DHCP 伺服器的報價,不提供第二個 NBP,然後我認為您的設置中有普通 DHCP(未啟用 PXE)或配置錯誤的 WDS 伺服器,但這“不應該”是你的問題的原因。
你所描述的看起來像一個有問題的 WDSNBP(或 wdsmgfw.efi)。為什麼這如此不穩定且難以調試?好吧,第一個 NBP 是從所有報價中隨機選擇的,那麼您可能會在每次嘗試時啟動它的不同版本。您應該驗證它們都是完全相同的版本;您可能會發現有時會啟動舊的錯誤版本,這會成為問題的根源。PC 提供的強制從自己的 IP 啟動的 NBP 是第一個可疑的。