豆子最近遇见了一个诡异至极的问题,公司里面iPhone/iPad连上WiFi之后,无法从App Store下载程序,但是可以更新已经下载的程序;但是PC和Mac端的itune AppleStore 下载又毫无问题。


豆子公司的无线网络设置的比较乱,基本结构是客户端通过AP,连接交换机和WLC,然后不同的SSID还用了不同的验证服务器,有的是WLC的网页验证,有的Windows Radius服务器,还有的是Cisco ISE,最后通过Palo Alto的防火墙连接到互联网。


总之呢,豆子花了大量的时间去看防火墙日志,抓包,查看配置文件,挨个测试验证服务器的规则,按照整个路由图都查了一遍,然后啥问题都没看出来,最后无意中发现问题有可能是OSX 服务器的cache service引起的。


通过防火墙日志确认一下哪些IP访问了lcdn-registration.apple.com/lcdn/register, 这个地址是Cache server在苹果注册的服务器

发现从10.3.1.101上面发送了大量的流量。这个IP是公司的一个Carper服务器。

wKiom1mMBnLBK3NxAACGnai8f8k607.jpg


登录上去,停止掉Cache Service,发现下载立刻恢复正常!


分析:Cache Service会自动在苹果的服务器注册他所在的公网IP,然后当同一个网络其他的苹果设备尝试更新软件的时候,苹果服务器会重定向请求会这个Cache Server。这个可以解释为啥新的软件不能下载,因为没有嘛,但是旧的软件有记录了,所以可以更新。