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. python数据处理pdf百度云_Python数据处理 PDF 高清版
  2. python数据分析常见面试题_python数据分析方向,面试题解答
  3. python自动测试n_接口自动化:Jenkins 自动构建python+nose测试
  4. 物联网未来发展的十大趋势
  5. 数据处理工具(一)——Matplotlib
  6. Proguard使用最新,最全教程,亲自试验
  7. Android 系统(219)---Android O上networkAttributes的说明
  8. 湖南计算机对口专科学校,湖南计算机专业对口升学有哪些学校?
  9. 解决vscode卡顿,CPU占用过高的问题
  10. 电脑太慢了最简单的办法怎么弄_最简单快速的方法恢复电脑误删文件-数据恢复常见问题...
  11. Mac下常用快捷键(转)
  12. 异步编程不会?我教你啊!CompletableFuture(JDK1.8)
  13. Omega network
  14. Excel:INDEX函数与MATCH函数
  15. 【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF
  16. Github连接不上问题
  17. windows 7 浏览器无法进网站,提示安全证书存在问题(GlobalSign)
  18. 高新技术企业认证自助申请教程
  19. Liveness和Readiness两种Health Check手段在Kubernetes中的使用
  20. easyui datagrid单独修改某列的值

热门文章

  1. 开会的五有五不四框架
  2. java虚拟内存不足
  3. 圣诞节苹果服务器没有人维护2020,2020圣诞节真的推迟到1月8号吗
  4. 微信小程序 java民宿客房预订系统springboot
  5. 艾草减肚子方法非常有效 赛乐赛骗局是真的吗
  6. 89C51最小系统典型应用
  7. ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色
  8. 卸载手机自带的系统软件
  9. 转载:中国经济酷似日泡沫时代:股市上涨和楼价疯涨
  10. 检查php语法错误,PHP检查语法错误技巧