做Double NAT的一种可行方法

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

当两个子网通过NAT网关相连,而且子网与子网又有ip重叠的话,你该怎么办呢?Double NAT可以解决这个问题,但记住这个方法是Hacker-Style的——怪异却工作的方法。

看如下的情形:Network 1

192.168.150.0 (Corporate)

--------------/-------------------------

Network 2

192.168.150.0 (Untrusted Network)

怎么连接这两个子网呢?注意到,他们的网段是重叠的。

首先,从两网段各抽出一台机器做NAT网关,情形如下:Network 1

192.168.150.0 (Corp)

|

Network 2 |

192.168.180.0 (Intermediate)

|

NAT BOX 1 |

eth0 192.168.180.180

eth1 10.15.15.1

|

NAT BOX 2 |

eth0 10.15.15.2

eth1 192.168.150.252

|

Newtwork 3 |

192.168.150.0 (Untrusted Network)

现在开始配置。

在NAT BOX 1, 给eth0建立三个别名.

ifconfig eth0:0 192.168.180.181 netmask 255.255.255.0

ifconfig eth0:1 192.168.180.182 netmask 255.255.255.0

ifconfig eth0:2 192.168.180.183 netmask 255.255.255.0

NAT BOX 2也是。

ifconfig eth0:0 10.15.15.181 netmask 255.255.255.0

ifconfig eth0:1 10.15.15.182 netmask 255.255.255.0

ifconfig eth0:2 10.15.15.183 netmask 255.255.255.0

接下来给出iptables的,你一看应该就会明白了:

在NAT BOX 1給eth0做三个DNAT:

iptables -t nat -A PREROUTING -d 192.168.180.181 -i eth0 -j DNAT --to-destination 10.15.15.181

iptables -t nat -A PREROUTING -d 192.168.181.182 -i eth0 -j DNAT --to-destination 10.15.15.182

iptables -t nat -A PREROUTING -d 192.168.181.183 -i eth0 -j DNAT --to-destination 10.15.15.183

还有一个SNAT:

iptables -A POSTROUTING -s 192.168.150.0/255.255.255.0 -d 10.15.15.0/255.255.255.0 -j SNAT -o eth1 --to-source 10.15.15.1

网段2也类似

iptables -t nat -A PREROUTING -d 10.15.15.181 -i eth0 -j DNAT --to-destination 192.168.150.10

iptables -t nat -A PREROUTING -d 10.15.15.182 -i eth0 -j DNAT --to-destination 192.168.150.11

iptables -t nat -A PREROUTING -d 10.15.15.183 -i eth0 -j DNAT --to-destination 192.168.150.12

iptables -A POSTROUTING -s 10.15.15.0/24 -d 192.168.150.0/24 -j SNAT -o eth1 --to-source 192.168.150.252

好了,现在目的是达到了,但缺点很明显的——维护起来太麻烦了。呵呵,我说过的这是Haker-Style的解决办法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航