本帖最后由 飞猪 于 2017-12-11 08:42 编辑
匠心服务之另辟蹊径勇抓“鬼” 2017年10月16日星期一,普通的日子、平凡的我、在熟悉的客户现场,发生了意想不到的事情,我,见鬼了。 对,没错!就是我们做技术常说的,“MD,活见鬼了,有毒!”这鬼是哪门哪派,又从何而来,下面就请跟随我的思路,看我娓娓道来…… 前言:某客户使用SSLVPN awork功能,封装微软的outlook APP,配置自己的服务器,收发邮件。针对邮件服务器新建L3VPN资源,配置邮件服务器的域名,电脑端通过EasyConncet客户端接入VPN,使用L3VPN资源访问邮件服务器,从而收发邮件;手机端(IOS和安卓)使用awork接入VPN,通过应用封装,将outlook APP封装,然后手机端接入awork,在应用商店下载outlook,收发邮件。无论是电脑端EC接入,还是手机端awork接入,收发邮件均正常。然后关闭公网解析内网邮件服务器的权限,正式上线。 上线当天,问题出现了,关闭公网解析后,电脑端收发邮件正常,IOS手机端使用awork无法收发邮件。理论上,手机使用awork接入VPN后,收发邮件的数据会走VPN隧道,在设备lan口上抓包,抓到了安卓手机访问邮件的数据包,却抓不到IOS手机的数据包。检查配置,配置没得错误,用安卓手机用户的账号,在IOS上登陆,再设备lan口仍然没有抓到数据包。也就是说,IOS 手机访问内网邮件没有走VPN 隧道,到这里,已经想不通了,为什么不走VPN呢,查看awork诊断信息,隧道和L3VPN状态均正常。联系专家、研发、前前后后排查,看日志,都没定位出问题。客户做了个操作,打开了公网访问权限,IOS端收发邮件正常了,从现象来看,数据走公网了。到这里,在客户开始抱怨,指责我们的设备不行,但是,我深知VPN路由本地优先,不会走公网的,心里萌生一种想法,是不是见鬼了。。。 和我一样身为技术人员的你,是不是也不信邪,没错,我也不信邪。头脑风暴后,我猜想,IOS收发邮件没走内网走公网的原因是outlook APP收发邮件压根就没访问客户的邮件服务器,或者说没有直接访问。未验证猜想,我决定搭建环境,抓鬼!也就是抓IOS访问邮件服务器的数据包。手机的数据包怎么抓呢,look at me ! 我笔记本电脑连接他们内网,在出口防火墙上做策略,让我的电脑访问内网和外网,但不能访问客户出口的地址,此时,我的电脑能够访问内网邮件服务器,但是从公网无法访问客户公司邮件服务器。然后使用猎豹WIFI,共享一个无线出来,IOS 手机连接释放出来的无线,安装从APPstore下载的outlook,配置内网邮件服务器,发现收发邮件正常,不应该呀,我的电脑是无法从公网访问邮件服务器的。于是在我的电脑上,抓取我本机有线网卡的数据包,我就可以抓到手机使用我电脑放出来的无线,NAT之后的数据包,源地址都是的有线网卡,目标就是手机outlook访问的目标,抓到数据包一看,果然抓到鬼了。IOS手机outlook APP 压根没有访问客户的邮件服务器,全是一下陌生的公网IP。经查证全是国外微软的IP。
观众看到没有,“鬼子”的IP耶~,果真有鬼。那么问题来了,我的电脑无法从公网访问邮件服务器,手机用我电脑共享的无线是怎么访问的呢,而且数据包也没看到他访问客户的邮件服务器。经过反复验证分析,发现IOS手机使用outlook APP收发邮件不会直接和邮件服务器通信,也没有解析DNS的过程,直接访问微软的服务器,再由微软服务器代理从公网访问客户的邮件服务器,这样一来,也就是IOS的outlook 无法离线使用。 通过上述的排查验证,微软outlook手机端(IOS)软件,不直接和邮件服务器通讯,而是先和微软邮件服务器通信,这样一来,手机端使用awork接入VPN。虽能和内网服务器通信,但是outlook收发邮件不直接与内网邮件服务器通信,而恰好关闭邮件公网访问权限,导致邮件收发不正常。 为验证上述观点 ,进一步测试验证,还是内网环境,使用QQ邮箱,配置内网邮件服务器,收发邮件正常。抓包验证数据包,发现使用QQ邮箱,手机端直接和内网服务器通信,数据包如下:
最终结论,由于微软手机端outlook收发邮件机制问题,导致awork应用封装outlook收发邮件不可行,建议,采用QQ邮箱或者网易邮箱,最好的方式就是自主研发邮件客户端。 朋友们,雄关漫道真如铁,而今迈步从头越。身为技术人员的我们,排查问题,解决难题是我们的职责,捍卫我们产品的地位是我们的匠心!
|