首先说明SNAT和DNAT都大致相当于网络中的NAT和PAT协议,本实验是通过用一台linxu虚拟机来模拟内网网关,并且利用linux上的iptables防火墙策略,达到地址转换和端口映射的目的。
SNAT
实验结构:
真机----------------(v1)网关服务器s1(v2)--------------(v2)外网服务器s2
开2台虚拟机linux,分别模拟s1和s2。
其中,s1上另增加一块网卡,使用vmnet1与真机相连。
使用vmnet2与外网服务器的s2的vmnet2相连。
IP地址规划
真机:
vmnet1:192.168.80.5/24
s1:
vmnet1:192.168.80.20/24
vmnet2:192.168.90.1/24
s2:
vmnet2:192.168.90.22/24
实验步骤:
- 设置s1,s2的网卡参数
vi /etc/sysconfig/network-scripts/ifcfg-eth0
设置如下
继续设置另一块网卡的参数
首先ifconfig查看一下eth1的mac地址,然后
cd /etc/sysconfig/network-scripts/
复制模板
cp -p ifcfg-eth0 ifcfg-eth1
修改
vi ifcfg-eth1
设置如下
在s1上开启路由转发功能
vi /etc/sysctl.conf
设置s2的网卡参数
s2
vi /etc/sysconfig/network-scripts/ifcfg-eth1
关闭s2的防火墙
service iptables stop
将真机vmnet1的IP地址设置为192.168.80.5/24 ,网关设置为192.168.80.20
2.在s1上设置防火墙,使得s1可以做pat,将真机地址192.168.80.5转换为外网口
地址192.168.90.1
iptables –t nat –I POSTROUTING –s 192.168.80.0/24 –o eth1 –j SNAT --to
192.168.90.1
注释:-t 规则表 -I 规则链 -s 源地址 -o出站接口 -j 策略
测试结果,在真机上ping 192.168.90.22
是通的。
可以在s2上搭建一个ftp,来观察结果。
s2
service vsftpd start
然后在真机上登录 ftp
在s2上查看一下是谁在登录
s2
netstat –anpt
登录自己的主机地址为192.168.90.1 表明pat已经转换地址成功。
DNAT
实验结构:
真机(模拟外网)(v1)----------(vmnet1)网关服务器s1(vmnet2)---- -----(vmnet2)内网服务器s2
IP地址的规划依旧不变
在s1上做修改
s1
首先清空原来的防火墙配置
iptables –F
配置新的DNAT策略
iptables –t nat –A PREROUTING –i eth0 –d 192.168.80.20 –p tcp --dport 21 –j DNAT
--to 192.168.90.22
注释:-t 规则表 -A 规则链 -i 入站接口 -d 目标地址 –p协议 --dport 目标端口 -j 策略
测试,用真机ftp 192.168.90.22
成功登录
在s2上netstat -anpt
验证登录的为真机IP地址192.168.80.5。
实验结束。