原理上来讲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的区别相关推荐

  1. SNAT和DNAT的区别

    文章出处:http://sxj007.blog.51cto.com/521729/110924 SNAT, DNAT, MASQUERADE都是NAT MASQUERADE是SNAT的一个特例 SNA ...

  2. 【网络】SNAT和DNAT

    1.SNAT和DNAT都是网络地址转换技术,有什么不同? SNAT是"Source Network Address Translation"的缩写,指的是一种将源IP地址转换为另一 ...

  3. VMware之SNAT与DNAT

    今天之所以要说这两个概念,是因为我本人对于网络方面的知识也不是很懂,一直以来就是略知皮毛,尤其是对于路由转发这些概念更是头疼,然而今天恰巧看到了一篇文章,里面介绍了SNAT与DNAT,简单易懂,让我茅 ...

  4. iptables中的snat与dnat配置技术文档

    文章目录 一.SNAT实验: 二.DNAT实验 首先需要弄清楚snat与dnat的区别: 从定义来讲它们一个是源地址转换(snat),一个是目的地址转换(dnat).都是地址转换的功能,将私有地址转换 ...

  5. Linux包过滤防火墙(SNAT,DNAT)

    文章目录 一.Linux包过滤防火墙概述 二.iptables的表,链结构 三.数据包过滤的匹配流程 四.iptables的基本语法 五.设置默认策略 六.数据包的常见类型 七.规则的匹配条件 1.匹 ...

  6. SNAT、DNAT、NPT

    SNAT 源地址转换 ------------- 内网访问外网 问题:这里我们模拟内外网的访问,网关互指,中间网关打开ip_forward,但实际的网络访问环境中,外网客户会把网关指向你公司的网关吗? ...

  7. iptables防火墙(二)——SNAT和DNAT

    目录 一:SNAT策略及应用 1.1SNAT应用环境和SNAT策略的原理 1.1.1SNAT策略的典型应用环境 1.1.2SNAT策略的原理 1.1.3SNAT转换前提条件 1.2SNAT策略的工作原 ...

  8. Linux系统的iptables防火墙、SNAT、DNAT原理与设置规则

    Linux的iptables防火墙.SNAT.DNAT 一.iptables概述 1.netfilter/iptables关系 2.四表五链 四表 五链 规则表之间的优先顺序 规则链之间的匹配顺序 二 ...

  9. 什么是SNAT、DNAT?

    什么是SNAT.DNAT? SNAT 企业内部的主机A想访问互联网上的主机C,首先将请求数据包(源:ipA,目标:ipC)发送到防火墙所在主机B,B收到后将数据包源地址改为本机公网网卡的ip(源:ip ...

最新文章

  1. Autojs自动化 实现自动删除公众号文章(通过订阅号助手删除)
  2. Python matplotlib 绘制散点图 还不收藏起来
  3. 2017-4-26 winform 菜单和工具栏
  4. qt连接mysql提示QMYSQL driver not loaded
  5. 编制一个c语言成绩记录簿_C语言学到什么程度能写推箱子
  6. javascript感叹号1_「翻译」JavaScript的可视化学习之三:作用域(链)
  7. freemarke之TemplateDirectiveModel详解
  8. 程序员面试100题之十五:数组分割
  9. haproxy 参数说明
  10. 方立勋_30天掌握JavaWeb_jdbc实现客户关系管理(未完)
  11. javascript 正则表达式提取数字使用
  12. 小游戏---html飞翔的小鸟
  13. 什么是软件工程?它有哪些本质特征?怎样用软件工程消除软件危机?
  14. Win10下双系统Ubuntu14.04+GTX1070+CUDAcuDNN+Tensorflow环境搭建
  15. 系统弱口令检测与网络端口扫描
  16. 电脑Wallpaper Engine汉化动态壁纸设置工具,支持HTML、MP4
  17. Linux基础第一章:基础知识与基础命令
  18. 识图在线识图_三个图片无损放大在线工具分享,把模糊图片变清晰
  19. MySQL-数据表创建命令
  20. Java项目-宠物商城管理系统

热门文章

  1. gSoap入门之一__下载及编译gsoap两大法宝
  2. 计算机辅助仿真模拟的英文缩写,全国计算机等级考试二级MS Office
  3. heatmap热力图
  4. 临沂大学计算机考研资料汇总
  5. 宁波大学 软件技术exp_2_1 (1)
  6. 【金融量化】CTA策略的构成
  7. 各种音视频编解码学习详解 h264 ,mpeg4 ,aac 等所有音视频格式
  8. 知到网课异彩纷呈的民族文化期末考试单元试题答案分享!
  9. 开闭原则 by Robert Martin
  10. 最大公约数 / 最小公倍数