虚拟专用网络VPN

概念

虚拟专用网络:利用公共网络(如 Internet)来构建的专用网络技术,保证了VPN中任何两台计算机之间的通信对外界是隐藏的。

我们知道专用地址如下:

  • A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255
  • B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255
  • C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义

采用上述IP地址的互联网络,称为专用互联网或本地互联网,或专用网,专用IP地址也叫做可重用地址(因为世界可能又很多专用存在相同的专用IP地址)

如果一个机构有许多分布在相距很远的一些地点,而在每个地点都有自己的专用网,假定这些专用网需要经常通信,这时又两种方法:

  1. 租用电信公司的通信线路为本机构专用,简单方便,代价高昂
  2. 利用因特网作为本机构各个专用网之间的通信载体,这样的专用网又成为虚拟专用网VPN(Virtual Private Network)

VPN的实现主要使用了两种基本技术:隧道传输加密技术

  • VPN定义了两个内部网络的路由器之间通过Internet建立的通信隧道,使用IP-in-IP封装后在隧道中转发数据报
  • 为了保证保密性,隧道发送路由器把内网IP数据报加密后,封装为外网IP数据报的数据部分在外网中进行传输
  • 隧道接收路由器收到数据报后,从外网数据报中取出数据部分,将数据报解密,还原成内网数据报,然后转发该数据报

例如下图中,某个机构在AB两地都存在专用网,其中场所A的专用地址为10.1.0.0,场所B的专用地址为10.2.0.0,现在这两个场所需要通过公用的因特网构成一个VPN,其中路由器R1和R2需具有合法的全球IP地址。

  1. 专用网内部通信:不经过因特网
  2. 专用网之间通信:例如X给Y发送数据,sX的内网IP数据报到达边缘路由器R1后,R1将内网IP数据报进行加密,然后重新封装为外网IP数据报,此时的源IP为125.1.2.3、目的IP为194.4.5.6,外网IP数据报到达R2后,R2从中取出数据部分并进行解密,还原出内网IP数据报,然后将其发送给Y。

VPN的分类:

  • 内联网VPN:即只是机构内部网络所构成的VPN
  • 外联网VPN:有时一个机构的VPN需要又某些外部机构参加进来,这样的VPN即为外联网VPN
  • 远程接入VPN:公司员工在外地接入公司的VPN,即可远程接入VPN

NAT

上面介绍了专用地址经过因特网进行通信的方式(VPN,对数据报进行封装和加密),接下来介绍本地IP地址(即仅在本专用网内使用的专用地址)如何与因特网上的主机通信。

显然为每个主机再申请一个全球IP地址是不现实的,需要使用网络地址转换(Network Address Translation)技术

  1. 这种方法需要在专用网连接到因特网的路由器上安装NAT软件,装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IP
  2. 所有使用本地IP地址的主机在和外界通信时都要在 NAT 路由器上将其本地IP地址转换成外网 IP才能和因特网连接

如下图所示:NAT路由器收到专用网主机A发往因特网主机B的IP数据报后,将源地址192.168.0.3转换为全球IP地址172.38.1.5,主机B给主机A应答时,目的地址自然就是172.38.1.5了,NAT收到主机B的数据报后将目的地址再转换为主机A的专用地址。

结论:

  1. 由上可知专用网主机必须主动发起请求,假如因特网上的主机要发起通信,数据报到达NAT路由器后,不知道将目的IP地址转换为哪个本地地址,这表明专用网内部主机不能当作服务器使用。
  2. NAT具有n个全球IP时,专用网内最多同时有n个主机接入到因特网

为了更有效的利用NAT路由器的全球IP地址,将传输层的端口号也利用上,这样就可使多个专用网内的主机同时公用一个NAT路由器的全球IP地址,此时叫做网络地址与端口号转换NAPT(Network Address and Port Translation)