计算机网络 网络地址转换NAT

前言

本文介绍网络地址转换NAT,NetworkAddress Translation,主要用于解决IPv4太少的问题。

NAT的主要作用

由于IPv4地址空间太小,所以使得目前Internet正面临了两个关键问题:一是公网IP地址资源的匮乏,二是路由表的日益庞大,路由效率低。NAT(NetworkAddress Translation,网络地址转换)技术其出发点都是为了解决IPv4地址(主要是针对公网IPv4地址)不足的问题,提高现有IPv4地址利用率。

NAT技术允许组织内部网络使用非全局可路由IP地址的用户通过地址转换为全局可路由的IP地址来访问Internet,以降低了对公网IP地址的需求。在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。

NAT服务是运行在位于内、外网之间的路由设备上的,在内、外网用户之间通信时对数据包中的地址(可能是源地址,也可能是目的地址)进行转换。在当前仍是IPv4为主流协议的IP网络,NAT技术的应用非常广,因为它可以节约紧缺的公网IPv4地址。

相关术语介绍

内部网络(Internal Network)

内部网络通常是指一个边缘局域网,使用内部网络IPv4地址,尽管它也可以是注册的公网IP地址,但更多的是非注册的私网IP地址。
使用非注册IPv4地址的所有计算机都必须使用NAT转换后再与其他网络进行通信;而使用注册的公网IPv4地址的主机如果是在由路由器隔离的内部局域网中,也是需要经过NAT转换后才能直接使用它进行访问的。所以总之,内部网络的IPv4地址都必须经过路由器的NAT转换才能访问外部网络。

外部网络(External Network)

外部网络是除本地私有网络以外的所有其他网络,在NAT应用中,Internet是最常见的外部网络。当然,外部网络也可以是其他私有网络,如两个局域网通过路由器相连的情况下。所以外部网络上的用户使用IP地址同样既可以是注册的,也可以是非注册的。

本地地址 Local address

本地地址是本地网络(可以是内部网络,也可以是外部网络)内部使用的IP地址,仅在本地网络有效,不能直接用来访问外部网络的IP地址,不可路由,这就是“本地”两字的含义所在。
本地地址(Local address)在IPv4地址中,可以根据IPv4地址的作用范围分为本地地址(Local address)和全局地址(Global address)两大类。

因为NAT连接了内、外两个网络,所以在本地地址中又有两类,一类是用于内部网络的内部本地地址(Inside Local Addresses),一类是用于外部网络的外部本地地址(Outside Local Addresses)。

  • 内部本地地址(Inside local address)
    内部本地地址是指分配给内部网络主机的IP地址。

  • 外部本地地址(Outside local address)
    这是本地地址的另一种,与内部本地地址性质一样,是为外部网络主机分配的本地网络IP地址,是外部网络主机对内部网络用户呈现的IP地址。

全局地址 Global address

全局地址是与本地地址相对应的IP地址,它是内、外部网络本地址转换后的IP地址的,是可路由的。全局地址其实是指在内、外网络中间架设的一个过渡性网络的IP地址。内、外部网络相互通信都需要先把对应的本地地址转换成对应的全局地址才能与对方网络进行通信。
NAT路由器既有与像互联网这样连接局域网的情形,又有连接两个局域网的情形,所以全局地址也既可以是可供注册的公网IP地址,也可以是非注册的私网IP地址。所以同样也分为两类:一是用于转换内部本地地址的内部全局地址(Inside globaladdress),另一类是用于转换外部本地地址的外部全局地址(Outside globaladdress)。

  • 内部全局地址(Inside global address)
    内部全局地址是内部网络主机对外部网络用户呈现的IP地址(可以是分配给路由器连接外部网络接口的IP地址),是内部本地地址转换后的地址。

  • 外部全局地址(Outside global address)
    外部全局地址是外部网络主机分配到的外部网络IP地址。

NAT地址基本转换原理

image.png
image.png

在私有网络中的计算机是使用内部本地地址(Inside Local Addresses)进行通信的,当它们需要与外部网络进行通信时,就需要为他们配置内部全局地址(InsideGlobal Addresses)。
总体来说,NAT进行地址转换的过程就是本地地址与全局地址之间的转换过程,无论数据包是从内部网络发往外部网络,还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同,以及数据包重新封装的源和目的地址不同。

  • 发送
    当数据包还在内部网络位置时有一个作为源地址的内部本地地址和一个作为目的地址的外部本地地址。此数据包首先发往路由器连接内部网络的接口中。当数据包被转发到外部网络时,数据包的源地址就会转变为内部全局地址,而目的地址被转变为外部全局地址。

  • 接收
    当数据包是从外部网络位置发来,并且仍位于外部网络中时,它的源地址就是外部全局地址,目的地址就是内部全局地址。相当于由内部网络向外部网络发送数据包时,外部网络主机接收到的数据包中的源地址和目的地址的互换。而当数据包被路由器转发到本地网络时,源地址被转变为外部本地地址,目的地址被转变为内部本地地址,也相当于由内部网络向外部网络发送数据包时,内部网络主机发送的数据包中的源地址和目的地址的互换。

猜你喜欢

转载自blog.csdn.net/u014099894/article/details/119721074