蛋疼的 AKAMAI 和苹果的 CDN

Update:

  1. Akamai 13年底已经支持 edns-client-subnet,不过只暂时支持 OpenDNS 的 DNS 貌似;
  2. 苹果的 CDN 有国内的拉,不过特么不靠谱就是了。。抽风

最近家里的网络升级到20M,下载东西快了,以前每次下iOS固件和Xcode都很痛苦,往往都得等1-2小时。现在速度快了,大概最快能到3.5MB/s的样子,这样下东西也不敢走VIG代理,因为VIG的带宽实在太贵,所以我只能在路由器上做dnsmasq的手脚从本地下。

为什么说 Akamai 傻逼呢?全世界最大的CDN它既不支持edns-client-subnet,它只会傻乎乎的从访问者的DNS服务器判断地理位置,支持 edns-client-subnet 的 CDN 和 DNS、或者不以解析服务器为准的CDN就能从访问者的请求IP判断实际地理位置给出最快最近的的服务器。

不幸的是苹果用的就是 Akamai,你随意改 DNS 往往会让你下载 itunes、app、podcast 等变得贼慢,但实际在国内你怎么改也一样,因为国内没有这些下载的CDN,所以大家纷纷各显神通,改港台之类的CDN达到最快的下载速度。

但其实,苹果的系统升级下载,固件下载和支持下载国内是有CDN的,速度也很快,如果你把apple.com改成了港台DNS,你马上失去了下载这些东西最快的线路。

所以,最简单的办法是创建几个 /etc/resolver/ 例外,不用取搞麻烦的dnsmasq,例如:

sudo mkdir /etc/resolver/
sudo bash -c "cat > /etc/resolver/apple.com" << EOF
nameserver 168.95.1.1
nameserver 168.95.192.1
EOF

这个命令让你的系统解析苹果的app下载从比较快的台湾CDN下载,够简单,小白也会。

依此,把国内有CDN的 appldnld.apple.com supportdownload.apple.com swcdn.apple.com 这三个域名用本地ISP DNS做例外,速度能达到几MB+。