Google-Compute-Engine

了解失敗的連接原因

  • July 30, 2019

編輯:問題的出現​​是因為我們的機器沒有外部 IP 地址,因此傳出流量通過雲 NAT,配置錯誤(每個 vm 的最小連接數)

我遇到了 GCP 機器能夠連接到外部 HTTP 伺服器的問題。下面是來自 tcpdump 的一行

16:17:26.561616 IP 2.2.2.2 > 3.3.3.3.http: Flags [S], seq 1152634327, win 28400, options [mss1420,sackOK,TS val3415260604 ecr 0,nop,wscale 7], length 0
16:17:26.561736 IP 1.1.1.1 > 2.2.2.2: ICMP host 3.3.3.3 unreachable - admin prohibited filter, length 68

1.1.1.1 is a GCP gateway
2.2.2.2 is my machine on GCP
3.3.3.3 is the external server

我如何知道哪台機器正在執行阻止連接嘗試的規則?

GCP 在連結中有 2 條隱含規則。隱含的出口規則允許具有最低優先級 (65535) 的所有出口流量。

我已經複製了場景,並在我的 GCP 項目中放置了一條防火牆規則(wheew 是我的 GCP VM 源地址),拒絕所有到特定外部地址(xxxx)的出口流量,我得到了 TCPdump(在我的實例上執行)顯示重新嘗試聯繫:

其中 xxxx 是外部 IP,vminstance 是我的 GCP 實例。

18:19:50.499009 IP vminstance.39728 > xxxx80:標誌

$$ S $$, seq 1309572437, 贏得 28400, 選項$$ mss 1420,sackOK,TS val 323066870 ecr 0,nop,wscale 7 $$, 長度 0 18:19:51.527849 IP vminstance.39728 > xxxx80:標誌

$$ S $$, seq 1309572437, 贏得 28400, 選項$$ mss 1420,sackOK,TS val 323067128 ecr 0,nop,wscale 7 $$, 長度 0 所以說,與您的輸出相比,您可能想要查看遠端網路/主機防火牆規則

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