1
计算机网络技术理论与实践
1.8.3.1 7.3.1 重叠VPN工作原理

7.3.1 重叠VPN工作原理

早期的VPN都是重叠型的,其本质是一种静态VPN,就像是静态路由,无法反应网络的实时变化,所有的配置与部署都需要手工完成,而且具有N2问题。在重叠VPN中增加或者删除一个客户,整个路由表都会受到影响,维护起来比较麻烦,因而不适合大规模的应用和部署。典型的重叠型VPN技术包括:GRE VPN、IPSec VPN、SSL VPN和L2TP VPN技术。下面以GRE VPN为例说明重叠VPN的工作原理。

GRE VPN采用隧道技术,两个VPN站点所属的路由器之间通过公用网连接彼此的物理接口,并且通过物理接口传输数据。在两个路由器上分别建立一个虚拟接口(tunnel),两个虚拟接口之间通过公用网络建立点对点虚拟连接,形成一条跨越公用网的隧道。

其中,物理接口具有承载协议地址和相关配置,而虚拟接口则具有载荷协议的地址和相关配置。载荷数据包经过GRE和承载协议的封装后,通过物理接口发送到公网,公网上的网络设备按照承载协议地址进行相应的路由,发送数据包到VPN网络的对端路由器,然后由此路由器去除数据包承载协议和GRE的头部,得到载荷数据,再按照载荷协议地址进行本地网络内正常的数据包转发。

如图7-6所示,主机PC1和主机PC2分别位于不同的内部网络中,它们之间通过运行IP协议的公网相连。路由器RTA和RTB分别通过F0/0接口与内部网络相连,S0/0接口与IP公网相连,路由器RTA和RTB的F0/0和Tunnel 0接口均具有私有IP地址,而S0/0接口具有公有IP地址。正常情况下主机PC1和主机PC2不能直接通信,因为内部网的私有IP数据包,会被公网的路由器丢弃。如果采用GRE协议封装,当PC1通过公网向PC2发送数据时,数据包的转发过程如下。

img185

图7-6 GRE VPN示意图

(1)PC1首先把数据包发送到路由器RTA,RTA收到数据包后,根据数据包的目的IP地址查找路由表,找出IP数据包的转发路径。

(2)如果IP数据包是通过Tunnel 0接口向外转发的,则根据配置对私有IP数据包进行GRE封装,再封装上公有IP报头,其中目的IP地址是RTB的公有IP地址202.112.1.2,源IP地址为RTA的公有IP地址59.64.1.1,由RTA的S0/0物理接口负责将数据包发出。

(3)此数据包通过IP公网中路由器的转发,到达路由器RTB,RTB去掉外部的IP报头,再解开GRE封装,把得到的私网IP数据包交给自己的Tunnel 0接口,由其完成内部网络的路由转发,通过F0/0接口发送给PC2。

所以GRE的工作过程是:隧道起点载荷协议路由查找、GRE封装、承载路由协议封装和转发、承载路由协议解封装、GRE解封装和隧道终点载荷协议路由查找。