如何通過EIP實現VPC下的SNAT以及DNAT
場景一:有一個EIP,多台ECS,需要通過綁定EIP的機器讓其他機器上網
阿裏雲VPC配置SNAT
1,將EIP綁定到某台ECS上,然後測試通過eip登陸ssh,測試成功
2,開啟ip轉發功能,並使之生效
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl –p
3,iptables添加SNAT轉換
172.16.3.0是內網網段,3.2是綁定了EIP的這台機器的內網IP
iptables -t nat -I POSTROUTING -s 172.16.3.0/24 -j SNAT --to-source 172.16.3.2
EIP綁定在3.2那台上
關閉ip_forward再次測試
沒反應了
測試成功!
場景二:用戶需要將後端的服務映射出去
阿裏雲VPC配置DNAT
1, 將EIP綁定到某台ECS上,然後測試通過eip登陸ssh,測試成功
2,開啟ip轉發功能,並使之生效
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl –p
3,iptables 添加DNAT轉換
添加轉發規則 訪問80端口的請求轉給3.1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 172.16.3.1
(另一台機器的ECS IP)
使轉發數據包實現“雙向通路”,給數據包設置一個正確的返回通道:
iptables -t nat -I POSTROUTING -p tcp --dport 80 -j MASQUERADE
DNAT測試成功!
PS:目前阿裏雲已經推出了NAT網關,控製台點點就能用,詳見
https://www.aliyun.com/product/nat
最後更新:2017-06-29 09:02:38