NAT
在计算器网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading)
是一种IP数据包在通过路由器或防火墙时,重写来源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。它是一个方便且得到了广泛应用的技术。
当然,NAT也让主机之间的通信变得复杂,导致了通信效率的降低。

NAT有三种类型:静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Network Address Port Translation)=端口地址转换(PortAdressTranslation,PAT)(早期叫PAT,后来改为NAPT,多了个P,被分类为NAT一种...)

静态NAT设置起来最为简单和最容易实现的一种,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。当一个内部主机必须被作为一个固定的外部地址访问时,通过静态NAT实现。
动态NAT则是在外部网络中定 义了一系列的合法地址(地址池),采用动态分配的方法映射到内部网络。动态NAT转换的工作过程是这样的,当有一个内部主机需要访问外网时,从公用IP地址池中取出一个可用的地址分配给该主机使用。当通信完成后,所获取的公用IP地址也被释放回地址池中。外部公用IP在被分配给一个内部主机通信使用时,该地址不能再次被分配给其他内部主机使用。
动态地址NAT只是转换IP地址,它为每一个内部的IP地址分配一个临时的外部IP地址,主要应用于拨号,对于频繁的远程联接也可以采用动态NAT。当远程用户联接上之后,动态地址NAT就会分配给他一个IP地址,用户断开时,这个IP地址就会被释放而留待以后使用。

PAT/NAPT(Network Address Port Translation),即网络端口地址转换,NAPT是把内部地址(IP+端口)映射到外部网络的一个IP地址的不同端口上(路由防火墙等网关IP+端口)。NAPT可将多个内部地址映射为一个合法公网地址,但以不同的协议端口号与不同的内部地址相对应,也就是<内部地址+内部端口>与<外部地址+外部端口>之间的转换。NAPT普遍用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。
NAPT与动态地址NAT不同,它将多个内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。即在NAT路由器中存储一张NAT转换表(NAT translation table),表中记录了<内部地址+内部端口>与<外部地址+外部端口>的对应关系。当外部报文到达NAT路由器时,它们都有相同的IP,该路由器就通过过NAT转换表寻找源IP地址
在Internet 中使用NAPT时,所有不同的信息流看起来好像来源于同一个IP地址。这个优点在小型办公室内非常实用,通过从ISP处申请的一个IP地址,将多个连接通 过NAPT接入Internet。实际上,许多SOHO远程访问设备支持基于PPP的动态IP地址。这样,ISP甚至不需要支持NAPT,就可以做到多个 内部IP地址共用一个外部IP地址上Internet,虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用NAPT还是很值 得的。

动态/静态NAT都是一对一的转换,而NAPT是一对多的转换...
动态NAT一般比较少,一般用静态NAT/动态PAT比较多...

NAT的特点是在NAT网关上建立一个NAT映射表,里面记录了每个公网IP对应的私网IP的转换。局限是公网IP数量有限...
NAT包括静态NAT和动态NAT 还有就是NATP(PAT)
静态NAT是一对一,一个内网ip对一个公网ip
动态NAT是一对一,有外网ip池,用完了释放,可重复利用
PAT是一对多(内网IP+端口,映射到外部路由防火墙等网关IP+端口)

端口映射(虚拟服务器)
端口映射一般指的是让外网访问内网机器...
例如:通过路由器上网的,输入192.168.1.2可以访问内部网站,但外部客户就看不到...
端口映射是将一台主机的内网IP+端口映射成一个外网P+端口,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;
外网要访问你这个内网主机,目的地址就是公网IP和代表你的端口号(这里也涉及一个映射回去的问题,也就是端口映射)
端口映射比如你访问163网页用的是80端口,实际上在163那边可能是个负载均衡设备开放的80端口,而在负载均衡下面的服务器提供网页访问的端口可能是8080
端口映射很像是PAT...端口映射是在端口映射表上弄的,PAT是随机使用内部端口及外部网关端口发送访问请求都是随机的(确切地说是不固定,以及可空闲,只在发送时使用),数据返回时也使用该临时通道;而端口映射是固定维持一条通道上,绑定了内部端口到外部网关端口...
PAT都是动态的(网关分配一段端口区间来提供内网访问外网需求)...(内网各机器各程序开放端口发起访问请求,然后数据包提交到网关,进行过滤和监控,并生成一个随机外部端口发送到外网...类似临时通道...),端口映射的级别大于PAT(端口被占用的话...)

