Q: 如何通過DNAT和SNAT的設置,令內網的機器能訪問外網,并能被外網訪問
A: 對于這個需求,需要有一個作為網關機器,這臺機器有外網的網絡接口,可以用這個外網接口
添加新的外網IP地址并用這個地址作為內網機器對外的服務地址;在網關主機上需要作相應的
DNAT和SNAT轉換;網關主機有內網接口,這個內網接口的IP地址作為內網主機的缺省網關;
在內網主機上需要將缺省路由設置到網關主機的內網地址。
如下圖:
Client CIP: 10.70.109.154
|
|
Inte.net
|
|
| public Interface: eth0 IP 10.71.101.220/24
Gateway alias: eth0:0 IP 10.71.101.230/24
| private Interface: eth1 IP 172.17.0.1/24
|
|
InnerPC Interface: eth0 IP 172.17.0.10/24
GW: 172.17.0.1
在Gateway上需作的配置
# ifconfig eth0 10.71.101.220 netmask 255.255.255.0 broadcast 10.71.101.255
# ifconfig eth0:0 10.71.101.230 netmask 255.255.255.0 broadcast 10.71.101.255
# ifconfig eth1 172.17.0.1 netmask 255.255.255.0 broadcast 172.17.0.255
# iptables -t nat -F PREROUTING
# iptables -t nat -F POSTROUTING
# iptables -t nat -A PREROUTING -d 10.71.101.230 -j DNAT --to-destination 172.17.0.10
# iptables -t nat -A POSTROUTING -s 172.17.0.10 -j SNAT --to-source 10.71.101.230
在Inner PC上需要作的配置
# ifconfig eth0 172.17.0.10 netmask 255.255.255.0 broadcast 172.17.0.255
# route add default gw 172.17.0.1
這樣設置之后,Client(10.71.109.154)就可以通過10.71.101.230訪問Inner PC上的服務了