最新消息:阿里云双12优惠,史上最低折扣。

NAT是什么?老运维对NAT三种模式解析

服务器租用 aliyun 190浏览

使用VPN时添加路由(VPN路由)

有一次因为项目需求在路由器上配置一个VPN隧道与其中一个服务器通信,当时我配置了它,但注意到在我连接到VPN服务器的PC上添加VPN连接后,Internet访问开始默认情况下,通过VPN连接(根本卡的生活不能自理)。很长一段时间我在互联网上搜索解决这个问题的方法,但我没有找到任何合理的方法。

232或4 294 967 296IPv4地址很多?是的,似乎。然而,随着个人计算,移动设备的普及以及互联网的快速发展,很快就会发现43亿个IPv4地址是不够的。IPv6是一个长期解决方案,但需要更快的解决方案来解决地址不足的问题。这个解决方案是NAT(网络地址转换)

什么是NAT

网络通常使用私有IP地址设计。这些是地址10.0.0.0/8,172.16.0.0/12192.168.0.0/16。这些专用地址在内部或站点使用,以允许设备在本地进行通信,并且不会在Internet上路由它们。要允许具有私有IPv4地址的设备访问本地网络外部的设备和资源,必须首先将私有地址转换为可公开访问的公共地址。

只是NAT将私人地址翻译成公共地址。这允许具有私有IPv4地址的设备访问其专用网络外部的资源。NAT与私有IPv4地址相结合已被证明是维护公共IPv4地址的有用方法。一个公共IPv4地址可以被数百甚至数千个设备使用,每个设备都具有私有IPv4地址。NAT还具有为网络增加一定程度的隐私和安全性的额外好处,因为它隐藏了来自外部网络的内部IPv4地址。

启用NAT的路由器可以配置一个或多个有效的公共IPv4地址。这些公共地址称为NAT池。当来自内部网络的设备将流量从网络发送到外部时,启用NAT的路由器会将设备的内部IPv4地址从NAT池转换为公共地址。对于外部设备,进出网络的所有流量似乎都具有公共IPv4地址。

NAT路由器通常在Stub网络的边缘运行。Stub网络是一个死端网络,它与相邻网络有一个连接,一个进入和退出网络。

当Stub网络内的设备想要与其网络外的设备通信时,数据包将被转发到边界路由器,并执行NAT过程,将设备的内部专用地址转换为公共的外部可路由地址。

NAT术语

在NAT术语中,内部网络是要翻译的一组网络。外部网络适用于所有其他网络。

使用NAT时,IPv4地址具有不同的名称,具体取决于它们是在专用网络上还是在公共网络上(在Internet上),以及流量是入站还是出站。

NAT包括四种类型的地址:

内部本地地址(内部本地地址);

内部全局地址(内部全局地址);

外部本地地址(外部本地地址);

外部全局地址(外部全局地址);

在确定使用哪种类型的地址时,请务必记住,从具有转换地址的设备的角度来看,始终应用NAT术语:

内部地址– 广播NAT的设备的地址;

外部地址(外部地址)– 目标设备的地址;

本地地址(本地地址)– 这是在网络内部显示的任何地址;

全局地址(全局地址)– 这是在网络外部显示的任何地址;

用一个示例电路来考虑这一点。

在该图中,PC具有内部本地(内部本地)地址192.168.1.5,并且从其角度来看,Web服务器具有外部(外部)地址208.141.17.4。当数据包从PC发送到Web服务器的全局地址时,PC的内部本地(本地内部)地址将转换为208.141.16.5(全局内部)。外部设备地址通常不会被翻译,因为它是公共IPv4地址。

值得注意的是,PC具有不同的本地和全局地址,而Web服务器具有相同的公共IP地址。从他的角度来看,来自PC的流量来自内部全球地址208.141.16.5。具有NAT的路由器是内部和外部网络之间以及本地和全局地址之间的分界点。

该条款,,与术语结合本地全球的,是指一个特定的地址。在图中,路由器配置为提供NAT并具有用于分配给内部主机的公共地址池。

该图显示了如何通过支持NAT的路由器将流量从内部PC发送到外部Web服务器,并以相反的方向发送和传输。