DMZ主机与端口映射有什么区别吗?
端口映射只是映射指定的端口,DMZ相当于映射所有的端口,并且直接把主机暴露在网关中,比端口映射方便但是不安全
DMZ:就相当于DNAT(Destination NAT),只对目的IP地址做地址转换。也就是说,收到目的IP为自己WAN口的包,统统转发给内网的某个IP(你所配置),当然转发的过程中,对目的IP做了NAT。
在 "转发规则" 里面的 "DMZ主机" 里面,填入内部网主机IP即可...端口映射是"虚拟服务器"
端口映射:针对某些特定的包进行DNAT。这里跟传统的SNAT有些类似,要检测5元组(源IP,目的IP,协议类型,源端口,目的端口),只是做NAT的时候,是针对目的IP做NAT,而不是源IP。

外网访问内网(内网穿透)
端口映射,或花生壳NAT-DDNS等(固定域名,动态ip解析),还有其他各种映射工具(PortTunnel,Nat123,RineTD;ssh转发,Holder;ftp等反向代理穿透)
高级进阶:https://blog.csdn.net/zbgjhy88/article/details/55289785

禁止公司电脑访问外网
1.只在电脑配置时候给限定机器仅配置IP地址即可,其他网关、dns不配置。
2.可以通过网管软件实现,如网路岗。
3.如果是智能交换机,可以进入超级终端配置路由即可。或者防火墙...

NAT穿透方法
  目前常用的针对UDP的NAT 穿透(NAT Traversal)方法主要有:STUN、TURN、ICE、uPnP等。其中ICE方式由于其结合了STUN和TURN的特点,所以使用最为广泛。针对TCP的NAT穿透技术目前仍为难点。实用的技术仍然不多。
uPnp。对于NAT穿越技术,http://www.wildlee.org/2010_12_1227.html这篇文件可以看一看。

一些现在常用的技术:
ALG(应用层网关):它可以是一个设备或插件,用于支持SIP协议,主要类似与在网关上专门开辟一个通道,用于建立内网与外网的连接,也就是说,这是一种定制的网关。更多只适用于使用他们的应用群体内部之间。
UpnP:它是让网关设备在进行工作时寻找一个全球共享的可路由IP来作为通道,这样避免端口造成的影响。要求设备支持且开启upnp功能,但大部分时候,这些功能处于安全考虑,是被关闭的。即时开启,实际应用效果还没经过测试。
STUN(Simple Traversalof UDP Through Network):这种方式即是类似于我们上面举例中服务器C的处理方式。也是目前普遍采用的方式。但具体实现要比我们描述的复杂许多,光是做网关Nat类型判断就由许多工作,RFC3489中详细描述了。
TURN(Traveral Using Relay NAT):该方式是将所有的数据交换都经由服务器来完成,这样NAT将没有障碍,但服务器的负载、丢包、延迟性就是很大的问题。目前很多游戏均采用该方式避开NAT的问题。这种方式不叫p2p。
ICE(Interactive Connectivity Establishment):是对上述各种技术的综合,但明显带来了复杂性。

(转)部分源自此处,以及网络...
https://www.cnblogs.com/vincently/p/4620167.html

更高级进阶...
NAT原理与NAT穿透
https://blog.csdn.net/byxdaz/article/details/52785697

