NAT(网络地址转换)(一)

一、NAT介绍

       在我们深入研究NAT之前,一定要清楚什么是NAT,NAT产生的背景是什么以及NAT是怎样工作的。虽然现在的网络中我们见过很多不同模式的NAT,但其实这些NAT基本上也都是从早期NAT演变而来的。
       什么是NAT? NAT (Network Address Translation)翻译过来是网络地址转换的意思。NAT并不仅仅应用在那些连接互联网的网络中,虽然在某些私有网络中我们有时也会使用到NAT,但是大多数的网络之所以使用NAT还是因为这些网络需要接入Internet(互联网)。通过我的描述大家可能意识到了NAT的应用与Internet有着密切的关系?是的,随着用户接入Internet的计算机数量的不断猛增,IPv4(除非特别指明,否则本文档中提到的IP地址皆指IPv4地址)地址资源也就愈加显得捉襟见肘了 。事实上,除了中国教育和科研计算机网(CERNET)外,一般用户几乎申请不到整段的C类IP地址了。在其他ISP那里,即使是拥有几百台计算机的大型局域网用户申请IP地址时,所分配的IP地址也不过只有几个或十几个。显然,这么少的IP地址根本无法满足持续增涨的网络用户的需求,于是也就产生了NAT技术。

       那么NAT是怎样工作的呢?简单的概括就是:NAT将一台设备的LAN口IP地址作为内网用户接入互联网的网关,再将这些内网用户使用的内网IP地址转换为能够在互联网上路由(使用)的公网IP地址。如图1所示:

图1

       我们从图1的拓扑可以看到一台路由器连接着一个拥有四台主机的内部网络,内部网络的四台主机分别都有一个C类的IP地址。路由器的内网地址是192.168.1.1,路由器的外网地址100.100.100.2连接着Internet。在这个拓扑中,NAT工作在路由器上,内网四台主机的网关就是192.168.1.1,当这四台主机访问互联网的时候,NAT路由器会将这四台主机的IP地址全部替换为外网地址即100.100.100.2,此时对于外网(互联网)的用户而言,他们根本不知道这四台主机的存在,他们只知道有一台设备或一部主机正在访问互联网,如图2所示:

图2

      换句话说,NAT通常工作在那些用于接入互联网的设备上,对于互联网的设备或用户来说NAT隐藏了公司或企业的内部网络,在互联网的用户看来整个公司或企业的内部网络就好像是一台设备或一台主机。
      那NAT工作的时候是否会影响内网用户呢?基本上NAT的工作对于内网用户来说是透明的,因为处于内网的主机根本无需重新配置就可以通过NAT访问互联网了,管理员唯一要做的就是需要对NAT设备进行正确地配置,让NAT路由器成为内网用户接入互联网的网关。NAT使企业的内部网络更加安全,因为NAT隐藏了内网的主机和设备从而不会被Internet的用户所看到。内网去往互联网的所有通信均由NAT设备处理,NAT在企业内网和Internet之间提供了一条完美的连接的同时还为正在面临IPv4地址逐渐枯竭的运营商节省了大量的公网IP地址。

二、NAT如何工作

       NAT有三种工作方式(模式):静态NAT、动态NAT和端口NAT。然而这三种NAT的原理是一样的。关于这三种NAT的配置后面再进行详细地介绍。理解NAT如何工作的关键是要知道NAT一般都是工作在那些与Internet直接相连的设备上,比如路由器、防火墙或PC机。图1拓扑结构中的NAT就工作在路由器上,但NAT设备也可能是一台PC机,所以对于我们来说NAT工作在哪些设备上都是一样的。
       通过上面的例子我们知道工作站的所有请求都是通过路由器发送到Internet上的。那么这和NAT有什么关系呢?其实当每一个数据包到达路由器的内网端口时,NAT路由器在将这个数据包发送到Internet之前会将这个数据包中的源IP地址替换为NAT路由器上的公网IP地址。就好像这个数据包的原始发送者是NAT路由器而不是内网的主机。在这一点上,NAT与本站中的另一篇文档“一步一步学习IP路由流程”中的路由器不修改发送方源IP地址的工作原理是完全不同的——NAT会修改发送方的源IP地址,而且有时根据NAT工作的模式,NAT路由器还需要更改数据包中的第4层标识——源端口号和目的端口号,比如端口NAT模式时就需要更改端口号了。图3显示的是NAT路由器是如何修改数据包中的源IP地址的:


      在这个网络场景中内网的一台工作站生成了一个目标地址是119.75.218.77的数据包,该数据包会被首先发送给网关即NAT路由器,NAT路由器将这个数据包发往Internet时已将该数据包的源IP地址由原来的192.168.0.12更改为100.100.100.2了即更改为NAT路由器的外网端口的IP地址,然后将更改后的信息存储在路由器的内存中,这些存储的信息也被称为NAT地址转换表,NAT地址转换表记录了192.168.0.12已被替换为100.100.100.2。当这台NAT路由器收到对方应答时通过查询NAT地址转换表就知道应该将这个应答包转发给内网的192.168.0.12这台主机。从中我们可以看出NAT地址转换表的重要性,因为NAT设备是通过查找NAT地址转换表来找到内网的主机,所以我们有必要介绍一下在NAT中使用的NAT地址转换表。
       待续……


猜你喜欢

转载自blog.csdn.net/lnboxue/article/details/71107047