内部本地地址(内部本地地址) -源地址与内部网络可见。在图中,地址192.168.1.5被分配给PC – 这是它的内部本地地址。

内部全局地址(内部全局地址) -源地址从外部可见。在图中,当来自PC的流量在208.141.17.4发送到Web服务器时,路由器将内部本地地址(内部本地地址)转换为内部全局地址(内部全局地址)。在这种情况下,路由器将IPv4源地址从192.168.1.5更改为208.141.16.5。

外部全局地址(外部全局地址) -目标地址从外部网络可见。这是分配给Internet上主机的全局可路由IPv4地址。在图中,Web服务器可在208.141.17.4获得。通常,外部本地和外部全局地址是相同的。

外部本地地址(外部本地地址) – 从内部网络可见的收件人地址。在此示例中,PC将流量发送到Web服务器208.141.17.4

考虑数据包的整个路径。地址为192.168.1.5的PC正在尝试与Web服务器208.141.17.4建立连接。当数据包到达启用NAT的路由器时,它会读取数据包的IPv4目标地址,以确定数据包是否满足为转换指定的条件。在此示例中,源地址与条件匹配,并从192.168.1.5(内部本地地址)转换为208.141.16.5。(内部全球地址)。路由器将此本地映射添加到NAT表中的全局地址,并将包含已转换源地址的数据包发送到目标。Web服务器使用寻址到PC内部全局地址的数据包进行响应(208.141.16.5)。路由器接收目的地址为208.141.16.5的数据包,并检查NAT表,在该表中找到该映射的条目。它使用此信息并将内部全局地址(208.141.16.5)转换回内部本地地址(192.168.1.5),并将数据包重定向到PC端。

NAT类型

NAT转换有三种类型:

静态地址转换(静态NAT)– 本地和全局地址之间的一对一地址映射;

动态地址转换(动态NAT)– 本地和全局地址之间多对多地址的映射;

端口地址转换(NAT)– 使用端口在本地和全局地址之间进行多播地址映射。这种方法也称为NAT Overload;

静态NAT

静态NAT使用本地和全局地址的一对一映射。这些映射由网络管理员配置并保持不变。当设备将流量发送到Internet时,其内部本地地址将转换为已配置的内部全局地址。对于外部网络,这些设备具有公共IPv4地址。静态NAT对于必须具有可从Internet访问的一致地址的Web服务器或设备尤其有用,例如公司的Web服务器。静态NAT需要足够数量的公共地址来满足并发用户会话的总数。

静态NAT表如下所示:

动态NAT

动态NAT使用一个公共地址池,并按照先到先得的原则分配它们。当内部设备请求访问外部网络时,动态NAT会从池中分配可用的公共IPv4地址。与静态NAT一样,动态NAT需要足够数量的公共地址来满足并发用户会话的总数。

动态NAT表如下所示:

端口地址转换(PAT)

PAT将多个私有地址转换为一个或多个公共地址。这是大多数家用路由器所做的。ISP为路由器分配单个地址,但是几个家庭成员可以同时访问Internet。这是最常见的NAT形式。

使用PAT,可以将多个地址映射到一个或多个地址,因为每个私有地址也由端口号跟踪。当设备启动TCP / IP会话时,它会生成TCPUDP源端口值以唯一标识会话。当NAT路由器从客户端接收数据包时,它使用其源端口号来唯一标识特定的NAT转换。PAT确保设备为每个会话使用不同的TCP端口号。当从服务器返回响应时,源端口号(它将成为返回路径中的目标端口号)确定路由器将数据包转发到哪个设备。

图片说明了PAT过程。PAT将唯一的源端口号添加到内部全局地址以区分翻译。

由于路由器处理每个数据包,它使用端口号(在本例中为1331和1555)来标识发送数据包的设备。

源地址(源地址) -这是增加分配给TCP / IP端口号的内部本地地址。目的地址(目的地址) -与追加的服务端口号的外部本地地址。在此示例中,服务端口为80:HTTP。

对于源地址,路由器将内部本地地址转换为添加了端口号的内部全局地址。目标地址不会更改,但现在称为外部全局IP地址。当Web服务器响应时,路径反转。

