联通光猫可以VPN
备注:这里的VPN网关,也就是vpn服务器,是个硬件专用vpn装备,是网御星云装备PowerV6000,下文个别IP担心涉密,去除掉其中1部份
WINCE手持机联通版本采取的模块是SIM5360,WINCE和vpn服务器都是基于PPTP协议,先是WINCE手持机这边3G拨号成功后,WINCE的vpn客户端连接到VPN网关(也就是VPN服务器),然后ping客户内网的Web网络服务器,下面是网络拓扑图
VPN网关前有个路由(VPN网关有专门的业务封装,路由只是转发寻址),这里VPN网关有两个网卡,1个对内网(有个内部IP,这里是10.XXX.XXX.114),1个对外网(有个外部IP,这里是60.XX.XX.XXX)
我们联通3G版Ping不通客户的web服务器,同台机器用WIFI就能够,但用同1张联通3G卡在anroid手机或是我们C4050上是正常连接和ping通的,另外我们WINCE电信版本(模块是SIM6320C)好很多,虽然也有ping丢包的,但不会出现大部份时间ping不通的情况。
还有个差异,还是WINCE联通3G版本连接其他vpn服务器,ping对应的内网IP,虽然偶尔也存在ping丢包情况,但不会出现常常ping不通的情况。
再后来测试有时候都抓不到这个数据包。我们ping的IP是10.X.X.102,但ping不通情况显示是192.X.X.1,被变址了。抓取到这个变地址的包也有多是其他人在用,毕竟环境上不是我们1台机器,收不到正常的ping包这个是肯定的
也就是说还原后的ping包目的地址是毛病的,从而判断是手持机发出的目的地址是错的。但为何是错的呢?缘由不清楚,vpn装备厂家建议我们联系3G模块厂家,看是否是3G模块这边发出去的数据包本身就有问题。
根据我们自己的讨论,基于“手持机--3G拨号上网---代理VPN---内蒙路政VPN,最好这个代理VPN是联通的”这样的思路验证下,可用狂风VPN代理服务器,新注册用户能提供1个小时的VPN测试地址和账户,但是用手持机没法连接VPN,但android可以。
我们的3G联通模块是SIM5360,在WINCE装备用DiagGrabPro工具抓3G模块发出去的数据包,这个数据包需要厂家解包采取wireshark分析数据包
根据王工抓3G模块发出去的包分析,认为发出去的时候ping目的地址也是错了,斟酌到3G模块只是作为链路层不会对协议进行处理,所以建议我们查WINCE送到3G驱动之前的数据包是否是就有问题了。
4G模块+联通卡(强迫设成3G模式,找到联通3GWCDMA网络)+客户的VPN账号----vpn登录失败
在抓WINCE网络logo之前,我们先来看ping包是否是没有到达目的节点(基于IT部门的建议),在ping通情况下,WINCE端通过命令行tracert10.X.X.102来确认从手持机到目的地经过的路由信息就两个节点
路由到的是192.168.255.74(本地局域网)和61.50.245.5(北京市通州区联通),我们客户是在内蒙古调试,为何回路由到北京联通呢,由于采取的是北京本地卡。但没有到内蒙古的VPN网关。
根据上面tarcert的分析,ping包到到不了VPN网关内网卡IP地址10.X.X.114(见图1)。是甚么缘由呢?还是不清楚,看来只能分析WINCE送到3G驱动之前的数据包了。
(2)pingip地址,然后查看“我的装备”根木下面会多1个文件netlog0.cap,这个就是数据包log.
根据抓包,我们发现3G拨号连接成功后,如果3G拨号成功分配的IP(通过ipconfig可查看)只要是172开头的就能够ping,但如果是10开头的绝大部份是没法ping通,就算可以ping通也非常不稳定,为何呢(注意了,我们要ping的目的地也是10开头)?而电信3G连接成功后分配的都是1开头。难道10开头的就有问题吗?我们用windows+SIM5360开发板验证,10开头也能够。那为何下WINCE下就大部份不行呢?
我自己料想,是否是联通给手持机分配的地址是10的时候,winCE会误以为和10.X.X.102是同1个内网地址,就不按VPN走了,所以致使出错
(2)3G获得联通ip为10段的,vpn连接成功联通光猫可以VPN,ping10.X.X.102这边测试没见过Ping通的,抓包分析,此时使用3G的ip给10.X.X.102发包,感觉是绕过了vpn连接直接发包。
这类情况有两种可能:1种是vpn连接已断(但并没有提示端),另外一种多是wince发现目标地址是10开头,本地3G连接也是10,认为是局域网,绕过vpn直接发。这也解释了上面用的北京的卡,先找到的联通网关的现象。
主要方向明确了,怎样解决呢?我们找到1篇博文《在WindowEmbeddedCE(Wince)下使用OpenNETCF进行路由表的开发》,给我们很大提示,根据里面提供的思路
开发了1个程序,原理是:找到0.0.0.0的默许路由,且interface是192开头,把前面两列替换成10.0.0.0和255.0.0.0,同时把开消置成1,保证比默许的小,然后增加到路由表中。把10.0.0.0的路由指定有vpn的连接走,开消设置成1,比他下面那1条10.0.0.0的小,要ping的地址10开头,其实就10.0.0.0的那条起作用
同时根据1位朋友的反馈“看来3G拨号跟PPPOE拨号1样的BUG啊。PPPoE也要自己家路由表”
程序员人生,我编程,我富裕,记住wfuyu网,php教程,php学习,php手册,CMS模版制作

