计算机网络学习(十七)—— 虚拟专用网 VPN

753 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第29天,点击查看活动详情

虚拟专用网 VPN 出现背景

由于 IP 地址的紧缺,一个机构能够申请到的 IP 地址数往往往往远小于本机构所拥有的主机数。考虑到互联网并不很安全,一个机构内也并不需要把所有的主机接入到外部的互联网。 实际上,在许多情况下,很多主机主要还是和本机构内的其他主机进行通信(例如,在大型商场或宾馆中,有很多用于营业和管理的计算机。显然这些计算机并不都需要和互联网相连)。

假定在一个机构内部的计算机通信也是采用 TCP/IP 协议,那么从原则上讲,对于这些仅在机构内部使用的计算机就可以由本机构自行分配其 IP 地址。这就是说,让这些计算机 使用仅在本机构有效的 IP 地址(这种地址称为 本地地址),而不需要向互联网的管理机构中请全球唯一的IP地址(这种地址称为 全球地址)。这样就可以大大节约宝贵的全球 IP 地址资源。

但是,如果任意选择一些 IP 地址作为本机构内部使用的本地地址,那么在某种清况下可能会引起一些麻烦。例如,有时机构内部的某台主机需要和互联网连接,那么这种仅在内部使用的本地地址就有可能和互联网中某个 IP 地址重合,这样就会出现地址的二义性问题。为了解决这一问题,RFC 1918指明了一些 专用地址(private address)。这些地址只能用于一个机构的内部通信,而不能用于和互联网上的主机通信换言之,专用地址只能用做本地地址而不能用作全球地址。在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。

目前有三个专用地址块,即:

  1. 10.0.0.0 - 10.255.255.255(或记为 10.0.0.0/8,它又称为 24 位块)
  2. 172.16.0.0 - 172.31.255.255(或记为 172.16.0.0/12,它又称为 20 位块)
  3. 192.168.0.0 - 192.168.255.255(或记为 192.168.0.0/16,它又称为 16 位块)

上面的三个地址块分别相当于一个 A 类网络、16 个连续的 B 类网络和 256 个连续的 C 类网络。A类地址本来早己用完了,而上面的地址 10.0.0.0 本来是分配给 ARPANET 的。由于ARPANET 已经关闭停止运行了,因此这个地址就用作专用地址。

采用这样的专用 IP 地址的互连网络称为专用互联网或本地互联网,或更简单些,就叫做 专用网。显然,全世界可能有很多的专用互连网络具有相同的专用 I P地址,但这并不会引起麻烦,因为这些专用地址仅在本机构内部使用。专用 IP 地址也叫做 可重用地址

有时一个很大的机构的许多部门分布的范围很广(例如,在世界各地),这些部门经常要互相交换信息。这可以有两种方法:

  1. 租用电信公司的通信线路为本机构专用。这种方法虽然简单方便,但线路的租金太高,一般难于承受。
  2. 利用公用的互联网作为本机构各 专用网之间的通信载体,这样的专用网又称为 虚拟专用网 VPN (Virtual Private Network)。

网络地址转换 NAT

现在我们再来考虑一个问题,在专用网内部的已经分配了本地 IP 地址的主机,如何同互联网上的主机通信呢?目前使用得最多的方法是采用 网络地址转换

网络地址转换 NAT (Network Address Translation)需要在专用网连接到互联网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT 路由器,它至少有一个有效的外部全球 IP 地址。这样,所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

由此可见,当 NAT 路由器具有 n 个全球 IP 地址时,专用网内最多可以同时有 n 台主机 接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用 NAT 路由器有限数量的 全球 IP 地址。

为了更加有效地利用 NAT 路由器上的全球 IP 地址,现在常用的 NAT 转换表把传输层的端口号也利用上。这样,就可以使多个拥有本地地址的主机,共用一个 NAT 路由器上的全球 I P地址,因而可以同时和互联网上的不同主机进行通信。

参考文档

  • 《计算机网络》—— 谢希仁

往期文章