在此示例中,客户端端口号1331和1555在具有NAT的路由器上没有更改。这不是一种非常可能的情况,因为这些端口号很可能已经附加到其他活动会话。PAT尝试保留源源端口但是,如果源源端口已在使用中,则PAT将分配第一个可用端口号,从相应端口组0-511,512-10231024-65535的开头开始。当没有更多端口且地址池有多个外部地址时,PAT会转到下一个地址以尝试分配源源端口。此过程将继续,直到没有可用的端口或外部IP地址。

也就是说,如果另一台主机可以选择相同的端口号1444.这对于内部地址是可接受的,因为主机具有唯一的专用IP地址。但是,在NAT路由器上,必须更改端口号 – 否则来自两个不同主机的数据包将使用相同的源地址退出。因此,PAT将下一个可用端口(1445)分配给第二主机地址。

总结NAT和PAT的比较。从表中可以看出,NAT在私有IPv4地址和公共IPv4地址之间转换1:1 IPv4地址。但是,PAT会更改地址本身和端口号。NAT将传入的数据包重定向到其内部地址,重点关注公共网络上主机指定的源的传入IP地址,而PAT通常只有一个或很少的公共IPv4地址,并且根据路由器的NAT表重定向传入的数据包。

包含TCP或UDP以外数据的IPv4数据包怎么样?这些数据包不包含4级端口号.PAT转换IPv4承载的不使用TCP或UDP作为传输层协议的最常用协议。其中最常见的是ICMPv4。PAT中的每种协议类型都有不同的处理方式。例如,ICMPv4请求消息,ping和响应包括查询ID。ICMPv4使用查询ID。用相应的响应识别回声请求。请求标识符随每个发送的echo请求递增。PAT使用请求标识符而不是4级端口号。

NAT的优缺点

NAT提供许多好处,包括:

NAT为内部网络寻址方案提供了一致性。在不使用私有IPv4地址和NAT的网络中,更改常规IPv4地址方案需要转发现有网络上的所有主机。主机转发成本可能很高。NAT允许保留现有的私有IPv4寻址方案,从而可以轻松更改新的公共寻址方案。这意味着组织可以更改提供者,而无需更改任何内部客户端;

NAT维护一个注册的寻址方案,允许内部网私有化。使用PAT,内部主机可以为所有外部通信共享相同的公共IPv4地址。在这种类型的配置中,需要很少的外部地址来支持许多内部主机;

NAT提高了连接到公共网络的灵活性。可以实现许多池,备份池和负载平衡池,以提供可靠的公共网络连接;

NAT提供网络安全性。由于专用网络不会通告其地址或内部拓扑,因此当与NAT结合使用时,它们仍然足够可靠,以获得受控的外部访问。但是,您需要了解NAT不会取代防火墙;

但NAT有一些缺点。互联网上的主机似乎直接与启用NAT的设备交互,而不是与专用网络内的实际主机交互,这会产生许多问题:

使用NAT的一个缺点是网络性能,尤其是对于诸如VoIP的实时协议。NAT增加了交换机延迟,因为转换数据包报头中的每个IPv4地址需要时间;

使用NAT的另一个缺点是丢失了端到端寻址。许多Internet协议和应用程序依赖于从源到目标的端到端寻址。某些应用程序无法使用NAT。使用物理地址而非合格域名的应用程序无法访问通过NAT路由器广播的目标。有时,通过实现静态NAT映射可以避免此问题;

端到端的IPv4跟踪也会丢失。在几次NAT转换期间跟踪经历包数地址变化的数据包更加困难,这使得难以进行故障排除;

使用NAT还会使诸如IPsec之类的隧道协议复杂化,因为NAT会更改标头中的值,这些值会干扰IPsec和其他隧道协议执行的完整性检查;

需要从外部网络启动TCP连接的服务或无状态协议(例如,使用UDP)可能会受到损害。如果NAT路由器未配置为支持此类协议,则传入的数据包无法到达其目的地;

转载请注明:小猪云服务器租用推荐 » NAT是什么?老运维对NAT三种模式解析