SNAT、DNAT、MASQUERADE的区别
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的区别相关推荐
- iptables中SNAT, DNAT, MASQUERADE
文章出处:http://server.zdnet.com.cn/server/2008/0317/772069.shtml iptables中可以灵活的做各种网络地址转换(NAT) 网络地址转换主要有 ...
- Firewalld,iptables概述(netfilter和Firewalld,iptables三者之间的关系,四表五链,Firewalld防火墙的配置方发,SNAT,DNAT了解)
文章目录 Firewalld,iptables概述 Firewalld了解 iptables了解 Firewalld和iptables的关系 netfilter Firewalld.iptables ...
- NAT转换技术(SNAT、MASQUERADE、DNAT策略)及代理服务(squid服务)
NAT地址转换技术 一.NAT网络拓扑图 二.实验环境 本次实验均是在 RHEL6.5 虚拟机上进行的. WEB-内网(Client)IP地址:192.168.10.150 (VMnet1) 网关 ...
- iptables详解和snat dnat
一:前言 防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种.无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘.而我们的任务就是需要去定义到底防火墙 ...
- 基于iptables的SNAT+DNAT+docker服务器集群搭建
什么是SNAT? SNAT用于局域网访问互联网,局域网的主机A想访问互联网上的主机C,首先要将数据包发送到防火墙所在的主机B,B收到后修改数据包的源地址为B机的公网IP,然后再发送到互联网. C机收到 ...
- iptables中DNAT、SNAT和MASQUERADE的理解
IPtables中可以灵活的做各种网络地址转换(NAT),网络地址转换主要有两种:SNAT和DNAT SNAT是source network address translation的缩写,即源地址目标 ...
- SNAT,DNAT区别
从定义来讲它们一个是源地址转换,一个是目标地址转换.都是地址转换的功能,将私有地址转换为公网地址. 要区分这两个功能可以简单的由连接发起者是谁来区分: SNAT:内部地址要访问公网上的服务时(如web ...
- iptables总结--理解四表五链/snat/dnat/redirect/synproxy/性能
1. iptables四表五链 四表五链: 链就是位置:共有五个 进路由(PREROUTING).进系统(INPUT) .转发(FORWARD).出系统(OUTPUT).出路由(POSTROUTING ...
- NAT网关(SNAT,DNAT)
SNAT,是源地址转换,其作用是将ip数据包的源地址转换成另外一个地址. SNAT,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主 ...
- SNAT DNAT
#SNAT 场景:云上的vm主机用户作为客户端访问外网服务器 vm(client)->SNAT(将数据包中的内网源IP转换为外网IP)->Internet(服务器)->SNAT(将数 ...
最新文章
- python数据处理pdf百度云_Python数据处理 PDF 高清版
- python数据分析常见面试题_python数据分析方向,面试题解答
- python自动测试n_接口自动化:Jenkins 自动构建python+nose测试
- 物联网未来发展的十大趋势
- 数据处理工具(一)——Matplotlib
- Proguard使用最新,最全教程,亲自试验
- Android 系统(219)---Android O上networkAttributes的说明
- 湖南计算机对口专科学校,湖南计算机专业对口升学有哪些学校?
- 解决vscode卡顿,CPU占用过高的问题
- 电脑太慢了最简单的办法怎么弄_最简单快速的方法恢复电脑误删文件-数据恢复常见问题...
- Mac下常用快捷键(转)
- 异步编程不会?我教你啊!CompletableFuture(JDK1.8)
- Omega network
- Excel:INDEX函数与MATCH函数
- 【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF
- Github连接不上问题
- windows 7 浏览器无法进网站,提示安全证书存在问题(GlobalSign)
- 高新技术企业认证自助申请教程
- Liveness和Readiness两种Health Check手段在Kubernetes中的使用
- easyui datagrid单独修改某列的值