美文网首页
iptables之SNAT源地址修改及DNAT目标地址修改和PN

iptables之SNAT源地址修改及DNAT目标地址修改和PN

作者: 任总 | 来源:发表于2018-07-06 21:49 被阅读530次

一、SNAT源地址目标转换

  • SNAT是source network address translation的缩写,即源地址目标转换。
    比如,多个PC机使用路由器共享上网,每个PC机都配置了内网IP,PC机访问外部网络的时候,路由器将数据包的报头中的源地址替换成路由器的ip,当外部网络的服务器比如网站web服务器接到访问请求的时候,他的日志记录下来的是路由器的ip地址,而不是pc机的内网ip;
    这是因为,这个服务器收到的数据包的报头里边的“源地址”,已经被替换了所以叫做SNAT,基于源地址的地址转换。


    image.png

转发服务器配置两个网卡:

[root@C712 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.12  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe98:db29  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:98:db:29  txqueuelen 1000  (Ethernet)
        RX packets 1971  bytes 166047 (162.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1058  bytes 138536 (135.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.0.254  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::16af:21ee:d7fc:4145  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:98:db:33  txqueuelen 1000  (Ethernet)
        RX packets 692  bytes 44348 (43.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 32  bytes 2664 (2.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

在转发服务器启用iptables并设置SNAT地址转换,使得172.16.0.0/16网段能够正常访问互联网:

#首先启用IP转发功能
[root@C712 ~]# sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
#重启firewalld服务,把iptables恢复默认配置
[root@C712 ~]# systemctl restart firewalld
#添加SNAT规则
[root@C712 ~]# iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o ens33 -j SNAT --to-source 192.168.1.12
另外还可以使用MASQUERADE处理动作来实现SNAT地址转换,此动作适用于动态IP环境:

[root@C712 ~]# systemctl restart firewalld
[root@C712 ~]# iptables -F         
[root@C712 ~]# iptables -t nat -F #清除规则
[root@C712 ~]# iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j MASQUERADE

二、DNAT目标网络地址转换

DNAT是destination network address translation的缩写,即目标网络地址转换。
典型的应用是,有个web服务器放在内网配置内网ip,前端有个防火墙配置公网ip,互联网上的访问者使用公网ip来访问这个网站当访问的时候,客户端发出一个数据包,这个数据包的报头里边,目标地址写的是防火墙的公网ip,防火墙会把这个数据包的报头改写一次,将目标地址改写成web服务器的内网ip,然后再把这个数据包发送到内网的web服务器上,这样,数据包就穿透了防火墙,并从公网ip变成了一个对内网地址的访问了,即DNAT,基于目标的网络地址转换。

image.png
[root@C712 ~]# systemctl restart firewalld
[root@C712 ~]# iptables -F         
[root@C712 ~]# iptables -t nat -F #清除规则
iptables -t nat A PREROUING -d 172.16.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.11#内网地址为11,外网地址为254,客户可以访问80端口
[root@C712 ~]# systemctl restart firewalld

三、PNAT端口修改

image.png

REDIRECT:端口映射

iptables -A PREROUTING -t nat -d 192.168.1.11 -p tcp --dport 80 -j REDIRECT --to-ports8080   #80端口映射到8080端口

相关文章

  • iptables之SNAT源地址修改及DNAT目标地址修改和PN

    一、SNAT源地址目标转换 SNAT是source network address translation的缩写,...

  • iptables之SNAT源地址修改及DNAT目标地址修改和PN

    iptables之nat功能 一台网关主机用上net的主要目的是要隐藏网关内网中的主机。如果一个网关设备不开启ne...

  • iptables之SNAT与DNAT

    iptables之SNAT与DNAT

  • SNAT和DNAT

    1、SNAT SNAT,源地址转换,其作用是将ip数据包的源地址转换成另外一个地址。 名词解释: SNAT,可能有...

  • LVS nat模式和dr模式

    nat模式: 本质是多目标IP的DNAT模式,就是通过修改目标IP来实现调度,通过将请求报文中的目标地址和目标端口...

  • LVS-NAT

    lvs-nat lvs-nat本质是多目标IP的DNAT,通过将请求报文中的目标地址 和目标端口修改为某挑出的RS...

  • snat和dnat

    snat和dnat怎么理解,发现不同的文章都解释了一遍,角度都不一样,很难深入。通过各个文章综合来看,应该从场景概...

  • npm查看源、换源

    npm查看当前源地址 或者使用 修改当前源地址为淘宝源地址 恢复默认源地址 注:据说将默认源地址https协议改为...

  • SNAT 和 DNAT 的区别:

    从定义上讲,SNAT是原地址转换,DNAT是目标地址转换。区分这两个功能可以简单的由服务的发起者是谁来区分,内部地...

  • git源地址修改

    一、修改命令 git remote set-url origin url 二、先删后加 git remote rm...

网友评论

      本文标题:iptables之SNAT源地址修改及DNAT目标地址修改和PN

      本文链接:https://www.haomeiwen.com/subject/kizeuftx.html