VPN访问外网不畅 破解故障根源

相比普通拨号网络连接服务,VPN网络连接服务具有被更多上网用户认可的优势,目前在使用过程中正在慢慢取代普通的拨号网络连接服务。不过在实际使用VPN网络的时候,当单位员工成功建立VPN连接后,尽管能够顺畅地访问单位的内部网络资源,不过此时员工的本地工作站却不能访问Internet网络了,这是什么原因呢? 现在,本文就对这种故障现象进行详细剖析,希望大家能从中获得收获!

初探VPN工作站访问外网不畅

众所周知,VPN工作站是利用Internet网络连接单位内部网络VPN服务器的,那么为什么上网用户在成功创建了VPN网络连接后,反而不能顺畅访问Internet网络中的内容呢?发生了这种故障现象时,很多熟悉网络知识的朋友都知道这种现象可能是由路由参数设置不当引起的,所以在解决这种故障现象时,许多人都会打开VPN网络连接的属性设置界面,进入其中的高级TCP/IP设置页面,再将"在远程网络上使用默认网关"项目取消选中(如图 1所示),来实现访问Internet网络的目的。

从表面上来看这种解决故障的方法是切实可行的,上网用户会认为解决了一个路由故障,事实上简单地取消选中"在远程网络上使用默认网关"项目容易造成新的路由故障,甚至还可能威胁到单位内部网络的运行安全性。我们不妨扪心自想一下,当初使用VPN网络连接访问单位内部网络的目标是为了保障局域网网络的安全运行,结果却可能由于VPN网络连接影响了整个单位网络的运行安全性,那么这样就有点得不偿失了。

图1

如此说来难道我们就不能找出更好的办法,让VPN工作站既能正常访问单位内部网络,又能顺畅访问Internet网络了吗?在回答这个问题之前,我们认为有必要先来探究一下VPN工作站的路由寻径情况。既然VPN访问外网不畅的原因是由路由引起的,现在我们不妨仔细检查一下VPN网络连接成功前后,VPN工作站的本地路由表发生了什么变化,之后根据具体的变化情况来寻找网络故障的原因所在。当VPN工作站没有建立VPN网络连接时,我们可以在本地系统依次单击"开始"/"运行"命令,在弹出的系统运行文本框中输入字符串命令"cmd",单击回车键后,将系统状态切换到DOS命令行状态;在 DOS命令行提示符下输入字符串命令"route print",单击回车键后,我们将看到如图2所示的结果界面。

接着,在VPN工作站中建立好VPN网络连接后,再次进入到DOS命令行状态,并在该状态下执行字符串命令"route print",随后我们又将看到一个与图2界面不同的结果;仔细对比这两个结果画面,我们可以非常清楚地看到,在建立VPN网络连接后本地工作站的路由表内容发生了明显变化,变化较大的就是本地VPN工作站访问Internet网络的路径会优先选用VPN的计划程序端口,之后上网请求信息会通过VPN端口将数据信息转发到远程VPN服务器中,这个寻找路径的过程自然不会成功访问到Internet网络中的内容,而只能访问到单位内部网络的内容,这也是前面所说的VPN工作站建立VPN网络连接后不能顺畅访问Internet网络的原因。

图2

揭密数据在VPN通道传输过程

为了更好地解决VPN访问外网不畅的故障现象,我们还有必要来了解一下上网数据信息在VPN网络连接通道中的传输过程。我们知道,VPN网络连接接口其实就是一个点对点方式的虚拟链路接口,当VPN网络连接接口收到网络访问包时,该连接接口就会把从网络层获取得来的数据信息包封装成PPP点对点格式的数据帧,同时对该数据帧进行安全加密操作,之后再把安全封装好的数据帧信息传输到指定的网关那里,这里所提到的网关其实就是VPN工作站自己,因此这个被安全封装的上网数据信息帧又被重新返回给本地工作站再次进行处理,这次处理操作实际上就是再次对上网数据信息帧进行封装的过程。

那么VPN工作站为什么需要重复对上网数据信息帧进行封装呢?这是因为第一次进行安全封装的数据帧往往只能通过虚拟的VPN网络连接接口进行传输,要想将上网数据信息通过实际的网络连接接口进行传输,还需要在实际的网络链路层中重新进行一次安全封装操作才行。而在最终封装成符合网络链路层传输要求的数据帧之前,往往要对第一次封装过的上网数据信息帧进行其他的多级封装,这是由于按照规定是无法直接把PPP点对点格式的数据帧封装在另一个链路层数据帧中的,这需要在PPP点对点格式的数据帧之前添加一些报头,例如最简单的是添加一个GRE报头和IP报头。

当上网数据信息帧被封装到符合网络层传输要求时,比方说在封装到IP报头的时候,还需要在这个过程中进行一次路由指定,这是因为上网数据信息包必须要明确地发送到目标远程VPN服务器那里,上网数据信息包需要在这里寻找到一条能够到达目标远程VPN服务器的路由,之后上网数据信息就在目标路由的指定下将数据送到特定的网络接口进行处理。

应对VPN访问外网不畅的方案

通过上面的分析,我们不难看出,使用VPN网络连接访问单位内部网络时,一定要让通过VPN网络连接传输的数据信息包先到达VPN网络虚拟连接接口进行处理,倘若没有经过虚拟VPN网络连接接口处理的话,那么通过VPN网络连接出去的数据信息包就没有经过安全加密环节,这些的数据信息在 Internet通道中传输时,自然就会影响到单位内部网络的安全性。