-
NAT/PAT
编辑
NAT就是
网络地址翻译的英文缩写,在
路由器上配置NAT服务,可提供公司内100~200人同时上网的服务。不需要Proxy Server,所有的服务都可顺利使用(除
Netmeeting之类的服务),客户端无需做复杂设定,与应用程序无关。解决了使用Proxy Server带来的烦复的设置工作。
- 中文名
- NAT/PAT
- 外文名
- Netmeeting
- 类 型
- 路由器
- 作 用
- 网络地址翻译
nat与pat
随着Internet的飞速发展,网上丰富的资源产生着巨大的吸引力。接入Internet已成为当今信息业最为迫切的需求。
但这受到
IP地址的许多限制。首先,许多局域网在未联入Internet之前,就已经运行许多年了,局域网上有了许多现成的资源和应用程序,但它的IP地址分配不符合Internet的国际标准,因而需要重新分配局域网的IP地址,这无疑是劳神费时的工作;其二,随着Internet的膨胀式发展,其可用的IP地址越来越少,要想在ISP处申请一个新的IP地址已不是很容易的事了。这不仅仅是费用的问题,而是
IP地址的现行标准
IPv4决定的。当然,随着IPv6的出台,这个问题应当能够得到解决。但从IPv4到IPv6的升级不是一两天就能完成的 。
NAT(
网络地址翻译)能解决不少令人头疼的问题。它解决问题的办法是:在内部网络中使用内部地址,通过NAT把内部地址翻译成合法的IP地址,在Internet上使用。其具体的做法是把IP包内的地址域用合法的IP地址来替换。
NAT功能通常被集成到
路由器、
防火墙、
ISDN路由器或者单独的NAT设备中。NAT设备维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个包在NAT设备中都被翻译成正确的IP地址发往下一级,这意味着给处理器带来了一定的负担。但这对于一般的网络来说是微不足道的,除非是有许多主机的大型网络
需要注意的是,NAT并不是一种有安全保证的方案,它不能提供类似防火墙、包过滤、隧道等技术的安全性,仅仅在包的最外层改变
IP地址。这使得黑客可以很容易地窃取网络信息,危及网络安全。
NAT有三种类型:静态NAT(staticNAT)、NAT池(pooledNAT)和端口NAT(PAT)。其中静态NAT设置起来最为简单,内部网络中的每个
主机都被永久映射成外部网络中的某个合法的地址。而NAT池则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。PAT则是把内部
地址映射到外部网络的一个
IP地址的不同端口上。根据不同的需要,各种NAT方案都是有利有弊。 ■使用静态转换 使用静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。
■使用NAT池
使用NAT池,可以从未注册的
地址空间中提供被外部访问的服务,也可以从内部网络访问外部网络,而不需要重新配置内部网络中的每台机器的IP地址。例如,建立在NT+IIS服务器上的内部试验
子网192.168.0.0,其
网络地址属于C类保留地址。作为
企业网的一个子网,其
IP地址不分配给企业网上的设备而仅仅局限在试验子网的设备上。为了使企业网能访问到这个
内部网,在网络上增加一条静态路径,使信息能回传给Cisco4700
路由器。其中的路由器可以把内部网和企业网连接起来,使之能相互访问。在内部网中不要使用RIP协议,因为使用RIP后,内部网络相对外部来说变得不可见了。
这样,本地信息可以相互访问了,但由于192.168.0.0属于保留地址,故不能直接访问Internet。所以在路由器中设置一个NAT池,用来翻译来自内部网络的IP包,把它的IP地址映射成
地址池(pooledaddresses)中的合法
IP地址。那么,
内部网可以访问Internet上的任何服务器,Internet上的任何
主机也能通过
TCP或UDP访问到内部网。
采用NAT池意味着可以在内部网中定义很多的内部用户,通过动态分配的办法,共享很少的几个外部IP地址。而静态NAT则只能形成一一对应的固定映射方式。该引起注意的是,NAT池中动态分配的外部IP地址全部被占用后,后续的NAT翻译申请将会失败。庆幸的是, 许多有NAT功能的
路由器有超时配置功能。例如在上述的Cisco4700中配置成开始15分钟后删除当前的NAT进程,为后续的NAT申请预留出外部IP地址。通过试验表明,一般的外部连接不会很长,所以短的时间
阈值也可以接受。当然用户可以自行调节时间阈值,以满足各自的需求。
NAT池提供很大灵活性的同时,也影响到网络原有的一些管理功能。例如,
SNMP管理站利用
IP地址来跟踪设备的运行情况。但使用NAT之后,意味着那些被翻译的地址对应的内部地址是变化的,今天可能对应一台工作站,明天就可能对应一台服务器。这给SNMP管理带来了麻烦。一个可行的解决方案就是把划分给NAT池的那部分地址在SNMP管理平台上标记出来,对于这些不响应管理信号的地址不予报警,如同它们被关掉了一样。
■使用PAT
PAT在
远程访问产品中得到了大量的应用,特别是在远程
拨号用户使用的设备中。PAT可以把内部的TCP/IP映射到外部一个注册
IP地址的多个端口上。PAT可以支持同时连接64500个TCP/IP、
UDP/IP,但实际可以支持的
工作站个数会少一些。因为许多Internet应用如HTTP,实际上由许多小的连接组成。
在Internet中使用PAT时,所有不同的
TCP和UDP信息流看起来仿佛都来源于同一个IP地址。这个优点在小型办公室(SOHO)内非常实用,通过从ISP处申请的一个IP地址,将多个连接通过PAT接入Internet。实际上,许多SOHO
远程访问设备支持基于PPP的
动态IP地址。
这样,ISP甚至不需要支持PAT,就可以做到多个内部
IP地址共用一个外部IP地址上Internet。虽然这样会导致信道的一定拥塞,但考虑到节省的ISP上网费用和易管理的特点,用PAT还是很值得的。
以上所谈论的均是关于使用NAT和PAT来把内部IP地址转换成外部合法的IP地址使用。下面介绍NAT的另一个运用:作为用于负载平衡的DNS系列服务器(DNS round-robin)的一个替代品。DNS系列服务器解决了多个IP地址共用一个域名的问题。它会在响应DNS申请时跳跃式地寻找可用的IP地址。达到的效果就是一个域名可以对应多个IP地址。这种功能可以应用在一个HTTP服务器群中,利用它可以平衡多个服务器的负载。但是这里还有一个问题,IP客户端会在本地缓冲DNS/
IP地址解析,从而使它的后续的申请都会到达同一个IP地址,减弱了DNS系列服务器的作用。
使用基于NAT的
负载平衡方案,则可以避免这个问题。
路由器或其它NAT设备把需要负载平衡的多个IP地址翻译成一个公用的IP地址,每个
TCP连接被NAT送到一个IP地址,而后续的TCP连接则被NAT送到下一个IP地址。真正实现了负载平衡。当然,基于NAT的负载平衡只能在NAT上实现,而不能在PAT上实现。
由于Internet用户数目迅速膨胀,因此,地址分配越来越紧张,绝大多数需要接入Internet的企业网络往往会遇到这种情况:只申请到十几个或几十个合法
IP地址,但是他们的网络用户却有几百个。为了解决Internet IP地址紧张的问题,出现了几种解决办法,NAT(Network Address Translation),即地址转换是其中的一种解决办法,而且已经被广泛使用。所谓的NAT是首先在RFC 1631中定义的,根据某种策略改变IP
数据包报头及应用数据流中的源地址或目的地址的一种技术。1.采用NAT的好处:1)可以实现私用地址(即未进行过登记的IP地址)和合法
IP地址之间的转换,不需要大量的合法IP地址。2)可以实现地址复用,即多个地址转换为同一个地址。

