NAT协议详解(网络层)

NAT 协议详解(网络层)


NAT 协议(Network Address Translation) 的名称叫做:网络地址转换

显而易见,它就是用来做网络地址转换的。我们需要标记一个局域网(LAN)在 广域网(WAN) 上的位置,就需要 NAT 协议进行地址转换。也就是原本在 LAN 下,我们的每个网络设备都有一个 IP 地址,现在,我们需要将这个局域网在 Internet 下的位置标记出来,我们就需要一个统一的 IP 地址标记这个 LAN。

那么为什么我们要做这个操作呢,看上去像是多次一举?

我们知道我们常见的 IP 协议是 IPv4 协议,在设计之处,人们根本不知道之后的互联网会如此的发达。这几年,网络设备的数量不断增加,IP 地址也逐渐到达表达的极限 (2^32),因此,通过NAT 进行地址转化,可以有效的解决这个问题。

可以立即为:

原本我们有好多的盒子,我们要用这些盒子装东西。之前,一个盒子只能装一个东西,现在我们可以将多个东西装到一个盒子了,这样就大大增加了可以容纳东西的总数量,也就是缓解盒子数量逐渐不总的问题。

子网的 “代理人”,也就是和外界的窗口,通常由路由器扮演。路由器的 LAN 一侧管理着一个小子网,而它的 WAN 接口才是真正参与到 Internet 中的接口,也就有一个“绝对唯一的地址”。NAT 协议,正是在 LAN 中的主机在与 LAN 外界通信时,起到了地址转换的关键作用

NAT协议的工作流程

在这里插入图片描述

假设当前场景如上图。中间是一个路由器,它的右侧组织了一个 LAN,网络号为10.0.0/24。LAN 侧接口的 IP 地址为10.0.0.4,并且该子网内有至少三台主机,分别是10.0.0.110.0.0.210.0.0.3。路由器的左侧连接的是 WAN,WAN 侧接口的 IP 地址为138.76.29.7

首先,针对以上信息,我们有如下事实需要说明:

  1. 路由器的右侧子网的网络号为10.0.0/24,主机号为10.0.0/8,三台主机地址,以及路由器的 LAN 侧接口地址,均由 DHCP 协议规定。而且,该 DHCP 运行在路由器内部(路由器自维护一个小 DHCP 服务器),从而为子网内提供 DHCP 服务。
  2. 路由器的 WAN 侧接口地址同样由 DHCP 协议规定,但该地址是路由器从 ISP(网络服务提供商)处获得,也就是该 DHCP 通常运行在路由器所在区域的 DHCP 服务器上。

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)协议允许服务器向客户端动态分配 IP 地址和配置信息。主要分为两部分:

  1. DHCP客户端:通常为网络中的PC、打印机等终端设备,使用从DHCP服务器分配下来的IP信息,包括IP地址、DNS等。
  2. DHCP服务器:所有的IP网络设定信息都由DHCP服务器集中管理,并处理客户端的DHCP请求。

现在,路由器通过 NAT 协议对子网中的网络设备提供地址转化服务。这个服务需要同时还需要一个重要的结构: NAT 转化表

现在我们想象这样的一个场景:

子网里,主机10.0.0.1向 IP 地址为128.119.40.186的 Web 服务器(端口 80)发送了 HTTP 请求(如请求页面),此时到底会发生什么过程呢?

  1. 主机10.0.0.1会指派一个端口:例如 3345 端口为请求端口,向 IP 地址为128.119.40.186发送请求。但是注意,这个请求会先经过10.0.0.4的的主机

  2. 10.0.0.4即路由器的 LAN 接口收到10.0.0.1的请求。路由器将为该请求指派一个新的源端口号,如5001,并将请求报文发送给 WAN 接口138.76.29.7。同时,在 NAT 转换表中记录一条转换记录138.76.29.7:5001——10.0.0.1:3345

    NAT转换表就是为了表示 LAN 接口和 WAN 接口之间的转化记录,以便于 LAN 接口和 WAN 接口之间的相互转化。

  3. 请求报文到达 WAN 接口,继续向目的主机128.119.40.186发送。

之后会有如下的响应发生:

  1. 主机128.119.40.186收到请求,构造响应报文,并将其发送给目的地138.76.29.7:5001
  2. 响应报文到达路由器的 WAN 接口。路由器查询 NAT 转换表,发现138.76.29.7:5001在转换表中有记录,从而将其目的地址和目的端口转换成为10.0.0.1:3345,再发送到10.0.0.4上。
  3. 被转换的响应报文到达路由器的 LAN 接口,继而被转发至目的地10.0.0.1

在这里插入图片描述

注意点:

  1. 目的主机(上述例子中的128.119.40.186)是根本不知道源主机的地址的,他只知道有个 IP 为136.76.29.7的服务器向我发起了请求。所以,可见 NAT 协议起到了屏蔽 LAN 层和 WAN 层的作用。它使得所有从内部发到外部的数据报都只有一个相同的目的地(端口号不同),外部发送到内部的数据报也是相同的地址(端口号不同)。
  2. 在报文穿过路由器,发生 NAT 转换时,如果 LAN 主机 IP 已经在 NAT 转换表中注册过了,则不需要路由器新指派端口,而是直接按照转换记录穿过路由器。同理,外部报文发送至内部时也如此。

总结 NAT 的特点如下:

  1. NAT 协议通过对 WAN 屏蔽 LAN,有效地缓解了 IPv4 地址分配压力。
  2. LAN 主机 IP 地址的变更,无需通告 WAN。
  3. WAN 的 ISP 变更接口地址时,无需通告 LAN 内主机。
  4. LAN 主机对 WAN 不可见,不可直接寻址,可以保证一定程度的安全性。

概念图:

在这里插入图片描述


参考:NAT 协议详解(网络层)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值