LoginSignup
5
5

More than 3 years have passed since last update.

CDN別 どこのエッジに接続しているかの判別方法

Last updated at Posted at 2019-12-28

はじめに

CDN経由でアクセスしているとき、どこのエッジに接続しているのか?と思ったことがある人も多いと思います。特にパブリックDNSリゾルバーを使っている場合、適切にエッジを選択できないケースがあるため、ちゃんと近くのエッジに接続しているか確認したくなるケースも多いと思います。
一部のCDN業者は明示的or暗黙的にエッジの地域を出力しています。ここでは代表的なCDN業者について調べてみました。

CDNごとの判別方法

CloudFront

エッジのIPv4アドレスの逆引きレコードが 空港の3レターコード+数字2桁.r.cloudfront.net という形式です。IPv6アドレスの逆引きレコードは存在しません。kix, itmなどは見たことがないので、日本のエッジはすべてnrtになり、国内での識別は枝番で行われるようです。

server-***-***-***-***.nrt53.r.cloudfront.net

Cloudflare

Cloudflareはエッジロケーションの取得方法が公開されています。
利用しているドメインルート直下に cdn-cgi/trace をつけると、エッジの情報が表示されます。colo=の後ろに 空港の3レターコード で表示されます。東京はnrt, 大阪はkixです。その他地域はステータスダッシュボードから確認できます。
Identify the Cloudflare data center serving your request
他にHTTPレスポンスのcf-rayヘッダからも確認できます。

cf-ray: 54c27032db4ba5d6-NRT

CDNetworks

CDNetworksはHTTPレスポンスのx-pxヘッダに出力しているようです。PSからはじまる文字列の末尾が3レターコードです。複数入っている場合はオリジンに近いエッジでキャッシュしてから、下流のキャッシュに配信する設定になっていると思われます。おそらく左側がエッジ側、右側がオリジン側です。この機能はAkamaiやCloudFront(オリジンがEC2, S3の場合のみ)にも搭載されています。

x-px: ms PSrbJP1am225HND,ms PSrbJP1cu59HND,ht PSxjpSIN4yt204SIN
viaヘッダにはSIN, JPなど途中経路らしき文字列が見られますが、これが何を意味するのかはよくわかりません。

via: 1.1 PSxjpSIN4yt204:0 (W), 1.1 PSrbJP1cu59:6 (W), 1.1 PSrbJP1am225:4 (W)
余談ですが、www.cdnetworks.comのx-hello-humanヘッダには求人メッセージが入っています。気になる人は見てみましょう。

Fastly

HTTPレスポンスのx-served-byヘッダに出力します。末尾が3レターコードです。Fastlyは少し特殊で、各地域にエッジが複数ある場合、それぞれ別の名前が設定されます。例えば東京には3カ所エッジがありますが、それぞれHND, NRT, TYOという名前が割り当てられています。大阪は1カ所だけでITMです。東京に第4のエッジを作る場合どうするのか気になりますね。そのほかの地域はステータスダッシュボードから確認できます。

x-served-by: cache-tyo19937-TYO

確認方法がなさそうなCDN

  • Akamai
  • EdgeCast
  • Google Cloud CDN, Google Cloud Storage

IATAの空港3レターコード一覧

Wikipediaなどを参照してください。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5