Windows 10 客戶端:無法強制從特定 NIC 傳輸到特定子網的傳出流量
在我的網路設置中,我有兩台電腦
- 使用 Windows 10 的客戶端
- 帶有 CentOS v7.9 的 Ookla 伺服器,它是託管在 ESXi 虛擬機管理程序中的虛擬機
兩者都有兩個相同類型的網路適配器:
- 一個適配器,配置用於 Internet 訪問和使用 SSH 登錄機器,使用普通的 1Gpbs 乙太網鏈路(我們稱它們為“管理”網卡)
- 另一個促進它們之間的 10Gbps 連接,我想從中進行速度測試。
請注意,服務路由器和一些額外的網路設備放置在 10Gbps 鏈路中的客戶端和伺服器之間,但我非常確信它們配置正確。
管理 NIC 具有不同子網中的 IP(客戶端中的 10.85.xxx.yyy 和伺服器中的 10.88.zzz.www),而促進 10Gbps 的 NIC 具有相同子網中的 IP(伺服器中的 50.50.50.50/24 和50.50.50.51/24 在客戶端)。沒有為子網 50.50.50.0/24 配置網關,因為沒有為該子網提供網關功能的設備。不過,我的管理網卡已經配置了網關,所以我沒有違反“單一網關”的原則。
儘管當 IP 50.50.50.51/24 設置為促進其 10Gbps 的 NIC 時自動配置了 Windows 10 PC 中的路由表,但我什至無法 ping IP 50.50.50.50 並看到從其 10Gbps 傳輸的 ICMP ping 數據包- 促進 NIC,更不用說在這個連結上進行速度測試了。相反,數據包是從其“管理”網卡(下面的路由表中的介面“10.85.220.116”)傳輸的。出於這個原因,我還添加了靜態路由:(
route add 50.50.50.50 mask 255.255.255.255 0.0.0.0 metric 2 IF 13
其中 IF 13 是下面的介面“50.50.50.51”),但 ping 數據包繼續從 1Gbps 適配器傳輸,正如我在 Wireshark 擷取中看到的那樣。問題沒有通過重新啟動客戶端得到解決。此外,反向 ping(伺服器 –> 客戶端)也不成功。至此,我在Windows 10 PC中的路由表如下:
另外,當我第一次 ping 主機 50.50.50.50 時,我可以看到從 NIC 50.50.50.51 廣播未回复的 ARP 請求。
為了將所有流量從 IP 地址為 50.50.50.51 的介面路由到子網 50.50.50.0/24,我還能嘗試什麼?
萬一這很重要,我的 Win 10 版本是:
10.0.17134.1488
.更新:在刪除到 50.50.50.50 的靜態路由後,我還嘗試將路由的度量減少到 50.50.50.0/24 (
route change 50.50.50.0 mask 255.255.255.0 0.0.0.0 metric 2 IF 13
),但這也沒有解決我的問題。現在,我的路由表如下:我仍然有同樣的問題。
更新#2根據 djdomi 在聊天中的建議,我意識到 IP 選擇可能是一個問題。因此,我從子網 192.168.10.0/24 中為 10Gbps 適配器(伺服器為 192.168.10.1,客戶端為 192.168.10.2)選擇了 IP,而沒有進入網關(10.85.220.1 仍然是預設網關)並重新啟動。但是,問題仍然存在。
更新#3我在中間設備中發現了一些網路問題(這有助於 L2 層的轉發和服務路由)。解決它們後,我仍然遇到同樣的問題。但是現在,當我發出
tracert 192.168.10.1
辨識伺服器 10Gbps 適配器的路徑時,我看到一些 LLMNR 幀224.0.0.252
從 Win 10 客戶端的 10Gbps NIC 傳輸到多播 IP ( ),這些幀查詢配置的預設網關的 IP 1Gbps 網卡 (10.85.220.1
)。Ping 仍然更喜歡 1Gbps 網卡。為什麼這樣做?無論如何,我按照此連結中的說明禁用了 LLMNR 協議,因為伺服器中 10Gbps NIC 的這個 IP 與文件中的 Ookla 伺服器 URL 相關聯/etc/hosts
,但這也沒有解決問題。
最後,該問題被證明是由服務路由器中的配置細節引起的。