网络穿透与音视频技术(2)——NAT的概念及工作模式(下)

(接上文《网络穿透与音视频技术(1)——NAT的概念及工作模式(上)》)

3、四种NAT映射实现方式

上文中我们已经提到三种NAT映射模式,它们是静态映射(Static NAT)、动态映射(Pooled NAT)和网络地址端口映射(NAPT/PAT),又由于NAPT/PAT映射模式的灵活性和复用性最好,所以它又是目前应用最广泛的一种映射模式。这种端口复用的映射模式目前又有四种实现方式,本文我们将逐个进行介绍,以便为我们后文介绍网络穿透方式打下理论基础。

3.1、Full Cone NAT——全圆锥NAT

全圆锥NAT实现方式是指:一个NAT设备内部的IP地址和端口(记为 IP1 + PORT1),通过NAT建立映射表时,都会映射到NAT设备上相同的外网IP地址和端口(记为IP100 + PORT100)。且外网的任何IP地址和端口(记为IPX + PORTX),都可以通过NAT设备上已建立的映射地址和端口(这里就是IP100 + PORT100)访问内网终端。如下图所示:

这里写图片描述

上图中,一旦内网地址(192:168.0.100:41000)在NAT设备上建立了映射关系(61.88.19.144:31444),那么外部网络的任何地址(示例中是177.12.134.140:61001 和 177.12.134.140:52233 和 177.17.16.199:45333)都可以通过NAT设备上的映射地址(61.88.19.144:31444)访问内部终端(192:168.0.100:41000所代表的应用服务)

Full Cone NAT实现简单,基本没有限制约束(也可以理解成约束非常宽松),这种NAT实现方式的也非常容易实现网络穿透。但Full Cone NAT使整个内网终端完全暴露在外部网络下,所以也基本上没有任何安全性可言。

3.2、Address Restricted Cone NAT——地址限制圆锥NAT

地址限制圆锥NAT在全圆锥NAT实现方式下,增加了一定的访问限制,这种访问限制基于IP地址。它的定义是:一个NAT设备内部的IP地址和端口(记为 IP1 + PORT1),通过NAT建立映射表时,都会映射到NAT设备上相同的外网IP地址和端口(记为IP100 + PORT100)进行外网地址(记为IPX + PORTX)。但是只有已经由映射地址和端口(这里就是IP100 + PORT100)访问过的外网地址(这里就是IPX),才能通过映射地址和端口(这里就是IP100 + PORT100)访问内网终端,如下图所示:

这里写图片描述

上图中,内网地址(192:168.0.100:41000)在NAT设备上建立了映射关系(61.88.19.144:31444),并访问外部终端(177.12.134.140:52233),这时外部终端(177.17.16.199:45333)是无法通过NAT设备上的映射地址和端口(61.88.19.144:31444)访问内网终端的。而只有177.12.134.140:61001、177.12.134.140:52233 以及177.12.134.140:XXXXX 这样的外部地址和端口,可以通过NAT设备上的映射地址和端口(61.88.19.144:31444)访问内网终端——因为它们的IP才能突破NAT设备的访问限制。

Address Restricted Cone NAT映射实现方式增加了对网络IP地址限制,保证了只有特定的外网IP才能访通过映射关系访问到内网资源。这种方式显然在防止内网资源完全暴露在内网的情况下,保证了一定的访问灵活性。

3.3、Port Restricted Cone NAT——端口限制圆锥NAT

Port Restricted Cone NAT的映射访问限更加严格,它的描述是:一个NAT设备内部的IP地址和端口(记为 IP1 + PORT1),通过NAT建立映射表时,都会映射到NAT设备上相同的外网IP地址和端口(记为IP100 + PORT100)进行外网地址(记为IPX + PORTX)。但是只有已经由映射地址和端口(这里就是IP100 + PORT100)访问过的外网地址和端口(这里就是IPX + PORTX),才能通过NAT设备上的映射地址和端口(这里就是IP100 + PORT100)访问内网终端,如下图所示:

