·SNAT(源地址转换):是Linux防火墙的一种地址转换操做,也是iptables命令中的一种数据包控制类型,其做用是根据指定调教修改数据包的源IP地址html
内部地址要访问公网上的服务时(如web访问),内部地址会主动发起链接,由路由器或者防火墙上的网关对内部地址作个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部。linux
·SNAT策略只能用在nat表的POSTROUTING链,使用iptables命令编写SNAT策略时,须要结合‘--to-source IP’选项来指定修改后的源IP地址web
·DNAT(目标地址址转换):是Linux防火墙的另外一种地址转换操做,一样也是iptables命令中的数据包控制类型,其做用是—根据指定条件修改数据包的目标IP地址和目标端口vim
当内部须要提供对外服务时(如对外发布web网站),外部地址发起主动链接,由路由器或者防火墙上的网关接收这个链接,而后将链接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的链接,而后在内部作地址转换,此转换称为DNAT,主要用于内部服务对外发布。服务器
·DNAT策略只能用在nat表的PREROUTING链,使用使用iptables命令编写DNAT策略时,须要结合‘--to-destination IP地址’选项来指定内部服务器的IP地址网站
·SNAT策略只能用在nat表的POSTROUTING链;3d
·SNAT将内部地址的私有IP转换为公网的公有IP;日志
·SNAT用于内部共享IP访问外部。htm
·DNAT策略只能用在nat表的PREROUTING链;blog
·DNAT主要用于内部服务对外发布;
|
IP 地址 |
用途 |
Win 7 |
192.168.100.40 |
充当内网web服务器 |
Linux
(CentOS7) |
ens33:192.168.100.1
ens36:12.0.0.1 |
充当防火墙 ens33:看成内网网关 ens36:看成外网网关 |
Linux (RedHat6) |
12.0.0.12 |
充当外网服务器(httpd) |
SNAT+DNAT策略开始
·由于Linux(CentOS7)做为防火墙网关,须要添加一块网卡,并对其进行IP配置!以上表格已注明IP地址和做用
·win7做为内网服务器,了为以后的验证,为它创建一个网站服务,可让外网访问此网站:
·Linux(RedHat6)做为外网服务器,一样也安装httpd服务。而且修改IP地址为:12.0.0.12 网关为:12.0.0.1
执行如下命令:
yum install httpd -y //安装httpd服务
service httpd start //启动httpd服务
service iptables stop //关闭防火墙
setenforce 0 //关闭selinux
·Linux(CentOS7)从当防火墙,把iptables的全部规则删除包括nat表里的规则:
·对于Linux服务器,IP转发是实现路由功能的关键所在,若要Linux主机做为网关设备,就必须开启路由功能,修改配置文件:vim /etc/sysctl.conf
在执行命令:sysctl -p //读取修改后的配置
·内网win7须要访问外网RedHat6的httpd服务,那么就须要作SNAT策略,由下图说明命令所表明含义:
·如今外网RedHat6须要访问内网win7的web服务,那么就须要作DNAT策略,由下图说明命令所表明含义:
内网访问外网:
查看httpd的日志文件,能够看到是哪一个IP 访问httpd:
实验成功。
总结:
·在配置防火墙或者路由acl策略时要注意这两个NAT必定不能混淆。
·注意内网和外网的网卡名称,在配置时不要混淆
·DNAT策略只能用在nat表的PREROUTING链
·SNAT策略只能用在nat表的POSTROUTING链