SNAT, DNAT, MASQUERADE都是NAT

MASQUERADE是SNAT的一个特例

DNAT,就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

因为,路由是按照目的地址来选择的,因此,DNAT是在PREROUTING链上来进行的,而SNAT是在数据包发送出去的时候才进行,因此是在POSTROUTING链上进行的

SNAT是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机

MASQUERADE是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用MASQUERADE

将服务通过NAT转换暴露在公网后,内网不能通过公网地址进行访问,这时就需要配置MASQUERADE


    MASQUERADE,地址伪装,算是snat中的一种特例,可以实现自动化的snat。

在iptables中有着和SNAT相近的效果,但也有一些区别,但使用SNAT的时候,出口ip的地址范围可以是一个,也可以是多个,例如:

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去,

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source192.168.5.3

如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source192.168.5.3-192.168.5.5

这就是SNAT的使用方法,即可以NAT成一个地址,也可以NAT成多个地址,但是,对于SNAT,不管是几个地址,必须明确的指定要SNAT的ip,假如当前系统用的是ADSL动态拨号方式,那么每次拨号,出口ip192.168.5.3都会改变,而且改变的幅度很大,不一定是192.168.5.3到192.168.5.5范围内的地址,这个时候如果按照现在的方式来配置iptables就会出现问题了,因为每次拨号后,服务器地址都会变化,而iptables规则内的ip是不会随着自动变化的,每次地址变化后都必须手工修改一次iptables,把规则里边的固定ip改成新的ip,这样是非常不好用的。

MASQUERADE就是针对这种场景而设计的,他的作用是,从服务器的网卡上,自动获取当前ip地址来做NAT。

比如下边的命令:

iptables-t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j MASQUERADE

如此配置的话,不用指定SNAT的目标ip了,不管现在eth0的出口获得了怎样的动态ip,MASQUERADE会自动读取eth0现在的ip地址然后做SNAT出去,这样就实现了很好的动态SNAT地址转换。

#RouterOS NAT配置

DNAT:

IP --> Firewall --> NAT --> Add New -->

Enabled True
Chain dstnat
Dst. Address 182.40.111.37
Dst. Port 8080
Action   dst-nat
To Addresses 192.168.19.121
To Ports 8080

--> Apply

MASQUERADE:

IP --> Firewall --> NAT --> Add New -->

General:
Enabled True
Chain srcnat
Src. Address 192.168.0.0/16
Protocol tcp
Action:
masquerade

--> Apply

SNAT、DNAT、MASQUERADE的区别相关推荐

  1. iptables中SNAT, DNAT, MASQUERADE

    文章出处:http://server.zdnet.com.cn/server/2008/0317/772069.shtml iptables中可以灵活的做各种网络地址转换(NAT) 网络地址转换主要有 ...

  2. Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)

    文章目录 Firewalld,iptables概述 Firewalld了解 iptables了解 Firewalld和iptables的关系 netfilter Firewalld.iptables ...

  3. NAT转换技术(SNAT、MASQUERADE、DNAT策略)及代理服务(squid服务)

    NAT地址转换技术 一.NAT网络拓扑图 二.实验环境 本次实验均是在 RHEL6.5 虚拟机上进行的. WEB-内网(Client)IP地址:192.168.10.150 (VMnet1) 网关   ...

  4. iptables详解和snat dnat

    一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙 ...

  5. 基于iptables的SNAT+DNAT+docker服务器集群搭建

    什么是SNAT? SNAT用于局域网访问互联网,局域网的主机A想访问互联网上的主机C,首先要将数据包发送到防火墙所在的主机B,B收到后修改数据包的源地址为B机的公网IP,然后再发送到互联网. C机收到 ...

  6. iptables中DNAT、SNAT和MASQUERADE的理解

    IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT SNAT是source network address translation的缩写,即源地址目标 ...

  7. SNAT,DNAT区别

    从定义来讲它们一个是源地址转换,一个是目标地址转换.都是地址转换的功能,将私有地址转换为公网地址. 要区分这两个功能可以简单的由连接发起者是谁来区分: SNAT:内部地址要访问公网上的服务时(如web ...

  8. iptables总结--理解四表五链/snat/dnat/redirect/synproxy/性能

    1. iptables四表五链 四表五链: 链就是位置:共有五个 进路由(PREROUTING).进系统(INPUT) .转发(FORWARD).出系统(OUTPUT).出路由(POSTROUTING ...

  9. NAT网关(SNAT,DNAT)

    SNAT,是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址. SNAT,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主 ...

  10. SNAT DNAT

    #SNAT 场景:云上的vm主机用户作为客户端访问外网服务器 vm(client)->SNAT(将数据包中的内网源IP转换为外网IP)->Internet(服务器)->SNAT(将数 ...

最新文章

  1. 【MATLAB】数据分析之多项式及其函数
  2. 美国要求台积电、三星45天内主动交出商业数据,不配合将采取必要行动
  3. 从编程基础到系统设计,这份数据工程师面试宝典全都有 | 资源
  4. 音视频技术开发周刊 60期
  5. Qt工作笔记-QMenu::exec中使用QWidget::mapToGlobal()与QCursor::pos()之间的些许差异
  6. Java、Javascript、Javaweb三者的区别
  7. javax.servlet.http.HttpServletResponse接口(HTTP版本)
  8. SSH2-Spring Framework2 struts2 hibernate
  9. 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建
  10. 了解Java的反射机制
  11. 软件测试面试-为什么选择软件测试?
  12. 【漏洞复现-maccms-命令执行】vulfocus/maccms-cve_2017_17733
  13. 2016年11月前端面试题整理汇总
  14. 生物化学 电阻抗成像OpenEIT,Dbar算法,数据集等(暂记)
  15. 开源引路人:我的Apache Mentor之路
  16. python 递增递减数列
  17. 高清视频软件bandicam的破解方法
  18. 计算机数据恢复专业,易我数据恢复Mac版|mac专业计算机数据恢复软件
  19. ubuntu18.04安装谷歌浏览器
  20. java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》

热门文章

  1. 移植waland/weston 到AM335X 在运行的时候运行不成功分析
  2. 七年切图仔如何面试大厂web前端?(沟通软技能总结)
  3. U盘启动盘cmd制作
  4. 13个有意思的网站,你一定要看
  5. 个股分析|巴菲特炒银行股的5个原因
  6. 免费下载的音乐的6个网站,非常实用!
  7. Matlab二元函数图像绘制
  8. Python处理二进制流(一)
  9. 基于计算机显卡的研究
  10. 方维短信接口常见的问题汇总