Amazon-Ec2
通過 VPN 訪問 EC2 AmazonProvidedDNS 伺服器時遇到問題
我有一個使用網路的 VPC
10.10.0.0/16
和公共子網 (10.10.0.0/24
) 中的 VPN 伺服器。VPN 使用10.11.254.0/24
範圍內的地址。10.10.1.0/24
當我連接到 VPN 時,我可以訪問公共子網和私有子網(我已禁用 VPN 伺服器上的源/目標檢查(這也是訪問網路中其他主機所必需的)。AmazonProvidedDNS 伺服器似乎在 VPC 內正常工作;我可以
dig @10.10.0.2 ip-10-10-1-215.ec2.internal
從 VPC 中的主機執行,並且得到預期的響應。
dig
但是,如果我從連接到 VPN 的可能筆記型電腦上執行相同的命令,我沒有得到任何響應。通過在 vpn 伺服器上執行 tcpdump,我看到
A?
來自我的 VPN 地址的數據包,轉到10.10.0.2
,但我沒有看到任何響應返回。我需要做些什麼來使 DNS 伺服器能夠回答來自 VPC 地址範圍之外的請求嗎?
這聽起來像是不尋常的方法,但鑑於他們實施的內部/外部拆分解析度魔法,我可以理解為什麼它是有道理的(現在我考慮了一下)。
EC2 DNS 解析器不太可能回答來自外部 IP 地址的請求,但應該有一個簡單的解決方法。
例如,如果您在 vpn 上的 IP 地址是 192.168.2.*,那麼,在 VPC 中的 vpn 伺服器上…
$ sudo iptables --table nat -A POSTROUTING -s 192.168.2.0/24 -d 10.10.0.2/32 -j MASQUERADE
這會在網路地址轉換錶中添加一條規則,以便在對從指定源塊到指定目標塊的數據包做出路由決策後,它不會像往常一樣僅轉發數據包,而是會剝離您的 IP 並添加自己的IP 作為源地址,它會記住請求。當響應返回時,地址是 vpn 伺服器的 IP,它會再次重寫地址(目的地,這次是您的地址)並將響應發送回給您。
那應該完成你想要的。