首先说明SNAT和DNAT都大体至关于网络中的NAT和PAT协议,本实验是经过用一台linxu虚拟机来模拟内网网关,而且利用linux上的iptables防火墙策略,达到地址转换和端口映射的目的。linux
SNAT服务器
实验结构:网络
真机----------------(v1)网关服务器s1(v2)--------------(v2)外网服务器s2tcp
开2台虚拟机linux,分别模拟s1和s2。ide
其中,s1上另增长一块网卡,使用vmnet1与真机相连。测试
使用vmnet2与外网服务器的s2的vmnet2相连。spa
IP地址规划blog
真机:接口
vmnet1:192.168.80.5/24ip
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。
实验结束。