如何通過不同 VPC 中的主機路由來自 VPC 中的主機的流量
tl; dr有沒有辦法通過 10.0.0.6 將圖中的 172.20.0.100 流量路由到 200.0.0.100 ?
我有一個設置,我們有一個現有的 AWS VPC (172.20.0.0/16),其中包含許多主機。我們正在嘗試為具有以下限制的供應商設置 VPN:
- 源主機必須不同於 VPN 對等方
- 源主機必須具有公共 IP 地址或供應商發布的私有地址
為此,供應商為我們分配了 10.0.0.0/28 的範圍。由於無法將 10.0.0.0/28 範圍添加到現有 VPC,我們已在此網路的帳戶中設置了第二個 VPC。似乎是一個限制,您只能將其他範圍添加到具有相同前綴(10、172、192)的 VPC。
VPC 2 的路由表中有一條路由通過 IPSEC VPN 主機的內部介面 (eni) 發送 200.0.0.0/24 的所有流量。
從 10.0.0.6 到 200.0.0.100 的 VPN 連接有效。
VPC 1 和 2 是對等的,並且已經進行了路由和 SG 更改,使得 172.20.0.0/16 中的所有機器都可以連接到 10.0.0.0/28 中的所有主機(所有流量,而不是特定的 UDP/TCP/ICMP 規則)。所以 172.20.0.100 可以連接到 10.0.0.6。
有什麼辦法可以這樣設置:
- 從 VPC 1 到 200.0.0.0/24 的所有流量都通過 VPN 主機上的內部 NIC 路由
- 從 VPC 2 到 200.0.0.0/24 的所有流量都通過 10.0.0.6 主機上的內部 NIC 路由,因此可以對其進行 NAT 處理?
提前致謝 !
你有一個有趣的場景。我將介紹五種方法來支持兩個網路之間的另一個網路的路由。
你問了兩個問題:
有什麼辦法可以這樣設置:
從 VPC 1 到 200.0.0.0/24 的所有流量都通過 VPN 主機上的內部 NIC 路由。
從 VPC 2 到 200.0.0.0/24 的所有流量都通過 10.0.0.6 主機上的內部 NIC 路由,以便可以進行 NAT 處理?
1)對於Q1,你的VPN主機是支持添加路由條目的路由器嗎?如果是這樣,那麼也許(參見方法 3 的底部評論)。如果否,請查看方法 3 或方法 4。
- 對於 Q2,查看方法 4 在該實例上配置代理伺服器。但是,不要將該實例用於其他任何事情,而只是代理服務。大小和類型將取決於您需要路由多少流量。
但是,如果您的供應商只允許來自 10.0.0.0/28 的源地址,那麼方法 4(代理伺服器)可能是唯一的解決方案。
現在介紹各種方法。根據您的要求,並非所有都可以接受。我列出所有這些以防萬一您可以修改您的環境。
方法 1:最簡單的解決方案是讓您的供應商允許從 VPC 1 到他們的數據中心的 VPN 並允許 172.200.0.0/24。您可以通過創建子網 172.200.X.0/28(僅允許 11 個主機)將其縮小到 /28
方法 2:將您的資源從 VPC 1 移動到 VPC 2。同樣的子網限制適用。
方法 3:在 VPC 2 中,您需要配置一個執行路由軟體 (R1) 的實例。此實例需要 /28 子網內的地址。然後,您從 VPC 1 在路由表中創建一個條目,用於將流向 200.0.0/24 的流量發送到 R1。供應商路由表中需要有一個類似的條目,以將 172.20.0.0/16 的流量發送到 R1。兩個網路(VPC 1 和供應商)都需要 10.0.0.0/28 的路由。您也許可以在您的 IPsec VPN 主機上配置路由(這是執行 VPN 軟體或 VGW 的實例嗎?)。注意:您的供應商必須允許您的 172.20.0.0/16 地址(或子網)進入他們的網路,因為這將是源 IP 地址,而不是 10.xxx
方法 4:在 VPC 2 中設置代理伺服器並將流量路由到代理伺服器。這意味著流量源自一個方向 VPC 1 -> Vendor(或反向設置)。供應商將無法向 VPC 1 發起流量。您可以在代理伺服器上進行埠映射以支持供應商 -> VPC 1。但是,通過埠映射,您將無法映射所有地址的所有埠(僅您配置的那些)。
$$ EDIT with METHOD 5 $$ 如果 VPC2 中的 VPN 主機是 AWS 虛擬網關 (VGW),那麼您可以設置到 VPC 1 的路由(多個 VPC 可以使用同一個 VGW)。這可能是最簡單的解決方案。