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

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


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


应用说明: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故障,该如何分析如何解决?】批注:基于分块排查的思路,排除了路由器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的包呢?我们下面来分析一下:

推荐阅读