虚拟专用网VPN系列讲座(五)
谢杨
--------------------------------------------------------------------------------
VPN寻址及路由
要理解VPN的工作原理,则必须对VPN的寻址及路由有个基本认识。VPN连接在建立的同时创建一个虚拟接口,该虚拟接口必须被分配适当的IP地址,同时需要对路由做修改或添加,以确保数据流是在安全的VPN连接上而不是在公共网络上传输。下面分别就远程访问VPN和路由器-路由器VPN这两种不同的连接方式介绍VPN的寻址和路由。
一、远程访问VPN连接
在远程访问VPN连接建立过程中,VPN服务器为远程访问VPN客户机分配一个IP地址,并修改远程客户机上的缺省路由,从而使得在缺省情况下数据流可以经由虚拟接口发送。
1)IP地址和拨号VPN客户机
对于在创建VPN连接之前,需要以拨号方式上网的VPN客户机,有两个IP地址必须被分配:
·创建PPP连接时,IPCP与ISP NAS协商,分配一个公共IP地址。
·创建VPN连接时,IPCP与VPN服务器协商,分配一个Intranet IP地址。这个由VPN服务器分配的IP地址可以是一个公共IP地址,也可以是一个专用IP地址,具体情况依据不同的企业在其Intranet上所实现的是公共地址分配还是专用地址分配而定。
分配给VPN客户机的两个IP地址都必须是可以被Intranet中的主机找得到的,反之亦然。为了实现这一点,在VPN服务器的路由表中必须包含能找到Intranet中每一台主机的路由表条目,而在Intranet的路由器的路由表中也必须包含能找到所有VPN客户机的路由表条目。
如上所述,VPN隧道数据将产生两个IP报头,其内部IP报头的源端和目的端地址分别是由VPN服务器分配的VPN客户机IP地址和Intranet地址;其外部IP报头中源端和目的端地址分别是由ISP分配的VPN客户机IP地址和VPN服务器的公共地址。由于Internet上的路由器仅处理外部IP报头,因此在IP网络上传输时,Internet路由器将数据转发到VPN服务器的公共IP地址上。
下面给出拨号客户机寻址示意图,其中,企业Intranet采用专用IP地址分配,传输数据为IP数据报。
图十四、PPTP数据包中的公共地址和专用地址
2)缺省路由和基于Internet的VPN
如图十五所示,拨号客户机拨打ISP时,利用至ISP的连接,客户机即添加了一条缺省路由。这样,经由ISP NAS的路由器,客户机可以到达Internet上任意目标地址。
图十五、拨打ISP时产生一条缺省路由
从上图中我们已经看到,客户机拨打ISP时会产生一条缺省路由,而随后当VPN客户机创建VPN连接时,又将添加另一条直接至隧道服务器地址的缺省路由和宿主机路由,如下图所示。前一条缺省路由将被保存,但新的缺省路由长度更长。添加新的缺省路由意味着在一条VPN连接的有效连接期内,发自客户机的数据包只能到达隧道服务器的IP地址,而无法达到其他任何Internet目的地址。
图十六、VPN连接创建时产生另一条新缺省路由
生成两条缺省路由的意义在于:
·当VPN连接处于非活动状态时,发自客户机的数据包可到达任意Internet目的地址,但不能抵达Intranet目的地址。
·当VPN连接处于活动状态时,发自客户机的数据包可到达Intranet目的地址,但不能抵达任何Internet目的地址。
对于绝大多数VPN客户机而言,上述机制并不会造成困扰,因为通常VPN客户机在某一时刻或者与Intranet进行数据通信或者与Internet进行数据通信,而不会同时与两者进行通信。
二、路由器-路由器VPN连接
1)临时路由器-路由器的VPN连接和永久路由器-路由器VPN连接
路由器-路由器VPN连接既可以是临时性的,也可以是永久性的。
·临时路由器-路由器的VPN连接只有当有数据包需要经过VPN按需拨号接口( demand-dial interface)转发时才被建立起来,在过了一段特定长度空闲时间后即被断开。VPN客户机(主叫路由器)和VPN服务器(被叫路由器)均需配置空闲时间长度。VPN客户机按需拨号接口的缺省空闲时间没有限制,而VPN服务器的缺省空闲时间为20分钟。
·永久路由器-路由器VPN连接,只要路由器开始启动,即可建立。在永久由器-路由器的VPN连接中,无论是否有数据流发送,连接始终保持,即便连接被中断,也会自动尝试再次恢复连接。
2)使用拨号ISP连接的VPN
如果VPN服务器和VPN客户机双方均通过诸如T1或帧中继等永久性WAN链路与Internet直接相连,则该VPN连接可以是永久性的,且全天候可用。然而,如果没有可用的永久性WAN链路,则可以选择使用拨号ISP配置一个随需(on-demand)路由器-路由器VPN连接。
在通常VPN实现中,远程分部办公室路由器接收到需要转发的数据流时,会自动建立一条随需路由器-路由器VPN连接。举例来说,某远程分部办公室路由器接收到需要发往公司总部的数据包时,首先使用拨号链路与本地ISP取得连接;当可用的Internet连接建立起来之后,该分部路由器--VPN客户机,即可创建一条路由器-路由器VPN连接,与公司总部路由器--VPN服务器相连。
3)静态路由和动态路由
在按需拨号接口被建立起来,且已经确定是临时连接还是永久性连接之后,我们可以选用以下三种方法之一在路由表中添加路由信息:
a.对于临时连接,可以通过手工方式添加路由信息。手工配置静态路由信息适用于路由器数目不多的小型应用方案中。
b.对于永久连接,可以使用"自动静态更新"(auto-static updates)来对静态路由做周期性更新。自动静态路由可适用于有大量路由信息的较大的应用环境中。
c.对于永久连接,则可以将VPN连接看作一条点对点链路,选用其他合适的路由协议,对路由器-路由器VPN连接进行动态路由维护。