网络地址转换(NAT)简介
网络地址转换(NAT)是一种有效的方式,个人和组织可以借此建立安全、经济且简便的互联网连接。
NAT不仅增强了安全性,还为网络通信带来了灵活性、可扩展性和速度上的优势。
使用NAT还有助于保护公共IP地址的有效使用。
那么,究竟什么是NAT?为什么理解和使用它如此重要呢?
本文将详细解答这些问题。
首先,我们从NAT的定义开始。
什么是网络地址转换(NAT)?
网络地址转换(NAT)通过在数据传输过程中修改网络地址数据,将一个IP地址集合映射到另一个地址。
简而言之,NAT允许一个唯一的互联网协议(IP)地址代表一台或一组计算机。这意味着即使多个设备在同一网络中拥有私有IP地址,它们也可以共享一个公共IP地址进行网络访问。
最初,这种方法是为了避免在上游互联网服务提供商(ISP)更改或网络迁移时,需要为每个主机单独分配新IP地址的情况。即使发生这些变动,网络的IP地址仍然可以保持不变。
值得注意的是,一个NAT网关可以提供一个单一的、可路由的IP地址,供整个私有网络使用。由于NAT会在数据传输时修改IP地址,因此在不同的寻址场景下,NAT会有不同的实现方式,从而对网络流量产生不同的影响。
NAT的作用是什么?
在NAT机制中,诸如NAT防火墙或路由器之类的网络设备会为私有网络中的一台或一组计算机分配公共IP地址。通过这种方式,NAT允许一个设备在公共网络、私有网络和本地网络之间进行协调。
NAT能够通过允许私有IP使用未注册的地址访问互联网来节约IP地址资源。在连接的网络之间转发数据包之前,NAT会将本地、私有的网络地址转换为唯一、全局且合法的地址。
在NAT配置下,外部网络只能看到一个IP地址,尽管它代表的是整个网络。因此,NAT可以隐藏内部网络的具体结构,提供更高的安全性和隐私性。NAT的实施非常适合远程访问环境。
NAT如何工作?
网络地址转换允许诸如NAT路由器或防火墙之类的设备充当内部网络(本地网络)和外部网络(互联网)之间的中间人。这使得整个设备组在网络外部执行某些操作时可以共享相同的IP地址。
NAT就像一个组织里的接待员,根据具体的指令来决定发送、等待或阻止哪些访客或呼叫。NAT的工作方式与之类似。所有请求都来自公共端口和IP地址。这时,NAT指令决定请求应该发送到哪里,同时隐藏了目的地的私有IP地址。
NAT在两个不同的本地网络(外部网络和内部网络)之间选择网关。内部网络的所有系统都有无法路由到外部网络的IP地址。另外,一些外部有效IP会被分配给网关,使出站流量看起来像是来自有效的外部IP地址。
接下来,NAT处理入站流量并将其传输到正确的内部系统。这样,就建立了一层安全保障。由于传入和传出的请求都需要经过转换过程,这就提供了一种验证传入流量并将其与传出流量匹配的有效方法。
NAT进程示例
以下是一个关于NAT在现实世界中如何工作的示例。
用户将其设备连接到家庭Wi-Fi网络。家庭路由器会为该设备分配一个私有IP地址,该地址只能在该网络中使用。
当用户尝试加载一个网页时,该地址会通过其路由器请求目标网页。然后,NAT路由器会将请求的源地址从设备的私有IP地址更改为网络的公共IP地址。NAT表会存储这一转换,网关会在其中查找以确定数据包是否满足转换条件。
此外,用户尝试访问的服务器会将请求的数据包返回到网络的公共地址。接下来,路由器会将目标地址修改为设备的私有IP地址,同时将数据包路由到用户的设备。
NAT的类型
NAT有多种类型,可以根据不同的需求进行使用。
#1. SNAT
静态NAT(SNAT)是一种将私有IP地址转换为公共IP地址的NAT类型。它在执行转换时始终使用相同的公共IP地址。
SNAT可以通过一对一的NAT映射,将未注册的IP地址匹配到已注册的IP地址。这意味着该网络上的所有设备将拥有相同的公共地址。在这种情况下,网络地址只有两件事发生了变化——标头和IP地址。
SNAT 对于需要从外部网络访问的设备非常有用。它也可以用于连接两个具有不兼容地址的不同IP网络。此外,它还应用于网络托管。通常,个人和拥有较少设备的小型组织会使用SNAT以保持成本最低。
#2. DNAT
动态NAT(DNAT)是一种将私有IP地址映射到公共IP地址池的NAT类型。与SNAT不同,DNAT在每次执行转换时不使用相同的IP地址,而是使用不同的IP地址,但它仍像SNAT一样使用一对一连接。
在这种情况下,DNAT防火墙或路由器拥有一组可用的公共注册IP地址。因此,当DNAT将网络地址从私有转换为公共时,它会允许路由器从该地址池中选择任何可用的公共IP地址。然后,DNAT会将未注册的IP地址映射到已注册的IP地址。
因此,DNAT使得设备每次转换都可以使用不同的IP地址。这意味着您无法知道私有地址已映射到哪个全局IP地址。这是一种有效的解决方案,因为您可以连接更多的设备到网络。
但是,这可能会很昂贵,因为您需要购买公共IP地址池。另外,可以传输的数据包数量也是有限的,只能发送和接收与池中可用公共IP地址总数相等的数据包。
DNAT适用于拥有多个内部网络的大型组织。如果您有一固定数量的用户需要访问互联网,这也是一个不错的选择。
#3. PAT
端口地址转换(PAT),也称为NAT过载,是指每个内部设备都使用公共公共IP地址。但是,每个私有IP地址都会分配一个不同的端口。
在PAT中,不同的端口被用来将不同的本地、未注册和私有的IP地址映射到仅一个已注册的IP地址。它还区分了哪些网络流量对应于哪个IP地址。
PAT是一种NAT,数据包在从私有网络传输到公共网络时,其源地址会被修改。此外,当它们从公共网络返回到私有网络时,它们的目标地址也会被修改。
此外,数据包之间的端口号也会被更改,以确保转换的清晰性。修改后的IP地址和端口号的组合被用于映射已注册的私有IP地址。
许多人认为PAT比NAT更具成本效益。原因在于,许多用户只需使用一个公共IP地址就可以连接到网络。因此,无论您是大型、小型还是中型组织,都可以使用它。
除了SNAT、DNAT和PAT,您还可以看到RNAT和重叠NAT。
- RNAT允许您使用公共互联网或互联网连接到您的网络。
- 当使用RFC 1918 IP的两个组织的网络合并时,会发生重叠NAT。当注册的IP被分配给多个设备或在多个内部网络中使用时,也会发生这种情况。在这里,重叠NAT连接网络而无需重新寻址每个设备。
为什么NAT很重要?
设备或网络系统需要一个IP地址,即一组以句点分隔的唯一数字,才能与互联网建立连接。该编号用于识别和定位网络设备,并使用户能够与互联网进行通信。
IP地址有两种类型:IPv4和IPv6。在互联网诞生之初,仅创建了大约43亿个IPv4地址。然而,并非每个地址都可以分配给设备来建立通信。一些地址被用于测试、军事和广播,而剩余的30亿IP可用于通信。
2019年,RIPE NCC分配了可用池中剩余的最后一个IPv4地址,IPv4地址已经耗尽。引入了IPv6寻址来解决这个问题。IPv6重新创建了IP寻址,并提供了更多分配IP地址的选项。然而,改变或实施网络系统需要数年时间。
这时,NAT就显得尤为重要。思科公司同时引入了NAT,如今它已经被广泛部署。
NAT已经成为节省全球地址空间的一种有价值且流行的方式,尤其是在IPv4地址耗尽的情况下。NAT还用于隐藏私有网络的IP地址范围,以提高成本效益和安全性。
NAT的优势
IP地址保护
NAT有助于保护合法注册的IP地址,并防止其耗尽。鉴于全球互联网用户数量不断增长,这对于使网络成为每个人都可以访问的空间至关重要。
安全
使用NAT,您可以以更高的安全性和隐私性访问网络,因为它可以在数据包传输时从公共网络中隐藏设备的IP地址。NAT速率限制还可以限制路由器上同时发生的NAT操作的最大数量。
通过这种方式,您可以更好地控制NAT地址的使用,并可以最大限度地减少病毒、蠕虫、拒绝服务(DoS)攻击等的影响。实施动态NAT(DNAT)将自动在互联网和内部网络之间创建防火墙。此外,一些NAT路由器可以提供流量过滤和日志记录等安全功能。
多个连接
建立多个互联网连接有助于保持网络可靠性,并减少连接失败时服务中断的可能性。它还通过减少使用单个连接的设备数量来促进负载平衡。
此外,多宿主网络通常连接到为组织分配单个或多个IP地址的多个ISP。此外,路由器可以使用NAT来路由具有不同NAT协议的网络。
而且,多宿主网络可以通过使路由器能够利用TCP或IP协议的一部分,即边界网关协议(BGP)进行通信。同样,子域站点在内部BGP(IBGP)的帮助下共享,而路由器则使用外部BGP(EBGP)进行交互。如果连接失败,多宿主将通过另一个路由器重新路由数据。
速度
NAT对于源计算机和目标计算机来说,都比代理服务器更透明。这使得快速直接的交易成为可能。代理服务器通常工作在OSI模型的第四层或传输层,甚至更高。这使得它们比位于第三层或网络层的NAT慢。
可扩展性
当您的需求增长时,您的用户和设备将需要更多的IP地址。因此,您可以利用NAT而不是向IANA请求更多的IP地址。当您将NAT与动态主机配置协议(DHCP)结合使用时,扩展将变得更加容易。
原因在于,NAT和DHCP可以很好地协同工作,根据您的要求,从可用列表中为子域分配未注册的IP地址。这样,您可以扩展可用的IP地址范围,而DHCP可以快速配置并为更多的网络计算机腾出空间。
灵活性和简单性
NAT在部署和建立连接方面提供了灵活性。您可以将其部署在无线公共局域网中。有时,通过静态NAT(SNAT)和入站映射,您可以启用外部设备在子域上建立设备连接。
此外,NAT降低了复杂性,并支持简单的互联网连接,因为它不需要您在更改或合并网络后重新编号IP地址。NAT还允许您在内部网络中构建一个虚拟主机,来协调TCP负载平衡。
NAT的局限性
NAT的一些限制如下:
- 消耗资源:NAT会消耗大量的处理器空间和内存资源。这是因为它需要翻译所有传入和传出的IPv4数据报中的IPv4地址,并将所有翻译详细信息保存在内存中。
- 功能:启用NAT可能会导致某些技术和应用程序的功能减少。
- 隧道复杂化:NAT会使隧道协议复杂化。为此,您可以使用IPsec进行安全的网络地址转换。
- 层问题:当路由器作为NAT设备工作时,它会干预第4层或传输层(作为端口号),因为它主要用于第3层或网络层。
- 延迟:在转换过程中可能会发生路径延迟。
NAT中的一些常用术语
- 源地址:发起主机的IP地址。
- 源端口:发起主机分配的TCP/UDP端口号。
- 目的地址:接收方的IP地址。
- 目的端口:发起主机请求接收方打开的TCP或UDP端口。
- 内部本地地址:分配给本地(内部)网络上的主机的私有IP地址。服务提供商不会分配它。它是内部网络的内部主机。
- 内部全局地址:表示一个或多个本地IP的IP地址。它是外部/外部网络的内部主机。
- 外部本地地址:转换结束后,目标主机的真实IP地址位于本地网络中。
- 外部全局地址:转换前外部目标主机的IP地址。它是外部/外部网络的外部主机。
- 子域:指的是未注册的私有IP地址,包括:
- NAT路由器部署的外部本地地址,以及
- 在本地地址内部,局域网使用的地址。
- NAT表:NAT重新分配端口号和IP地址,并使用NAT转换表来跟踪它们。
假设路由器从一个分配有公共IP地址的本地设备接收到数据包。路由器会将源设备的IP地址更改为可以使用其IP地址。然后,它会更改源的端口号,以确保它知道必须将接收到的数据包传递到哪里。IP地址的重新分配会被记录到NAT转换表中。
结论
随着互联网用户的不断增长以及全球安全问题的日益突出,我们需要一种更安全、更高效的连接方式。NAT正是为了满足这种需求而设计的。它不仅有助于节约公共IP地址,还为连接互联网提供了安全、速度、灵活性和可扩展性的优势。