NAT配置
3)通过NAT技术可以屏蔽网络内部的IP地址,增加网络的安全性。2.NAT应用:NAT有以下几种主要的应用:1)连接公用IP网络,如Internet。通过NAT可以将转发到公用网络的IP数据包的本地私用IP源地址转换为合法的IP源地址,并且可以通过地址复用节省大量合法IP地址,同时屏蔽私用网络。2)在进行网络改造时,为了避免改变原有的IP地址分配,采用NAT技术,减少工作量。3)通过一个全局IP地址与多个本地地址的对应,采用NAT技术,实现TC。[1]
■安全问题
当NAT改变包的
IP地址后,需要认真考虑这样做对安全设施带来的影响。
对于
防火墙,它利用IP地址、
TCP端口、目标地址以及其它在IP包内的信息来决定是否干预网络的连接。当使用了NAT之后,可能就不得不改变防火墙的规则,因为NAT改变了源地址和目的地址。
在许多配置中,NAT被集成在
防火墙系统之中,提供
访问控制和地址翻译的功能。不要把NAT设在防火墙之外,因为黑客可以轻易地骗过NAT,让NAT认为它是一个授权用户,从而进入网络。
若
企业网中使用了VPN(
虚拟专用网),并用IPSec进行加密安全保证,那么错误地设置NAT将会破坏VPN的功能。把NAT放在受保护的VPN内部,而不是在中间。因为NAT改变IP包内的地址域,而IPSec规定一些信息是不能被改变的。若
IP地址被改变了,IPSec就会认为这个包是伪造的,拒绝使用。所以在VPN和NAT同时使用的时候,要做好ACL,来区分地址的NAT和VPN。
虽然NAT带来了许多优越性,例如使现有网络不必重新
编址、减少了ISP接入费用,还可以起平衡负载的作用,但NAT潜在地影响到一些
网络管理功能和安全设施,这就需要谨慎地使用它。
- NAT+PAT+OSPF+设备互连地址详解
- udp打洞( NAT traversal )的方法介绍
http://www.cnblogs.com/whyandinside/archive/2010/12/08/1900492.html http://www.gzsec.com/oldversion/ ...
- CCNA实验(7) -- NAT
1.静态NAT2.动态NAT3.复用内部全局地址的NAT(PAT) enableconf tno ip do loenable pass ciscoline con 0logg syncexec-t ...
- CCNP交换实验(7) -- NAT
1.静态NAT2.动态NAT3.复用内部全局地址的NAT(PAT) enableconf tno ip do loenable pass ciscoline con 0logg syncexec-t ...
- NAT介绍
NAT 即网络地址转换NAT作用:实现内网IP地址和公网IP地址之间的转换可以有效地缓解IP地址危机可以隐藏内网地址实现负载均衡实现内网和内网之间的通信 NAT分类:分类静态NAT:将内网IP地址一对 ...
- NAT and Traversal NAT(TURN/STUN/ICE)
http://www.cnblogs.com/whyandinside/archive/2010/12/08/1900492.html -------------------------------- ...
- (转)NAT与NAT穿越学习总结--ICE过程讲的不错
转:http://cgs1999.iteye.com/blog/1994072 1.引言网络地址转换(Network Address Translation,简称NAT)是一种在IP分组通过路由器或防 ...
- 最新IP地址数据库
2016年12月1日 最新发行版 265051条数据 基于:国内基于省市区以及运营商 国外基于国家 版本:全球旗舰版 国内精华版 国外拓展版 英文版 掩码版 字段:大洲 国家 省份 城市 县区 运营 ...
- ip地址分类和网段区分
IP地址分类/IP地址10开头和172开头和192开头的区别/判断是否同一网段 简单来说在公司或企业内部看到的就基本都是内网IP,ABC三类IP地址里的常见IP段. 每个IP地址都包含两部分,即网络号 ...
随机推荐
- Java获取客户端IP
在开发工作中,我们常常需要获取客户端的IP.一般获取客户端的IP地址的方法是:request.getRemoteAddr();但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实 ...
- 利用JS跨域做一个简单的页面访问统计系统
其实在大部分互联网web产品中,我们通常会用百度统计或者谷歌统计分析系统,通过在程序中引入特定的JS脚本,然后便可以在这些统计系统中看到自己网站页面具体的访问情况.但是有些时候,由于一些特殊情况,我们 ...
- survival analysis 生存分析与R 语言示例 入门篇
原创博客,未经允许,不得转载. 生存分析,survival analysis,顾名思义是用来研究个体的存活概率与时间的关系.例如研究病人感染了病毒后,多长时间会死亡:工作的机器多长时间会发生崩溃等. ...
- 用SugarORM快速开发需要同步和保存大量数据的Android互联网客户端
最近开发的一个项目主要有两个特点,这两点也是在项目开发前需要着重去规划解决方案的: 需要和Rest服务端请求大量的数据 同时这些数据本地也要保存到sqlite数据库 对于第一点,目前的Volley.G ...
- SQL脚本循环修改数据库字段类型
数据库在设计的时候也许考虑不全面,导致某些字段类型不太准确.比如设计的时候是varchar(1024),但是实际使用的时候却发现太小了,装不下,于是需要修改字段类型为ntext什么的. 我最近就遇到了 ...
- 扫描函数sweep
groot.sweep(element,vm); element 为要扫描的代码片段,vm 对应的一个 groot.view 定义的 一个Vm的整体 扫面代码 groot.sweep = functi ...
- [C#]Attribute特性
简介 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集.类型.方法.属性等)相关联. 特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性. 特性具有以下属性: 特性可向程序中 ...
- 用wcf实现带有“秒传”功能的网盘
写在前面 前面记录过这样一个关于“秒传”的实现思路,在这篇就弄了一个简单的demo实现了一下,当中有很多业务仍没考虑,只是将“秒传”的实现思路,用代码实现了一下. 关于秒传,可以参考这篇文章:何为“秒 ...
- HTML5——单次定位请求
单次定位请求及点击一次只发出一次请求 下面是个获取经纬度的简单Demo 简要截图如下: 简要代码如下: <!DOCTYPE html> <html> <head> ...
- 'UserInfoBLL' node cannot be resolved for the specified context [MVC展示数据.Controllers.LoginController]问题解决
我们在配置Spring.Net时,往往会提示找不到,然而看了看都对着呢?那么问题出在了哪? 问题呈现: 进行如下修改,将名字随便取个,不为BLL方法名字即可,我这里添加了一个1,注意这里改了,控制器里 ...