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

DNAT方面的配置可以參考命令:

iptables -t nat -I PREROUTING -d 172.31.66.212 -p tcp --dport 65530 -j DNAT --to 172.31.129.86:8440

這個是實現把有公網的服務器的65530端口映射到無公網的8440端口上。

iptables -t nat -I POSTROUTING -p tcp --dport 8440 -j MASQUERADE

這個是爲了,轉發到後面服務器的8440端口的返回數據包可以再通過有公網的服務器出去

路由命令查詢廣播地址:

route -n

這個172.31.128.0就是這個無公網服務器的廣播地址

SNAT方面的配置可以參考命令:

iptables -t nat -I POSTROUTING -s 172.31.128.0/20 -j SNAT --to-source 172.31.66.212

dnat配置在有公網的服務器上即可,snat配置一次就好了; 172.31.128.0/20 這個是無公網服務器的交換機網段,172.31.66.212是有EIP服務器的內網ip

iptables-save  > /etc/sysconfig/iptables

這個是將規則鏈永久保存

 

下面是一些簡單的操作案例:

問題:1個阿里雲彈性公網ip,2臺同內網段雲服務器,公網ip綁定在其中一臺上,使其內網服務器能使用外網

阿里雲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

或者:

echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf

生效路由轉發:

sysctl –p

3.iptables添加SNAT轉換

172.31.129.86是內網網段,172.31.66.212是綁定了EIP的這臺機器的內網IP

iptables -t nat -I POSTROUTING -s 172.31.129.86/20 -j SNAT --to-source 172.31.66.212

4.添加VPC路由

5.測試是否可以訪問了

這個是沒綁公網ip的那臺服務器

 

問題二:現在沒公網服務器已經運行了服務,但是外網訪問不了內網服務器上的服務,這邊需要對內網服務器進行端口映射

阿里雲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

或者:

echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf

生效路由轉發:

sysctl –p

 3.iptables 添加DNAT轉換

47.52.229.239  是我這邊的彈性公網ip 

我將綁定了公網IP服務器 的8335 端口都映射到了內網IP的80端口:

iptables -t nat -A PREROUTING -d 47.52.229.239 -p tcp --dport 8335 -j DNAT --to-destination 172.31.129.86:80

4.測試是否可以訪問了

win + R  打開windows 的運行界面輸入cmd進入管理員界面

tnlnet 47.52.229.239 8335

會顯示連接成功

下面的命令可以進行查看你配置的規則鏈:

iptables -t nat -L -n

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章