这里写图片描述

上图中,内网地址(192:168.0.100:41000)在NAT设备上建立了映射关系(61.88.19.144:31444),并访问外部终端(177.12.134.140:52233),这时外部终端(177.17.16.199:45333 和 177.12.134.140:61001)是无法通过NAT设备上的映射地址和端口(61.88.19.144:31444)访问内网终端的。而只有177.12.134.140:52233 这个之前已经被请求的外部地址和端口,可以通过NAT设备上的映射地址和端口(61.88.19.144:31444)访问内网终端——因为只有它的IP和端口同时符合NAT设备的安全性要求。

3.4、Symmetric NAT——对称NAT

可以看出圆锥NAT设备的映射实现方式,其前提条件都是:“一个NAT设备内部的IP地址和端口(记为 IP1 + PORT1),通过NAT建立映射表时,都会映射到NAT设备上相同的外网IP地址和端口”,这个映射关系的形成和内网终端所访问的外网目标没有任何关系,也就是说A终端无论访问www.XXX.com还是访问www.YYY.com,它在NAT设备上建立的映射地址都是相同的。

但是对称型NAT设备的映射实现方式却不一样,它的定义是:一个NAT设备内部的IP地址和端口(记为 IP1 + PORT1),通过NAT建立映射表时,会根据要访问的目标地址和端口,在NAT设备上建立不同的映射关系,如下图所示:

这里写图片描述

对于对等NAT设备的讨论,我们是基于NAT设备内部网络的同一IP地址和同一网络端口,因为如果内网的IP地址和端口都不一致,就没有讨论的必要了。上图中,内网地址和端口192:168.0.100:41000在访问第一个外部地址(177.12.134.140:61001)时,在NAT设备上建立的映射信息是61.88.19.144:61554;而同样的的内部网络上的地址,在访问第二个外部网络地址(177.12.134.140:52233)时,在NAT设备上建立的映射信息是61.88.19.144:31444。

这个时候,各个已经首先被内部终端通过NAT设备请求过的,且NAT设备上映射关系还没有消除的外部网络终端,就可以使用对应的映射地址 + 端口,访问到内部终端。而其它未建立映射关系的任何外部终端都无法访问内部网络上的源终端。如上图的示例中:地址和端口为177.12.134.140:52233的外部终端,可以通过映射地址61.88.19.144:31444访问到内部终端;地址和端口为177.12.134.140:61001的外部终端,可以通过映射地址61.88.19.144:61554访问到内部终端。

3.5、实际上NAT映射为多层

从以上的几个小节的介绍中,我们可以发现四种映射模式的实现方式中,按照限制的宽松性分别为:
Full Cone NAT > Restricted Cone NAT > Port Restricted Cone NAT > Symmetric NAT;但是这几种NAT设备映射实现方式的穿越难度正好相反,Full Cone NAT < Restricted Cone NAT < Port Restricted Cone NAT < Symmetric NAT。后文中我们将介绍到。

除了了解到NAPT/PAT映射模式的四种实现方式外,我们还需要了解到当内部网络某个终端(记为A)访问互联网上的某一个终端地址(记为B)时,实际上A终端和B终端之间隔了多个NAT设备。如下图所示:

这里写图片描述

上图中可见一个网络终端(终端A)到另一个网络终端(终端B)一共经历了三层NAT设备,每一层NAT设备的映射实现方式可能都是不同的,例如上图所示的X方式可能为Full Cone NAT,所示Y方式可能为Restricted Cone NAT,所示Z方式可能为Symmetric NAT。那么我们只需要解决整个网络中Symmetric NAT映射实现方式下的网络穿越问题,则整个网路的穿越问题就可以解决。

(下文我们将介绍如何判定所在网络的NAT设备类型,以及目前常见的几种网络穿越模式)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说好不能打脸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值