AWS:公有子網中的 NAT 網關。為什麼?
據我了解,公共子網是可以通過 Internet 網關將流量路由到 Internet 的子網,而私有子網是不能(無法訪問 Internet,也無法從 Internet 訪問)的子網。為了訪問 Internet,私有子網需要通過 NAT 網關路由流量。
我可以確認這一點,因為我實際上已成功使用此設置。
但是……亞馬遜文件另有說法(我的重點是粗體):
公共子網中的實例可以直接從 Internet 接收入站流量,而私有子網中的實例不能。公共子網中的實例可以將出站流量直接發送到 Internet,而私有子網中的實例則不能。相反,私有子網中的實例可以使用您在公有子網中啟動的網路地址轉換 (NAT) 實例來訪問 Internet 。
NAT 網關所在的位置是否重要?如果是這樣,將其放入私有/公共子網的案例是什麼?
一個 NAT 網關(以及一個 NAT 實例,就其價值而言)必須位於公共子網中,因為只有公共子網上的設備才能真正使用公共 IP 地址。
這就是使公共子網成為公共子網的原因。
公共子網的迂腐定義是一個子網,其關聯的 VPC 路由表至少有一個指向 Internet 網關的路由……但實際上,它通常是一個子網,其預設路由(在 VPC 路由表中)指向網際網路網關。
相比之下,私有子網是沒有此類路由的子網。通常,私有子網的預設路由指向 NAT 設備,儘管它可能指向硬體 VPN 或 Direct Connect 連接。
如果 NAT 設備不在公共子網上,它(根據定義)沒有路由,它已轉換的流量可以通過它到達Internet,因為它的傳出流量遵循它所在子網的路由表。 . 所以 NAT 網關所在的子網——同樣,根據定義——必須是公共子網。
將 NAT 網關放置在公共子網上沒有安全隱患,因為在任何情況下都不會接受傳入的連接嘗試。這是你不能錯誤配置的東西。
如果您從 LAN 術語考慮,自然的假設是 NAT 設備需要“開啟”至少 2 個子網,即外部(公共地址)子網和內部(私有地址)子網 - 但 VPC 網路是不是它看起來的區域網路。這是一個軟體定義的第 3 層網路,可以非常乾淨地模擬乙太網,但它不是乙太網。