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 保存的包名