公共DNS是如何影响CDN的

How third party DNS resolvers can impact performance
https://shaun.net/posts/how-third-party-dns-resolvers-can-impact-performance

真实的测试结果,公共DNS的确会导致CDN失效,下载速度变慢!

Akamai vs public DNS servers
https://00f.net/2012/02/22/akamai-vs-public-dns-servers/

Akamai解释为什么会这样!怎么绕过去!

ANALYZING THE PERFORMANCE IMPACT OF EDNS-CLIENT-SUBNET ON CDN
http://www.cdnetworks.com/blog/analyzing-the-performance-impact-of-edns-client-subnet-on-cdn-part-1/
http://www.cdnetworks.com/blog/analyzing-the-performance-impact-of-edns-client-subnet-on-cdn-part-2/

通过edns-client-subnet扩展,Google的DNS可以把用户的IP传给域名权威服务器!从而可以准确判断用户的来源。

可是如果使用了edns-client-subnet,那么公共DNS如何缓存?

Google DNS, OpenDNS and CDN performance 1/3
http://www.cdnplanet.com/blog/google-dns-opendns-and-cdn-performance/
http://www.cdnplanet.com/blog/which-cdns-support-edns-client-subnet/
http://www.cdnplanet.com/blog/real-world-cdn-performance-googledns-opendns-users/

如何知道用户用了公共DNS?
edns-client-subnet是如何工作的?
不是所有的CDN都支持edns-client-subnet,如何检测?

End-User Mapping: Next Generation Request Routing for Content Delivery
https://www.akamai.com/us/en/multimedia/documents/technical-publication/end-user-mapping-next-generation-request-routing-for-content-delivery-technical-publication.pdf

Akamai最新论文详尽讲述了他们是如何测量以及结果如何。

edns-client-subnet固然可以准确定位用户,同时也导致了dns查询量的巨大增加。因为本地dns不能再简单的缓存结果了,需要按照prefix进行缓存。

同时,根据用户ip而不是dns的ip来定位,也会导致更大量的数据查询。毕竟相比dns的个数,用户的个数要多得多。虽然一般edns-client-subnet只会提供/24的地址,还是很多。akamai会把这个/24进一步跟通过BGP获得的AS信息进行对应,这样就可以使得分组个数减少。

没错,akamai可以通过BGP获取整个网络的路由情况,也就是说可以根据ip判断as的归属。当然,也可以测量各个线路的延迟以及拥塞情况。

最后提到,除了使用dns,也可以通过tcp查询服务器列表或者http重定向来实现服务器分配的。 dns的好处就是无缝,而且速度快。

原文时间:2015.12