snat与dnat的区别
原理上来讲nat
前导:NAT(Network AddressTranslation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。(nat就是防火墙的nat表)实际上就是在,在系统上建立nat表,提供IP的映射转发的功能。
内核中数据包的传输过程:(图片来自网络)
当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。
如果数据包就是进入本机的,数据包就会到达INPUT链。经INPUT链检查后,数据包被发往本地进程。本地进程进行相应处理后发送响应数据包,数据包经过OUTPUT链,然后到达POSTROUTING链输出;如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出。
SNAT:
首先进入PREROUTING,发现不是本网段的地址,而后开始查找路由表(查找路由的过程在PREROUTING和FORWARD之间),于是经过FORWARD链进行转发,在通过POSTROUTING时进行NAT转换。在这个流程中,NAT转换的步骤在POSTROUTING链上实现,之所以不再PREROUTING上做NAT是因为数据包在进来之前,还不知道是本网段地址还是外网地址。(出向)
DNAT:
在DNAT中,NAT要在PREROUTING链上做。在数据进入主机后,路由选择过程是在PREROUTING和FORWARD之间的,所以应该先做地址转换之后再进行路由选择,而后经过FORWARD链,最后从POSTROUTING链出去。(入向)
SNAT和DNAT的区别:
从定义来讲它们一个是源地址转换,一个是目标地址转换。都是地址转换的功能,将私有地址转换为公网地址。
要区分这两个功能,可以简单的由连接发起者是谁来区分!
snat:内部地址要访问公网上的服务时(如web访问),内部地址会主动发起连接,由路由器或者防火墙上的网关对内部地址做个地址转换,将内部地址的私有IP转换为公网的公有IP,网关的这个地址转换称为SNAT,主要用于内部共享IP访问外部dnat:当内部需要提供对外服务时(如对外发布web网站),外部地址发起主动连接,由路由器或者防火墙上的网关接收这个连接,然后将连接转换到内部,此过程是由带有公网IP的网关替代内部服务来接收外部的连接,然后在内部做地址转换,此转换称为DNAT,主要用于内部服务对外发布。
SNAT:应用实例:
最常见你的应用就是你公司的电脑明明是内网(局域网)却可以网上冲浪!
如上图:G0就是你公司索分配到的公网IP,PC(可以是多个)就是公司的多台电脑,通过配置snat,公司的电脑都将伪装成G0的IP来实现上网!
DNAT:web服务是你公司的内网,例如一个游戏服务器,PC浏览器就是玩王者农药的你。
你的手机将以公网的姿态访问腾讯的内网服务器。你以为访问的是web的IP,其实你访问的是G0的IP,这就是dnat起的作用。
无论snat 还是 dnat 都是一种IP映射,具体的配置无非就是几条命令,百度到处都是!
snat与dnat的区别相关推荐
- SNAT和DNAT的区别
文章出处:http://sxj007.blog.51cto.com/521729/110924 SNAT, DNAT, MASQUERADE都是NAT MASQUERADE是SNAT的一个特例 SNA ...
- 【网络】SNAT和DNAT
1.SNAT和DNAT都是网络地址转换技术,有什么不同? SNAT是"Source Network Address Translation"的缩写,指的是一种将源IP地址转换为另一 ...
- VMware之SNAT与DNAT
今天之所以要说这两个概念,是因为我本人对于网络方面的知识也不是很懂,一直以来就是略知皮毛,尤其是对于路由转发这些概念更是头疼,然而今天恰巧看到了一篇文章,里面介绍了SNAT与DNAT,简单易懂,让我茅 ...
- iptables中的snat与dnat配置技术文档
文章目录 一.SNAT实验: 二.DNAT实验 首先需要弄清楚snat与dnat的区别: 从定义来讲它们一个是源地址转换(snat),一个是目的地址转换(dnat).都是地址转换的功能,将私有地址转换 ...
- Linux包过滤防火墙(SNAT,DNAT)
文章目录 一.Linux包过滤防火墙概述 二.iptables的表,链结构 三.数据包过滤的匹配流程 四.iptables的基本语法 五.设置默认策略 六.数据包的常见类型 七.规则的匹配条件 1.匹 ...
- SNAT、DNAT、NPT
SNAT 源地址转换 ------------- 内网访问外网 问题:这里我们模拟内外网的访问,网关互指,中间网关打开ip_forward,但实际的网络访问环境中,外网客户会把网关指向你公司的网关吗? ...
- iptables防火墙(二)——SNAT和DNAT
目录 一:SNAT策略及应用 1.1SNAT应用环境和SNAT策略的原理 1.1.1SNAT策略的典型应用环境 1.1.2SNAT策略的原理 1.1.3SNAT转换前提条件 1.2SNAT策略的工作原 ...
- Linux系统的iptables防火墙、SNAT、DNAT原理与设置规则
Linux的iptables防火墙.SNAT.DNAT 一.iptables概述 1.netfilter/iptables关系 2.四表五链 四表 五链 规则表之间的优先顺序 规则链之间的匹配顺序 二 ...
- 什么是SNAT、DNAT?
什么是SNAT.DNAT? SNAT 企业内部的主机A想访问互联网上的主机C,首先将请求数据包(源:ipA,目标:ipC)发送到防火墙所在主机B,B收到后将数据包源地址改为本机公网网卡的ip(源:ip ...
最新文章
- Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)
- Python matplotlib 绘制散点图 还不收藏起来
- 2017-4-26 winform 菜单和工具栏
- qt连接mysql提示QMYSQL driver not loaded
- 编制一个c语言成绩记录簿_C语言学到什么程度能写推箱子
- javascript感叹号1_「翻译」JavaScript的可视化学习之三:作用域(链)
- freemarke之TemplateDirectiveModel详解
- 程序员面试100题之十五:数组分割
- haproxy 参数说明
- 方立勋_30天掌握JavaWeb_jdbc实现客户关系管理(未完)
- javascript 正则表达式提取数字使用
- 小游戏---html飞翔的小鸟
- 什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?
- Win10下双系统Ubuntu14.04+GTX1070+CUDAcuDNN+Tensorflow环境搭建
- 系统弱口令检测与网络端口扫描
- 电脑Wallpaper Engine汉化动态壁纸设置工具,支持HTML、MP4
- Linux基础第一章:基础知识与基础命令
- 识图在线识图_三个图片无损放大在线工具分享,把模糊图片变清晰
- MySQL-数据表创建命令
- Java项目-宠物商城管理系统