5.4.1 虚拟专用网VPN
我们已经学习了因特网的路由协议(5.3.1 因特网的路由协议(一)、5.3.2 因特网的路由协议(二)基于距离向量算法的RIP协议、5.3.3 因特网的路由协议(三)OSPF协议、5.3.4 因特网的路由协议(四)BGP协议)知道了路由器如何根据不同的路由协议来得到自己的路由表,这里我们要学习的是专用网络互连技术。
所谓的专用网一般指企事业单位内部的网络,随着经济全球化的发展越来越多的企业需要在全国乃至世界范围内建立多家分支机构,传统的专用网络中各个子公司或办事机构之间信息传送一般用租用专线的方式实现,这种连接方式最大的缺陷在于费用比较昂贵、不够灵活,随着因特网技术的发展现代企业越来越多的企业青睐于构建虚拟专用网(Virtual Private Network)简称VPN。
一、虚拟专用网
虚拟专用网摒弃了专线的连接方式,而是利用公共网络构建的私人专用网络。公共网络可以是因特网或者是各种类型的广域网比如帧中继网、ATM网络等,为了深入理解我们来举个例子。如图
假设一个企业有两个部门,部门A和B,分布在不同的地点,可能处于不同的城市也可能处在不同的国家,为了实现企业内部的专用网有效在两个部门之间进行通信和信息共享,我们可以直接将两个部门接入到公共网络中,利用公共网络平台来构建虚拟专用网。利用VPN技术使得部门A和B之间的通信对于互联网而言是不可见的,从而保证了专用要求的隐私性。
二、VPN的编址
在学习VPN工作原理之前我们先来学习一下VPN内的编址
-
VPN所提供的编址选择与专用网络一样,可以选择本地编址方案,也就是说它既可以分配全球的网络地址也可以使用私有地址(5.2.12 IP分组的转发(三))。前面我们已经说过本地地址无需向因特网管理机构申请,局限在内部网络中使用,由内部网络自行分配。而全球地址需要向因特网管理机构申请,在IPv4地址紧缺的情况下,VPN大多是采用本地编址的方法。
-
本地地址——仅在机构内部使用的IP地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。本地地址又被成为私有地址只能用于内部通信,也就是只能用于一个局域网内部主机之间的通信,因为每家单位都可以使用这些地址,
作为因特网专门负责地址分配的机构IANA明确规定了三块地址块空间只能用于专用互联网内部通信的IP地址空间也就是私有地址。(RFC1918)
前缀 最低地址 最高地址 10/8 10.0.0.0 10.255.255.255 172.16/12 172.16.0.0 172.31.255.255 192.168/16 192.168.0.0 192.168.255.255 -
全球地址——全球唯一的IP地址,必须向因特网的管理机构申请。
-
-
我们前面图片为例,
在两个部门网络组建的VPN中我们假设使用10.0.0.0进行编址,部门A中的一台主机X分配的地址是10.1.0.1,部门B主机Y分配的地址是10.2.0.3,因为这些地址都不属于全球地址,所以因特网的路由器在转发数据报的时候如果发现报文携带的目的地址是这些地址的话它会认为地址错误直接丢弃,不做其他处理,那么如何利用公共网络平台来构建专用网呢?
三、VPN工作原理
我们通过一个实例来介绍一下VPN的工作原理。如图
部门A通过R1路由器接入到因特网,部门B通过R2路由器接入到因特网,假设部门A网络中的一台主机X向部门B网络中的一台主机Y发送数据报,X产生的数据报必将流经因特网才能够到达B网络,这里会引发两个问题
- X产生的数据报的首部中源IP地址10.1.0.1和目的IP地址10.2.0.3都属于网络内部地址,数据报无法直接通过因特网传输。
- 专用网络注重通信的隐私性,希望专用网内任意用户之间的通信细节对于公网是不可见的,如何在开放的互联网平台上保护用户的隐私,确保通信的私密性,这也是需要解决的问题。
VPN是如何解决上述两个问题呢?
- 这里VPN的实现主要使用了两种基本技术:隧道传输和加密技术。
- 为了实现VPN两个网点之间的数据传输,需要在两个网点的路由器之间建立一个传输的隧道,当然隧道是一个比较形象的说法,它不代表路由器之间传输的专线,隧道传输仅仅是完成一个IP-in-IP协议再封装的过程,即**VPN定义了两个网络的路由器之间通过Internet的一个隧道,并使用IP-in-IP封装通过隧道转发数据报。
- 此外VPN将源端产生的数据报加密以后封装在外层数据报中来传输,即为了保证保密性,VPN把外发的数据报加密后,封装在另一个数据包中传输。
- 隧道接受路由器将数据报解密,还原出内层数据报,然后转发该数据报。
下面我们结合上面的例子来说明一下VPN采用隧道技术的传输过程。如图
主机X产生IP数据报,首部中的源地址和目的地址分别是10.1.0.1和10.2.0.3,数据报经过部门网络A的传输到达路由器R1,R1路由器将该IP数据报作为数据部分完整的封装到一个新的IP数据报的数据部分,新的IP数据报的首部中源IP地址就是路由器R1全球的IP地址,125.1.2.3目的地址填写的是R2的全球的IP地址194.4.5.6,这个经过再次封装之后的IP数据报就能够经过因特网顺利的传送到R2路由器,数据报到达R2以后,由路由器R2提取出内部的数据报,并根据内部数据报首部中的目的地址10.2.0.3,在部门B网络中完成最后的交付的任务。从整个的传输过程可以看出,VPN利用隧道的再封装过程来解决本地编址的专用网通过公共网络来进行通信的问题。
当然除了解决内部地址问题,隧道技术也有利于保护用户的隐私性。公网的路由器在对数据报进行解析、转发、处理的过程中它只查看外层数据报的首部信息,观测路由器R1和R2之间的通信细节,由于公网的路由器将内层的IP数据报视为数据部分,所以说对于专用网内所有主机之间的通信过程对外网的路由器是透明的,此外为了防止因特网上恶意用户截获篡改专用网内部的数据,加强专用网数据传输的安全性,由X产生的IP数据报在R1路由器上封装前还进行了加密处理。