NAT概念解释(不完全版,但不会搞错...)的更多相关文章

  1. faster-rcnn原理及相应概念解释

    R-CNN --> FAST-RCNN --> FASTER-RCNN R-CNN: (1)输入测试图像: (2)利用selective search 算法在图像中从上到下提取2000个左 ...

  2. 《Linux设备驱动开发具体解释(第3版)》进展同步更新

    本博实时更新<Linux设备驱动开发具体解释(第3版)>的最新进展. 2015.2.26 差点儿完毕初稿. 本书已经rebase到开发中的Linux 4.0内核,案例多数基于多核CORTE ...

  3. pageadmin CMS网站制作教程:模板概念解释

    pageadmin CMS网站建设教程:模板概念解释 1.模板页 又叫视图页面,PageAdmin后台栏目或信息中用到的模板页面的统称,格式必须是.cshtml后缀文件,前端人员制作的页面默认都是ht ...

  4. (转)使用CGLIB实现AOP功能与AOP概念解释

    http://blog.csdn.net/yerenyuan_pku/article/details/52864395 使用CGLIB实现AOP功能 在Java里面,我们要产生某个对象的代理对象,这个 ...

  5. CNN中feature map、卷积核、卷积核的个数、filter、channel的概念解释

    CNN中feature map.卷积核.卷积核的个数.filter.channel的概念解释 参考链接: https://blog.csdn.net/xys430381_1/article/detai ...

  6. Java复习笔记(一):概念解释和运行步骤

    一.java的一些概念 JAVA语言分为三:java ee,java se,java me java se:  java标准版,java的核心功能所在 java ee: java企业级开发,包含ser ...

  7. AWS的区域和可用区概念解释

    AWS的每个区域一般由多个可用区(AZ)组成,而一个可用区一般是由多个数据中心组成.AWS引入可用区设计主要是为了提升用户应用程序的高可用性.因为可用区与可用区之间在设计上是相互独立的,也就是说它们会 ...

  8. 名词解释:alpha版、beta版、rc版的意思(转)

    很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思. alpha版:内部测试版.α是希腊字母 ...

  9. Observer设计模式【利用商品概念解释】

    每个人都想过着富有的生活,这是很正常的. 这里以开店进货为例. 在讲之前解释英语单词: Observer:查看:遵守 Observable:可见的,公开的. 从单词可以知道:商品用来卖,所以公开,继承 ...

随机推荐

  1. prometheus-入门尝试

    prometheus-入门 Prometheus 是由 SoundCloud 开源监控告警解决方案2015 年在 github 上开源以来,已经吸引了 很多大公司的使用:2016 年 Promethe ...

  2. 【openjudge】【递推】例3.4 昆虫繁殖

    [题目描述] 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月产y对卵,每对卵要过两个月长成成虫.假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵 ...

  3. 【洛谷】【扩欧】P1516 青蛙的约会

    [题目描述] 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有 ...

  4. 最新版的Chrome 69.0 设置始终开启flash而不是先询问

    ## 69.0 之前的版本 ##   1.打开 chrome://settings/content/flash   2.禁止网站运行Flash -> 改为“Ask (Default)”   3. ...

  5. 2018 - 2019 CTU Open Contest H. Split Game 【SG函数】

    H. Split Game time limit per test 1.0 s memory limit per test 256 MB input standard input output sta ...

  6. CentOS7.2安装mysql

    1. 下载Mysql yum包 http://dev.mysql.com/downloads/repo/yum/ 复制链接使用wget下载 wget http://repo.mysql.com/mys ...

  7. vmvare安装系统提示vmci.sys 版本不正确解决方法

    无法获取vmci驱动程序版本:参数不正确解决 无法获取vmci驱动程序版本:参数不正确. 驱动程序vmci.sys版本不正确. 解决办法: 1,创建好虚拟机之后,别打开电源,然后到建好的虚拟机文件夹里 ...

  8. [转]打造自己的LINQ Provider(上):Expression Tree揭秘

    概述 在.NET Framework 3.5中提供了LINQ 支持后,LINQ就以其强大而优雅的编程方式赢得了开发人员的喜爱,而各种LINQ Provider更是满天飞,如LINQ to NHiber ...

  9. JDBC 使用common-dbutiles

    一:第三方jar mysql-connector-java-5.1.45-bin.jar,需要关注的核心类: 1.DbUtils----操作数据库的连接注册和释放. 2:.QueryRunner--- ...

  10. Kafka设计解析(三)Kafka High Availability (下)

    转载自 技术世界,原文链接 Kafka设计解析(三)- Kafka High Availability (下) 摘要 本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场 ...