NAT原理总结iptables实现SNAT和DNAT。

Posted 江神神神神

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NAT原理总结iptables实现SNAT和DNAT。相关的知识,希望对你有一定的参考价值。

1、NAT原理

NAT:network address translation ,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链
请求报文:修改源/目标IP,由定义如何修改
响应报文:修改源/目标IP,根据跟踪机制自动实现
NAT的实现分为下面类型:

  • SNAT:source NAT ,支持POSTROUTING, INPUT,让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装,请求报文:修改源IP
  • DNAT:destination NAT 支持PREROUTING , OUTPUT,把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP,请求报文:修改目标IP

    2、SNAT实现范例

    环境准备(最少三台机子,一个做内网,一个做防火网,一个做外网)
    10.0.0.146                    内网client的IP
    10.0.0.147、172.16.0.6        外网IP对172网段、内网IP对10网段
    172.16.0.7                    外网服务端IP
    在firewalld上面开启路由转发功能,还要把网卡的网关指向firewalld主机
    [root@DNS ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
    GATEWAY=10.0.0.147  
    [root@DNS ~]#nmcli connection reload 
    [root@DNS ~]#nmcli connection up eth0
    [root@web2 ~]#hostname -I
    10.0.0.147 172.16.0.6 
    [root@web2 ~]#vim /etc/sysctl.conf
    net.ipv4.ip_forward=1 
    [root@web2 ~]#sysctl -p
    net.ipv4.ip_forward = 1
    [root@web2 ~]#iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 172.16.0.6


    IP走向

    10.0.0.146 ——》( 10.0.0.147 ——》 172.16.0.6 )——》 172.16.0.7

    3、DNAT实现范例

    环境准备
    10.0.0.146                  client
    10.0.0.147、172.16.0.6      firewalld
    172.16.0.7                  web_server            
firewalld配置
[root@web2 ~]#vim /etc/sysctl.conf
net.ipv4.ip_forward=1 
[root@web2 ~]#sysctl -p
net.ipv4.ip_forward = 1

client配置
[root@DNS ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 
GATEWAY=10.0.0.147 
web-server配置


测试

IP走向
10.0.0.146 ——》( 10.0.0.147 ——》 172.16.0.6 )——》 172.16.0.7

以上是关于NAT原理总结iptables实现SNAT和DNAT。的主要内容,如果未能解决你的问题,请参考以下文章

iptables网络防火墙和SNAT原理实战

linux基础之iptables SNAT和DNAT

iptables实现SNAT和DNAT,并对规则持久保存

dnat,snat

Linux-SNAT和DNAT

iptables 垫脚石之 NAT DNAT SNAT 代理 深度理解