远程拨号接入VPN故障,该如何分析如何解决?

故障现象

某客户使用windows 2000 server自带的vpn拨号程序远程拨入到远端的vpn服务器(RG-R3662路由器构建的pptp server)后,发现ping超过1432字节大小的包时,就出现不通的现象,而ping 1432字节及其以下的包都很正常。断开vpn拨号,直接拨外网地址可以ping通5000字节大小的包。

网络拓扑图/应用说明

应用说明:WINDOWS 2000主机通过一台ADSL路由器接入到internet,当WINDOWS 2000主机需要访问总部数据时,便先在本机上运行VPN拨号程序,连接总部广域网路由器R3662,总部广域网路由器R3662作为VPN服务器。VPN建立后,WINDOWS 2000主机得到一私有IP,然后WINDOWS 2000主机便能访问总部数据服务器。

故障具体现象

(1)拨号主机在没有建立vpn连接前上网正常。并能够ping通R3662外网接口地址,包的大小可以超过2000BYTE。测试中ping –l 8000 的包也可以正常通讯。

(2)通过windows 2000 server的vpn拨号程序与远端vpn服务器建立vpn连接。Vpn能够通过pptp隧道协议进行建立。并且在拨号主机上ping –l 1500 的大小的包不通。经过测试ping –l 1432的大小的包是可以通讯的。凡是超过1432的包都不通。

(3)故障初次发生时间及发生频率:该WIN2000主机开始VPN使用便产生该故障;只要报文大小超过1432,必定故障现象重现。

故障详细分析

1、 vpn没有建立前。拨号主机与vpn 路由器的外网口之间能够正常通讯。而且ping –l 8000的大小包没有问题。说明电信线路的连通性是没有问题的。

批注:首先在未建立VPN前,使用PING命令验证了线路质量的稳定性,基于分层排查的思路,排除了物理层线路质量原因。

2、 vpn拨号主机能够与远端的vpn服务器之间建立起VPN连接。而且在未建立隧道前ping 1432大小以上的包没有问题。说明电信线路之间的设备没有对vpn隧道进行限制。Vpn两端的配置检查也没有问题。

批注:基于分块排查的思路,排除了路由器VPN功能可能存在的故障因素。通过这种方式,也初步验证了配置的正确性。

3、 通过自带笔记本(安装xp系统),使用cdma无线上网卡。远程拨入到vpn服务器上。能够建立连接。而且ping –l 3000的大小的包可以正常通讯。说明vpn内部服务器和vpn设备本身是没有问题的。

批注:利用另一台PC访问测试,基于替换排查的思路,进一步确定了配置的正确性,及VPN服务的正常。到此我们已经可以确定,该故障的产生与用户的VPN 客户端环境有关。

注意:一些工程师对该故障处理可能就到此结束了,只是简单的告诉用户故障与系统有关,需要重装系统或者更换其它操作系统。这种对问题浅尝辄止的处理方式是不可取的,我们要尽可能的去分析原因背后更深的原因。

4、 使用自带的笔记本连接到电信的adsl线路上。与远端的vpn服务器建立连接。发现ping –l 3000大小的包是没有问题。看样子问题出现在windows 2000 server的vpn拨号程序上。因现场不具备抓报文环境。所以通过后来的分析初步可以确定是由于windows 2000 server 的vpn拨号程序在建立vpn连接后。其虚拟的vpn网卡没有将超大包进行分片所致。具体分析如下:

通过pptp隧道协议建立vpn连接中,VPN拨号客户端和vpn服务器之间其实是建立了一条GRE隧道,VPN拨号客户端和vpn服务器通过该GRE隧道互访。

但是为什么windows 2000server的vpn拨号客户端只能ping通大小为1432的包呢?我们下面来分析一下:

VPN拨号客户端出来的IP报文长度为1432,,到达电信的PPP0E拨号接入设备的拨号接口时。IP报文的长度已经变为:1432+8(ICMP报头长)+20(IP报头长)+8(pptp利用ppp协议头)+4(封装GRE头)+20(再加上外层IP头)=1492字节,刚好等于电信ADSL拨号接口的的MTU,于是被顺利传送。而ping 超过1432大小的包时,到达电信局端ADSL拨号接口的包大小就相应的超出了1492的MTU,又因为报文DF位未置1,即不能分片,电信ADSL拨号接口于是将该超大的报文丢掉。这就是我们所看到的现象。如果此时使用的应用程序发出的就是超大包。此时就会导致应用程序不能通讯的原因了。

而xp操作系统自带的vpn拨号程序却可以将超大包允许分片发出。这样就出现了使用xp系统能够正常通讯了。试图在windows 2000 server系统的注册表中。找出修改该功能的键值。从而实现分片功能。但是很遗憾没有找到。

批注:这一部分的分析过程,要求工程师对故障涉及的技术理论有较深入的理解。

最终解决方案

1、向用户解释故障原因后,将windows 2000 server操作系统的主机更换成xp操作系统。

2、建议在网点处使用专用vpn设备直接与市中心的vpn设备之间建立SITE-TO-SITE模式的vpn连接,减少vpn拨号的复杂性和局限性。

经验总结

1、替代法处理故障思路在很多时候可以很好的定位出网络故障点。

2、在涉及到广域网通讯时,如果正常报文大小的PING测试能通过,而大报文PING测试失败,要考虑MTU方面的问题。

添加微信免费咨询服务器配置选择建议
微信号:landuiYY

未经允许不得转载:云技术 » 远程拨号接入VPN故障,该如何分析如何解决?

赞 (0)