1:用于做企业路由(zebra)或网关(iptables),共享上网(POSTROUTING)
2:做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务器(PREROUTING)
3:web,单个端口映射,直接映射80端口(PREROUTING)
nat表: 负责网络地址转换,即来源与目的IP地址和port的转换。与主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关。nat表定义了三个链(chains),nat功能就相当于网络的acl控制,和网络交换机acl类似
-
OUTPUT
:和主机发出去的数据包有关,改变主机发出数据包的目标地址 -
PREROUTING
:在数据包到达防火墙时进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口等 -
POSTROUTING
:在数据包离开防火墙时进行路由判断之后执行的规则,作用是改变数据包的源地址、源端口等 生产应用:局域网共享上网
nat表规则配置:
分类 | 功能 | 作用链 | 参数 |
SNAT | 源地址转换 | 出口POSTROUTING |
|
DNAT | 目标地址转换 | 进口PREROUTING |
|
iptables实践场景
场景一: SNAT,局域网内部机器10.10.177.233访问外网Web Server 10.10.188.173,需要在 Nat Server上做源地址转换(局域网共享上网)
配置:
开启内核转发:net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -s 10.10.177.0/24 -j SNAT --to-source 10.10.188.232
场景二: DNAT,外部机器10.10.188.173访问内网Http Server 10.10.177.233,需要在 Nat Server上做目标地址转换(端口映射)
配置:
iptables -t nat -A PREROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to-destination 10.10.177.233:80
部署企业级IDC机房上网网关
服务器网关需要具备如下条件:
1、物理条件是具备双网卡,建议eth0外网地址(这里是10.0.0.19,gw10.0.0.254),eth1内网地址(192.168.1.19,内网卡不配gw)
2、内核文件/etc/sysctl.conf里开启转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward(临时)
net.ipv4.ip_forward = 1
sysctl -p
3、iptables的filter表的FORWARD链允许转发
iptables -P FORWARD ACCEPT
4、最好先停掉防火墙
5、加载iptables内核模块
配置网关需要iptables的nat表,PREROUTING,POSTROUTING
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
6、局域网内机器默认网关设置为eth1内网卡的IP(192.168.1.19)
配置:(网关服务器上配置)
1)适合有固定外网地址的:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.19
2)适合变化的外网地址(ADSL)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
把外部IP地址及端口映射到内部服务器地址及端口配置如下:
iptables -t nat -A PREROUTING -d 10.0.0.19 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.20:8080