计算机网络:网络层 - 虚拟专用网 VPN & 网络地址转换 NAT

计算机网络:网络层 - 虚拟专用网 VPN & 网络地址转换 NAT

    • 专用地址与全球地址
    • [虚拟专用网 VPN](#虚拟专用网 VPN)
    • [网络地址转换 NAT](#网络地址转换 NAT)
      • [网络地址与端口号转换 NAPT](#网络地址与端口号转换 NAPT)

专用地址与全球地址

考虑到 IP 地址的紧缺,以及某些主机只需要和本机构内部的其他主机进行通信,互联网管理机构将一部分 IP 地址作为专用地址(private address)供机构内部自行分配使用。

专用地址只能用于一个机构的内部通信,不能用于和互联网上的主机通信(互联网中的所有路由器对目的地址是专用地址的数据报一律不进行转发)。不同的网络内部,可以使用相同的专用地址。

专用地址也称为:本地地址、私网地址、内网地址。

与专用地址相对的是全球地址,这是互联网主机通信所必须具有的、全球唯一的 IP 地址,必须向互联网的管理机构申请才可以使用。

全球地址也称为:公用地址、公网地址、外网地址

互联网管理机构划分的三个 IPv4 专用地址块如下:

  • 10.0.0.0/8,即从 10.0.0.0 到 10.255.255.255。
  • 172.16.0.0/12,即从 172.16.0.0 到 172.31.255.255
  • 192.168.0.0/16,即从 192.168.0.0 到 192.168.255.255

虚拟专用网 VPN

采用专用 IP 地址的互连网络称为专用网。如果一个机构有很多部门且分布在世界各地,就可以利用公用的互联网作为此机构各专用网之间的通信载体,形成一个更大的专用网,这样的专用网称为虚拟专用网 VPN (Virtual Private Network)。

如图所示,左侧的A是一个专用网,右侧的B也是一个专用网。它们通过一对路由器R1和R2实现通信,从而实现将一个专用网合并成一个更大的虚拟专用网VPN。但其实两个专用网之间通信是经过了因特网的。


隧道技术

虚拟专用网是基于隧道技术实现的,如下图:

主机X想要给主机Y发送信息,此时X将自己的专用地址作为源地址,Y的专用地址作为目的地址构建一个报文发送出去。

路由器R1接收到该报文后,将整个报文作为数据部分,重新封装为一个新的IP数据报。此时新的数据报源地址变为R1的接口的地址125.1.2.3,目的地址变为R2接口的地址194.4.5.6。由于这两个都是合法的全球地址,可以通过隧道在互联网正常传输。

当R2收到该报文后,提取出其中的原始数据报,再发往部门B内部,此时Y就可以收到该报文了。

以上通信过程,本质还是专用网与专用网的通信,那么专用网能不能和互联网上的主机通信呢?是可以的,此时就需要网络地址转换 NAT。


网络地址转换 NAT

专用网内的主机如果想要和互联网上的主机通信,使用得最多的方法是网络地址转换 NAT(Network Address Translation)。

这种方法需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的全球 IP 地址。

所有使用专用地址的主机在和外界通信时都要在 NAT 路由器上将其专用地址转换成全球 IP 地址才能和互联网通信。

如图所示:

当专用网的主机想要连接互联网,此时经过NAT 路由器,路由器会做以下任务:

  1. 将IP数据报的源地址修改为全球IP地址
  2. 在NAT转换表中记录专用地址与全球IP地址的映射关系
  3. 转发该数据报

由于源地址变成了全球IP,所以可以正常在互联网传输。

当互联网上的主机回应了该报文,往回发送一个报文,目的地址为刚刚的源地址,当报文传送到NAT 路由器,路由器会做以下任务:

  1. 查找自己的NAT转换表,找到该目的地址对应的专用地址
  2. 将IP数据报中的目的地址修改为对应的专用地址
  3. 转发该数据报

此时主机就可以收到回应报文了。

NAT 路由器具有多少个全球 IP 地址,就可以同时有几台主机访问互联网。

可以使专用网内较多数量的主机轮流使用 NAT 路由器有限数量的全球 IP 地址。

通过 NAT 路由器的通信必须由专用网内的主机发起,因此专用网内部的主机不能直接充当服务器用。


网络地址与端口号转换 NAPT

NAT 并不能节省全球 IP 地址。为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把运输层的端口号也利用上。

这样就可以使多个专用网主机,共用 NAT 路由器上的一个全球 IP 地址,同时和互联网上的不同主机进行通信。

使用端口号的 NAT 叫做网络地址与端口号转换 NAPT (Network Address and Port Translation),而不使用端口号的 NAT 就叫做传统的 NAT (traditional NAT)。

如图:

两个专用地址192.168.0.3和192.168.0.4被转化为了同一个全球地址172.38.1.5。但是前者使用了端口号40001,后者使用了端口号40002,这样就可以区分两台主机,从而让它们用同一个全球 IP 地址与互联网通信了。


相关推荐
Sirens.1 小时前
网络通信基础:IP、端口、协议分层与数据封装
java·网络·网络协议·tcp/ip·java-ee·1024程序员节
码完就睡1 小时前
Linux——IP协议与路由选择
linux·网络·tcp/ip·1024程序员节
箓维1 小时前
UDP Socket的实现
网络·1024程序员节
Lzg_na1 小时前
STP / RSTP 协议学习:从环路保护到快速收敛
网络
不一样的故事1262 小时前
Skill封装(Agent Skill / 智能体技能封装)
网络
qq_429432302 小时前
叫班系统对接 IP-PBX/SIP 与排班系统:接口方式与部署选型要点
网络·网络协议·tcp/ip·信息与通信·ip·1024程序员节·voip通信协议
SHENGWEI胜为9 小时前
二层网络广播风暴如何排查?从交换机接口计数器到 STP 拓扑变化分析
网络
艾芯微科技10 小时前
HR911130C|汉仁 HANRUN 集成变压器千兆 RJ45 网口参数、电路、PCB 布线、替代与采购避坑
网络·单片机·嵌入式硬件·集成测试·51单片机
日常筹谋记10 小时前
工业厂房 TPO 防水卷材:技术需求如何传导到配方层面?
运维·网络·html