出站資料包遺失/逾時 - 僅適用於 Azure

出站資料包遺失/逾時 - 僅適用於 Azure

我遇到了資料包遺失到美國佛羅裡達州第三方資料中心的問題。該問題僅發生在 Azure 虛擬機器上,無論 VM 位於哪個資料中心。 Azure 虛擬機器是「普通」/開箱即用的,沒有載入任何軟體或進行其他自訂/更改。

我已經與資料中心的網路管理員交談過,他們看到的唯一資料包是那些不會超時的資料包;逾時的封包永遠不會到達其防火牆,因此聽起來像是 Azure 端的情況(特別是因為封包從多個 Azure 資料中心/區域持續丟棄/逾時)。有誰知道我該如何解決這個問題?

我執行的測試是連續的 TCP ping(使用tcping.exe)到連接埠 80(因為 ICMP 在 Azure 上被封鎖):

tcping -t 216.155.111.149 80
tcping -t 216.155.111.151 80
tcping -t 216.155.111.146 80

支持它不是第三方資料中心這一事實的其他證據是,我可以從我的家庭電腦/工作電腦運行相同的連續 TCP ping 並且不會丟失任何資料包。我還設定了從 Azure VM 到非 Azure 資料中心的 VM 的隧道 VPN,並且沒有遺失任何資料包。唯一丟棄資料包的時間是當流量直接透過 Azure 傳送至網際網路/WAN 時。

我知道下一步將是一些追蹤路由測試,但由於 Azure 阻止 ICMP,我不得不使用nmap 運行 TCP 追蹤路由;下面貼上的是這些測試的螢幕截圖。

nmap -sS -p 80 -Pn --traceroute 216.155.111.149

測試1

測試2

測試3

測試4

答案1

正如我在評論中提到的,您實際上遇到了類似的情況,例如本文

我可以輕易地重現你的行為:

問題轉載

我可以透過添加一個輕鬆解決這個問題實例級公網IP到虛擬機器:

問題已解決

很難說到底發生了什麼,因為我們沒有同時捕獲,但我的理解是遠端站點 (www.oandp.com) 上的邊緣設備(可能是防火牆)在其連接上保持關閉連接表的時間比Azure 長,因此當Azure 使用已釋放的(即已使用的)連接埠之一且遠端仍認為連線未完全關閉時,我們的SYN 封包將被丟棄。

ILPIP 應用靜態 NAT 或“一對一 NAT”,因此沒有連接埠轉換或連接埠重複使用(除非您的作業系統這樣做),從而避免了該問題。

相關內容