NAT技术

目录

前言

IP地址短缺问题并不是一个只有在将来某个时候可能发生的理论问题。现在,此时此地,这个问题已经发生。对于整个Internet而言,长期的解决方案是迁移到IPV6,它有128位地址。这个迁移过程正在缓慢地进行着,可能需要很长一段时间才可以完成。

为了在IPV6迁移的期间找到临时方案,今天普遍使用的解决方案是网络地址转换(NAT)。

一、NAT的基本思想

NAT的基本思想是Internet服务提供商(ISP,Internet Service Provider)为每个家庭或企业分配一个IP地址(或者,最多分配少量的IP地址),用这个IP地址来传输Internet流量。在客户网络内部,每台计算机有唯一的IP地址,该地址主要用来路由内部流量。当一个数据需要离开客户网络,发向其他ISP时,它需要执行一个地址转换,把内部唯一的IP地址转换成那个共享的IP地址。

通常,我们把由ISP分配的IP地址称为公网IP;
在客户网络内部的每一台计算机的IP地址称为私网IP,一般由一个DHCP服务器自动分配。

这种地址转换使用了IP地址的三个范围,这些地址已经被声明为私有化。任何网络可以在内部随意地使用这些地址。仅有的规则是不允许包含这些地址的数据包出现在Internet上 。这3个保留的地址范围为:

NAT的操作过程如下:

当一个数据包离开客户驻地时,首先经过一个NAT盒子(NAT box),NAT盒子将数据包的内部的IP地址(图中为10.0.0.1,私网IP)转换成客户拥有的真实IP地址(图中为198.60.42.12,公网IP)。

NAT盒子通常与防火墙组合成一个单一的设备,防火墙提供一种安全机制,它仔细地控制着进出客户网络的流量。

现在,NAT盒子一般集成到路由器或ADSL调制解调器中。

当一个数据包从客户网络经过地址转换之后发往Internet后,当应答数据包返回时(比如从Web服务器返回的应答包),本质上它的目标IP地址是198.60.42.12,也就是说应答包的目标IP地址。那么,当NAT收到这个包后,如何将应答数据包发给哪个客户网络的IP地址(私网IP)?

NAT的设计者们注意到,大多数IP数据包携带的要么是TCP有效载荷,要么是UDP有效载荷。无论是TCP,还是UDP,这两个协议的头都包含了一个源端口和目标端口字段。
NAT设计者利用发送方的源端口字段去解决这个问题 。下面以TCP头的源端口为例说明:
任何时候当出境数据包进入NAT盒子,其源地址10.0.0.1被真实的IP地址198.60.42.12取代,而且TCP的源端口(Source Port)字段被一个索引值取代,该索引值指向NAT盒子的地址转换表中的65536表项之一。该表项包含了原来的IP地址和原来的源端口。最后,NAT盒子重新计算IP头和TCP头的校验和,并将校验和插入到数据包中。(注:下图只是说明过程,并非真实的数据包格式和转换表)

当一个数据包从ISP到达NAT盒子时,从TCP头取出源端口字段,得到索引值,更加索引值查找NAT盒子的映射表。找到对应的表项后,从该表项提取出内部IP地址和原来的TCP源端口,并将它们插入到数据包中。然后重新计算IP和TCP校验和,并插入到数据包中。最后将该数据包传递给客户内部的路由器,它使用10.x.y.z地址进行正常的路由。

二、NAT的局限性

第一、因为NAT盒子上的映射是由出境数据包建立的,只能在出境数据包之后到达的入境数据包才能被接受。这意味着,家庭网络用户可以通过NAT与一台远程Web服务器建立TCP/IP连接,但远程用户无法与家庭网络的一台游戏服务器建立连接,这种情况需要特殊的配置技术或NAT穿越技术。

第二、NAT违反了最基本的协议分层规则,第K层不应该对第K+1层在本层的有效载荷中放什么做任何假设。

第三、Internet上的进程并不一定必须使用TCP或UDP。如果机器A上的一个用户觉得使用一种新的传输协议与机器B上的用户进行通话,那么,由于NAT的介入,这样的应用将无法工作。

第四、有些应用以规定的方式是使用多个TCP/IP连接或者UDP端口。例如,标准的文件传输协议(FTP,File Transfer Protocol)在数据包正文插入IP地址,接受正文提取这些地址,并使用它们。但NAT对这次安排一无所知,那么就无法进行正确的传输。

总结

相关推荐
wangjun515941 分钟前
linux,物理机、虚拟机,同时内外网实现方案;物理机与虚拟机互通网络;
linux·服务器·网络
Bruce-li__1 小时前
深入理解Python asyncio:从入门到实战,掌握异步编程精髓
网络·数据库·python
self-discipline6341 小时前
【计网速通】计算机网络核心知识点与高频考点——数据链路层(二)
网络·网络协议·计算机网络
叫醒你笛莎2 小时前
IGMP(Internet Group Management Protocol)与组播技术深度解析
网络
lulinhao3 小时前
HCIA/HCIP基础知识笔记汇总
网络·笔记
暴走的YH3 小时前
【网络协议】三次握手与四次挥手
网络·网络协议
yuzhangfeng3 小时前
【云计算物理网络】数据中心网络架构设计
网络·云计算
zhu12893035563 小时前
网络安全的重要性与防护措施
网络·安全·web安全
网络研究院4 小时前
ChatGPT 的新图像生成器非常擅长伪造收据
网络·人工智能·安全·chatgpt·风险·技术·欺诈
小吃饱了5 小时前
TCP可靠性传输
网络·网络协议·tcp/ip