I've always wondered how the server determination of Akamai works. I thought it was interesting today to find out that Akamai decides which servers to allocate to your query based on the network location of your DNS cache.
For example, one of the more common sites on Akamai is download.microsoft.com.
If I look this up on a Global Dial connection, I get the following:
$ dig download.microsoft.com
download.microsoft.com. 2653 IN CNAME download.microsoft.com.nsatc.net.
download.microsoft.com.nsatc.net. 242 IN CNAME main.dl.ms.akadns.net.
main.dl.ms.akadns.net. 139 IN CNAME intl.dl.ms.akadns.net.
intl.dl.ms.akadns.net. 139 IN CNAME dl.ms.d4p.net.
dl.ms.d4p.net. 4808 IN CNAME dl.ms.georedirector.akadns.net.
dl.ms.georedirector.akadns.net. 2653 IN CNAME a767.ms.akamai.net.
a767.ms.akamai.net. 11 IN A 184.108.40.206
a767.ms.akamai.net. 11 IN A 220.127.116.11
Now, checking those IP addresses:
$ whois 18.104.22.168
WS/Akamai Technologies/Akamai Technologies UU-63-110-246-D6 (NET-63-110-246-0-1)
22.214.171.124 - 126.96.36.199
MCI Communications Services, Inc. d/b/a Verizon Business UUNET63 (NET-63-64-0-0-1)
188.8.131.52 - 184.108.40.206
They appear to belong to Akamai themselves and if I traceroute, it looks like they are in the US over the Verizon (alter) network:
traceroute to 220.127.116.11 (18.104.22.168), 64 hops max, 52 byte packets
1 192.168.40.1 (192.168.40.1) 4.349 ms 1.831 ms 1.355 ms
2 202-74-181-1.adsl.dynamic.globaldial.com (22.214.171.124) 27.600 ms 43.517 ms 29.403 ms
3 fastethernet-12-1-0.gw1.per1.alter.net (126.96.36.199) 28.868 ms 28.403 ms 29.271 ms
4 100.at-3-0-1.xl1.per1.alter.net (188.8.131.52) 29.494 ms 31.256 ms 30.071 ms
5 0.so-1-2-0.xt3.syd4.alter.net (184.108.40.206) 88.927 ms 101.863 ms 87.001 ms
6 0.so-1-3-0.ir1.lax12.alter.net (220.127.116.11) 424.614 ms 253.270 ms 360.704 ms
7 0.so-5-0-0.il1.lax9.alter.net (18.104.22.168) 254.962 ms 306.958 ms 307.404 ms
8 0.so-7-0-0.xl3.lax15.alter.net (22.214.171.124) 307.164 ms 255.942 ms 358.531 ms
9 tengige0-6-4-0.gw4.lax15.alter.net (126.96.36.199) 306.993 ms
tengige0-6-0-0.gw4.lax15.alter.net (188.8.131.52) 283.833 ms
tengige0-6-4-0.gw4.lax15.alter.net (184.108.40.206) 497.190 ms
10 220.127.116.11 (18.104.22.168) 255.783 ms 356.314 ms 255.090 ms
Now, as there are definitely Akamai caches in Australia, I can only assume that this choice of Akamai servers is done on the basis of Global Dial peering with Verizon.
Doing the same lookup at different ISP yields different results (all of the CNAMEs are the same though, so for the sake of brevity, I'll only show the records for a767.ms.akamai.net):
a767.ms.akamai.net. 20 IN A 22.214.171.124
a767.ms.akamai.net. 20 IN A 126.96.36.199
Both of which are iiNet IP addresses.
a767.ms.akamai.net. 1 IN A 188.8.131.52
a767.ms.akamai.net. 1 IN A 184.108.40.206
Both of which are iPrimus IPs.
a767.ms.akamai.net. 20 IN A 220.127.116.11
a767.ms.akamai.net. 20 IN A 18.104.22.168
These IPs belong to Akamai Singapore. Does Eftel peer with Optus?
So all this goes to show that by simply changing the DNS cache I use on my PC, I can drastically change where my Akamai traffic comes from.
PS. Does anyone else find it strange that quite a few ISP authoritative servers also do recursive lookups?