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上的服务了