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

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

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

专用地址与全球地址

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

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

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

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

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

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

  • 10.0.0.0/8,即从 10.0.0.010.255.255.255
  • 172.16.0.0/12,即从 172.16.0.0172.31.255.255
  • 192.168.0.0/16,即从 192.168.0.0192.168.255.255

虚拟专用网 VPN

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

如图所示,左侧的A是一个专用网,右侧的B也是一个专用网。它们通过一对路由器R1R2实现通信,从而实现将一个专用网合并成一个更大的虚拟专用网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.3192.168.0.4被转化为了同一个全球地址172.38.1.5。但是前者使用了端口号40001,后者使用了端口号40002,这样就可以区分两台主机,从而让它们用同一个全球 IP 地址与互联网通信了。


相关推荐
绵绵细雨中的乡音2 小时前
深入理解 ET 与 LT 模式及其在 Reactor 模型中的应用
服务器·网络·php
暖馒3 小时前
Modbus应用层协议的深度剖析
网络·网络协议·c#·wpf·智能硬件
yunfuuwqi5 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔5 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络
代码游侠5 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
枷锁—sha6 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Zach_yuan6 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
迎仔8 小时前
B-算力中心网络隔离的必要性:为什么必须隔离?
网络
野指针YZZ9 小时前
一键配置RK3588网络与SSH远程连接
网络·ssh·rk3588
迎仔9 小时前
10-网络安全监控与事件响应:数字世界的智能监控与应急系统
网络·安全·web安全