网关服务器iptables的SNAT与DNAT地址转换

SNAT(Source Network Address Translation 源地址转换)是Linux防火墙的一种地址转换操作,也是iptables命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的源IP地址。
DNAT(Destination Network Address Translation 目标地址转换)是Linux防火墙的另一种地址转换操作,同样也是iptables命令中的一种数据包控制类型,其作用是可以根据指定条件修改数据包的目标IP地址和目标端口。

实验描述

需求分析:

  • DNSserver搭建分离解析;
  • 内网解析www.yun.com为192.168.100.88;
  • 外网解析www.yun.com为12.0.0.1;
  • 利用SNAT和DNAT实现网址转换成eth1端口IP;
  • 使得内外网pc机均可使用www.yun.com域名访问;

实验环境:

  • DNSserver采用DNS分离解析;
  • 内网WEB服务器提供Apache网站服务;
  • Apache版本2.2;
  • Linux系统版本Redhat6.5;

实验部署

1、搭建DNS分离解析

为DNSserver搭建分离解析服务,并设置解析域名为"www.yun.com"详细过程可参见DNS分离解析服务
设定eth0为内网网卡,eth1为外网网卡。

2、iptables防火墙规则设置

搭建完成DNS分离解析,为了使服务器启动路由转发功能:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1    //设置为1,开启路由转发功能

sysctl -p // 刷新sysctl.conf文件,使修改立即生效

①SNAT实现内网访问外网地址转换成eth1地址

iptables -F //清空防火墙默认规则
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth1 -j SNAT --to-source 12.0.0.1
//将内网pc机访问外网时IP均变为 12.0.0.1

②DNAT实现外网访问内网地址转换成eth1地址

iptables -t nat -A PREROUTING -i eht1 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.88
//让外网pc访问外网网卡eth1即可转发到内网web服务器上。

此处列举外网pc机配置和访问情况:
网关服务器iptables的SNAT与DNAT地址转换