NAT的简单概述
作者:Three
链接:https://www.lofter.com/lpost/1f01bc1b_1c61e1ed6
来源:LOFTER
NAT(Network Address Translation)网络地址转换
IP地址已经变得稀缺和昂贵(当到完全采用IPV6)。So,有的人就想出了网络地址转换这样使得网络不必遵守互联网的寻址方案,但是仍然能够通过Internet进行通信
如下的3类私有IP地址范围:
-
10.0.0.0~10.255.255.255A类网络
-
172.16.0.0~172.31.255.255 B类网络
-
192.168.0.0~192.168.0.0 C类网络
NAT可以说是位于一个网络到互联网(或者说到另一个网络的网关)。执行的是透明路由的选择和地址的转换。
NAT能带来很大的安全利益,多数防火墙的供应商都在它们的产品中实现了NAT。当攻击者要攻击一个网络时,他要尽可能要去了解这个网络具体的内容、有用的信息,如拓补结构、服务和地址。有了NAT,攻击者就无法轻易发现所攻击的地址方案和拓补结构,NAT就像夜总会的保镖一样站在网络的前面,并隐藏真实地址。
通过内部地址集中在一个设备上,NAT隐藏了内部地址,并且任何离开网络的数据帧都只有那台(安装了NAT的)设备的源地址,并不是发送消息的实际计算机的源地址。我们可以假设发送信息的计算机源地址为10.10.10.2的内部计算机,消息到达NAT设备处就停止了,而NAT设备的地址为1.2.3.4(1.2.3.4这个地址是不合法的,这里只是做个例子,你懂我意思就行了)。NAT会修改数据帧的首部,从内部计算机地址修改为NAT设备的地址1.2.3.4。当互联网上的计算机回复消息时,它回复的地址是NAT设备的地址,即1.2.3.4,NAT再讲回复消息首部内的地址改为10.10.10.2,然后提供给内部用户接受。
-
静态映射:NAT软件配置了一个公共IP地址池。每个私有地址都被静态地映射到一个特定的公共地址上。因此,计算机A总是接收公共地址X,计算机B总是接收公共地址Y,以此类推。所以说,静态映射是用来那种需要一直保持相同公共地址的服务器通常使用这种映射
-
动态映射:NAT软件配置有一个IP地址池。但是它不将公共地址映射到特定的私有地址上。而是一种”先到先得“的方式运行。因此,如果Mr.Three需要与互联网进行通信时那么它的系统就会向NAT服务器发送一个请求,NAT服务器将提取列表中的第一个IP,并将其映射为Mr.Three的私有地址,使其能够与互联网通信。动态映射可以减少公共地址的使用(公共地址有点贵哦),这样就不必为每台计算机配备一个公共地址了。
-
端口地址转换(PAT Port Address Tranlation):对于所有需要与外部网络通信的系统来说,学校或者公司仅有一个公共IP地址。系统中所有的计算机如何能够使用一个相同的IP地址呢? 是这样的,举个例子,NAT设备的地址为1.2.3.4。当计算机A需要与互联网上的一个系统通信时,NAT设备会记录这台计算机的私有地址和源端口号(10.10.10.2:40001)。当计算机B也要和互联网上的一个系统通信时,NAT设备也会记录这台计算机的私有地址和源端口号(10.10.10.254:40001),并将首部信息改为1.2.3.4:40005.因此,当一个系统响应计算机A时,数据包首先到达NAT设备,该设备检查端口号为40001,以查看他是否是映射到计算机A的真实信息。于是,NAT设备将首部信息修改为地址10.10.10.2和端口40001并将数据包发送到计算机A处理
大多数NAT实现都是有状态的,这意味着他们保持内部主机和外部主机之间的通信记录,直至会话结束。NAT设备需要记住内部IP地址和端口以发送回复信息。这种有状态的特点与检测防火墙想思,但是NAT不对进来的包执行扫描以发现恶意特征。相反没NAT通常是一种在公司屏蔽子网内的路由器或防火墙上执行的服务