SNAT: 源地址转换,作用是将ip数据包的一个地址变成另外一个地址; 

A: 192.168.100.100          eth0       用户

B: 192.168.100.1           eth0

 192.168.200.200           eth1       防火墙

C:  192.168.200.100          eth0       web容器

A------------------->C

A--------->B

      B------->C

A用户,访问C上的网站,SNAT转化过程,A 首先访问的是B,也就是防火情的192.168.100.1;然后,再通过防火墙的192.168.200.200访问C网站;

配置过程如下:

1)A:配置eth0网关:192.168.100.1

2)B:  配置eth1网关: 192.168.200.1

注:suse下配置网卡的网关:route add  – net 192.168.200.200 netmask 255.255.255.0 gw 192.168.200.1 dev eth1

首先,B要开通路由转发:

grep forward /etc/sysctl.conf |grep -v ^#

net.ipv4.ip_forward = 1

其次,配置防火墙,将A访问C转发为B访问C,

即:    192.168.100.100----------------------------------------------->192.168.200.100

过程:192.168.100.100------------->192.168.200.200

                                                                192.168.200.200----------->192.168.200.100

iptables的路由规则:

-A POSTROUTING -s 192.168.100.100 -o eht0 -j SNAT --to-source 192.168.200.200

到这里,DNAT是设置完了;接下来是测试了

重启防火墙,或者重新加载防火墙的配置文件: /etc/init.d/iptables reload

然后,抓包,看访问过程

tcpdump -i any port 80 -s 0 -w 保存的包名

DNAT:将一组本地内部地址映射到一组全球内部地址;

A: 192.168.100.100           eth0       用户

B: 192.168.100.1            eth0

 192.168.200.200             eth1       防火墙

C: 192.168.200.100            eth0       web容器

A------------------->B

A--------->B

      B------->C

A用户,访问B,SNAT转化过程,A 访问的B,也就是防火情的192.168.100.1;实际上访问过程是,A 访问的B,也就是防火情的192.168.100.1,后,防火墙B再通过192.168.200.200访问192.168.200.100 C的web容器;

配置过程如下:

1)C:配置eth0网关:192.168.200.1

2)B:  配置

eth0网关: 192.168.100.1

eth1网关: 192.168.200.1

注:suse下配置网卡的网关:route add  – net 192.168.200.200 netmask 255.255.255.0 gw 192.168.200.1 dev eth1

首先,B要开通路由转发:

grep forward /etc/sysctl.conf |grep -v ^#

net.ipv4.ip_forward = 1

其次,配置防火墙,将A访问C转发为B访问C,

iptables -t nat -A     PREROUTING -d 192.168.100.1 -p tcp -m tcp --deport 80 -i eth0 -j DNAT --todestionation 192.168.200.100

重启防火墙,或者重新加载防火墙的配置文件: /etc/init.d/iptables reload

然后,抓包,看访问过程

tcpdump -i any port 80 -s 0 -w 保存的包名