由于全球IPv4地址越来越少、越来越贵,因此大到一个组织,小到一个家庭一个人都很难获得公网IP地址,所以只能使用内网地址,从而和别人共享一个公网IP地址。在这种情况下,NAT技术诞生。

  • 翻译

    NAT(Network Address Translation:网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。简单理解成是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。

  • 作用

    在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP地址空间枯竭。因此NAT在一定程度上,能够有效的解决公网地址不足的问题。所有大类上可以归结为一个转换通信地址的程序。

NAT技术分类

  • 静态NAT(Static NAT)
  • 动态地址NAT(Pooled NAT)
  • 网络地址端口转换NAPT
  • DNAT(Destination NAT,DNAT)
  • SNAT(Source NAT,SNAT)

NAT最常用的两种方式

  • SNAT (Source Network Address Translation) 源网络地址转换

    原理:修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。

    将内网发出的请求报文原地址转换成自己的地址发往远端服务器,对回来的响应报文在作做反向处理,类似网络代理。

  • DNAT (Destination Network Address Translation) 目的网络地址转换

    原理:修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地地址,如负载、端口转发和透明代理就是属于DNAT。

    将内网服务端口映射在公网出口地址上。

这里不细研究转换原理了,有兴趣的可以谷歌搜索一下,网上大佬们画的流程图还是很好理解的,我这里主要是为了应急响应,IP溯源而掌握点概念即可。

引申出的安全问题

DNAT有效的解决公网地址不足的问题,但是也带来一个严重的问题,就是追踪溯源难度变大,一旦藏在NAT后面,溯源成本会变高。

查询NAT网络设备的日志

直接证据就是查询可信的NAT网络设备的日志(例如cisco的NAT映射关系):

show ip nat translation

待续...

参考

https://www.cnblogs.com/KevinGeorge/p/8387331.html

https://blog.csdn.net/lasoup/article/details/78289735

https://blog.csdn.net/hzhsan/article/details/45038265

https://blog.51cto.com/iitnet/440719

https://zh.wikipedia.org/wiki/网络地址转换

https://zhuanlan.zhihu.com/p/47715358

网络地址转换NAT的两种模式(概念浅析)& IP溯源的更多相关文章

  1. 第11章 拾遗1:网络地址转换(NAT)和端口映射

    1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的 ...

  2. 网络地址转换-NAT

    网络地址转换-NAT 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.NAT组网和常用术语 私网:局域网内IP 公网:因特网的公网ip地址 NAT设备:就是讲私网地址转换为公网的 ...

  3. 【计算机网络】网络地址转换NAT

    网络地址转换NAT 要知道到每个IP使能的设备都需要一个IP地址.以一个家庭为例,假设当地的ISP已为该家庭分配过一块地址,但是后期家庭中的智能设备增加(智能手机.电脑等),这些都需要IP地址才可上网 ...

  4. 网络地址转换NAT与端口地址转换PAT

    网络地址转换NAT与端口地址转换PAT 一.网络地址转换 NAT (Network Address Translation) 1.1.网络地址转换简介 需要在专用网(内网)连接到因特网的路由器上安装 ...

  5. ACE_linux:Reactor与Proactor两种模式的区别

    一.概念: Reactor与Proactor两种模式的区别.这里我们只关注read操作,因为write操作也是差不多的.下面是Reactor的做法: 某个事件处理器宣称它对某个socket上的读事件很 ...

  6. Spark On Yarn的两种模式yarn-cluster和yarn-client深度剖析

    Spark On Yarn的优势 每个Spark executor作为一个YARN容器(container)运行.Spark可以使得多个Tasks在同一个容器(container)里面运行 1. Sp ...

  7. Windows Server 2012R2 网络地址转换NAT

    一.NAT概述 网络地址转换NAT(Network Address Translation)可以动态改变通过路由器的IP报文的内容(修改报文的源IP地址和/或目的IP地址).离开路由器的报文的源地址或 ...

  8. 浏览器的两种模式quirks mode 和strict mode

    关键字: javascript.quirks mode.strict mode 在看js代码时,有时会看到关于quirks mode(怪异模式)和strict mode(严格格式)的东西,一直也没深究 ...

  9. vue--前端路由及vue-router两种模式

    前言 路由这个概念最早在后端出现,随后前后端分离,直至当今的单页面应用,路由也在一直发生变化.本文来总结一下路由变化和vue-router中的路由模式区别相关知识点. 正文 1.什么是前端路由 (1) ...

随机推荐

  1. CF-1328 E. Tree Queries

    E. Tree Queries 题目链接 题意 给定一个树,每次询问一组点,问是否存在一条从根到某点的路径,使得该组点到该路径的最短距离不超过1 分析 从根到达某点的路径,如果覆盖到了某个点,那么一定 ...

  2. 2019 Multi-University Training Contest 4.Divide the Stones(贪心)

    题意:给你n和k (k|n) 有n个数 第i个数权值为i 要你求权值相同且分成k组 且每组的个数为n/k 思路:恶心构造题,首先对于总权值不能分为k份的 显然不能分成 然后 我们把n/k 分奇偶 我们 ...

  3. Codeforces Round #135 (Div. 2) D. Choosing Capital for Treeland

    time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standa ...

  4. JavaScript——内置对象

  5. Codeforces Round #529 (Div. 3) D. Circular Dance (思维)

    题意:有\(n\)个熊小孩,绕着树转圈圈,编号\(i\)的小孩可以记住\(a_{i,1}\)和\(a_{i,2}\)两个小孩,这两个小孩是顺时针相邻的,但谁前谁后不一定.现在给你每个小孩的\(a_{i ...

  6. LInux 终端命令

    删除目录: 绝对路径开头以"/"开始之后跟着根目录或家目录 删除后不会在垃圾站中 树的顶部那个'.'代表当前目录 用mv命令对一个存在文件重命名 这个more关键字一次性显示不完的 ...

  7. Shell 元字符 & 变量

    Shell 介绍 ## 什么是程序 程序就是一组数据和代码逻辑集合的文件 ## 什么是进程 进程是程序的运行过程,也可以说是操作系统干活的过程,因为是操作系统负责控制硬件来运行应用程序 ps:进程与进 ...

  8. 4.Redis客户端的使用

    标题 : 4.Redis客户端的使用 目录 : Redis 序号 : 4 Console.WriteLine($"北京和天津之间的距离是:{distance}公里"); #### ...

  9. 2.API的理解和使用

    标题 : 2.API的理解和使用 目录 : Redis 序号 : 2 ​ zset的成员是唯一的,但分数(score)却可以重复. ​ 有序集合的内部编码 1.ziplist(压缩列表):当有序集合的 ...

  10. Linux directory tree

    Linux directory tree https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard https://en.wikipedi ...