NAT的简介

NAT 英文全称是“Network Address Translation”,中文意思是“网络地址转换”,它是一个 IETF(Internet Engineering Task Force, Internet 工程任务组)标准,允许一个整体机构以一个公用 IP(Internet Protocol)地址出现在 Internet 上。顾名思义,它是一种把内部私有网络地址(IP 地址)翻译成合法网络 IP 地址的技术。因此我们可以认为,NAT 在一定程度上,能够有效的解决公网地址不足的问题。



分类
NAT 有三种类型:静态 NAT(Static NAT)、动态地址 NAT(Pooled NAT)、网络地址端口转换 NAPT(Port-Level NAT)。

这里写图片描述

静态的NAT就是使internet的客户通信直接映射到指定的私有网络地址和端口,在静态 NAT 方式中,内部的 IP 地址与公有 IP地址是一种一一对应的映射关系
特点:内部的 IP 地址与公有 IP地址是一种一一对应的映射关系

这里写图片描述

动态NAT就是就是为内网的ip地址分配一个临时的外网IP,主要适用于拨号上网,当远程用户登陆时会分配一个IP地址。当用户断开连接时,外网IP也会随之而释放。(和静态的类似)
特点:NAT表中的记录是动态的,当内网的IP和外网一定之间内没有通信后,会自动将该IP从NAT表中将内外IP的对应的记录删除


网络地址端口转换NAPT(Network address port translation)
将内网的不同IP映射到外网的一个IP不同端口上
分类:NAPT 是使用最普遍的一种转换方式,它又包含两种转换方式:SNAT 和 DNAT

(1)源 NAT(Source NAT,SNAT):修改数据包的源地址。源 NAT
改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT 的例子。

这里写图片描述

(2)目的 NAT(Destination NAT,DNAT):修改数据包的目的地址。DestinationNAT 刚好与 SNAT 相反,它是改变第一个数据懈的目的地地址,如平衡负载、端口转发和透明代理就是属于 DNAT。

这里写图片描述



NAT原理(实例解析)

1.地址转换

NAT 的基本工作原理是,当私有网主机和公共网主机通信的 IP 包经过 NAT网关时,将 IP 包中的源 IP 或目的 IP 在私有 IP 和 NAT 的公共 IP 之间进行转换。 如下图所示,NAT 网关有 2 个网络端口,其中公共网络端口的 IP地址是统一分配的公共 IP为 202.20.65.5;私有网络端口的 IP 地址是保留地址为192.168.1.1。私有网中的主机 192.168.1.2 向公共网中的主机 202.20.65.4 发送了 1 个 IP 包(Dst=202.20.65.4,Src=192.168.1.2)。

这里写图片描述

当 IP 包经过 NAT 网关时,NAT Gateway 会将 IP 包的源 IP 转换为 NAT Gateway的公共 IP 并转发到公共网,此时 IP 包(Dst=202.20.65.4,Src=202.20.65.5) 中已经不含任何私有网 IP 的信息。由于 IP 包的源 IP 已经被转换成 NAT Gateway的公共 IP,Web Server 发出的响应 IP 包(Dst=202.20.65.5,Src=202.20.65.4)将被发送到 NAT Gateway。这时,NAT Gateway 会将 IP 包的目的 IP 转换成私有网中主机的 IP,然后将 IP包(Des=192.168.1.2,Src=202.20.65.4)转发到私有网。

对于通信双方而言, 这种地址的转换过程是完全透明的。转换示意图如下。

这里写图片描述

如果内网主机发出的请求包未经过 NAT,那么当 Web Server 收到请求包,回复的响应包中的目的地址就是私网 IP 地址,在 Internet 上无法正确送达,导致连接失败。

2 连接跟踪

在上述过程中,NAT Gateway 在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态 NAT 手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。如下图所示:

这里写图片描述

在 NAT Gateway 收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当 NAT Gateway 收到服务器来的响应包后,查找 Track Table,确定转发目标,做目的地址转换,转发给客户机。

3 端口转换

以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NAT Gateway 只须更改数据包的源 IP 或目的 IP 即可正常通讯。但是如果 Client A和 Client B 同时访问 Web Server,那么当 NAT Gateway 收到响应包的时候,就 无法判断将数据包转发给哪台客户机,如下图所示。

这里写图片描述

此时,NAT Gateway 会在 Connection Track 中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在 Track Table 里加入端口信息即可区分,如果源端口正好相同,那么在实行 SNAT 和 DNAT 的同时对源端口也要做相应的转换,如下图所示。

这里写图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值