閱讀351 返回首頁    go 阿裏雲 go 技術社區[雲棲]


如何通過EIP實現VPC下的SNAT以及DNAT

場景一:有一個EIP,多台ECS,需要通過綁定EIP的機器讓其他機器上網
阿裏雲VPC配置SNAT

1,將EIP綁定到某台ECS上,然後測試通過eip登陸ssh,測試成功
snat1

2,開啟ip轉發功能,並使之生效

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl –p

snat2

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

4,添加VPC路由
snat4
5,測試是否可以訪問了
snat51

EIP綁定在3.2那台上

snat52

關閉ip_forward再次測試

snat53

沒反應了

snat54

測試成功!

場景二:用戶需要將後端的服務映射出去

阿裏雲VPC配置DNAT

1, 將EIP綁定到某台ECS上,然後測試通過eip登陸ssh,測試成功
dnat1
2,開啟ip轉發功能,並使之生效

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl –p

dnat2
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

4,測試是否可以訪問了
dnat4

訪問自己
dnat42
訪問EIP
dnat43

DNAT測試成功!

PS:目前阿裏雲已經推出了NAT網關,控製台點點就能用,詳見
https://www.aliyun.com/product/nat

最後更新:2017-06-29 09:02:38

  上一篇:go  盤點各專業到古代都能幹些啥
  下一篇:go  DB2聯機移動表——admin_move_table