CloudFrontがEDNS-Client-Subnetをサポートしたので試してみた
はじめに
Amazon CloudFrontがEDNS-Client-Subnetをサポートしました。
- Amazon CloudFront Adds EDNS-Client-Subnet Support
- Amazon Web Services ブログ: 【AWS発表】Amazon CloudFrontがパフォーマンスをより高めるEDNS-Client-Subnetをサポート
EDNS-Client-Subnetの説明については、上記のAmazon Web Servicesブログに詳しく載っていますのでここでは割愛し、どんな動きになるのか試してみた結果をお伝えします。
edns-client-subnetオプションが使えるdigをセットアップする
edns-client-subnet用のbindのパッチが公開されていますので、EC2をAmazon LinuxでLaunchし、このパッチを適用したbindをインストールします。
# yum install -y gcc patch # wget wilmer.gaa.st/edns-client-subnet/bind-9.9.3-dig-edns-client-subnet-iana.diff # wget www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/9.9.3/bind-9.9.3.tar.gz # tar xzvf bind-9.9.3.tar.gz # cp bind-9.9.3-dig-edns-client-subnet-iana.diff bind-9.9.3 # cd bind-9.9.3/ # patch -p0 < bind-9.9.3-dig-edns-client-subnet-iana.diff # ./configure --without-openssl # make # make install [/bash] <h2 id="toc-dig">digしてみる</h2> <p>name serverにGoogle DNSを指定し、<tt>+client</tt>オプションで米国のIPアドレスを付与して、cloudfrontのFQDNをdigしてみます。</p> <p>次に、日本国内のIPアドレスを<tt>+client</tt>オプションで付与してdigしてみます。</p> <p>もう一回。今度はオランダです。</p> <p>ANSWER SECTIONで戻ってきているAレコードが違うものになっています。試しに日本国内(弊社)からtracerouteで試したところ、</p> <ul> <li>日本 = 7ホップ</li> <li>オランダ = 12ホップ</li> <li>米国 = 15ホップ</li> </ul> <p>でした。確かに近いAレコードが返ってきている、と言えそうです。</p> <p>例えば、弊社の上位プロバイダのDNS経由で名前解決したときも、Google DNS(8.8.8.8)で名前解決したときも、ほぼ同様のAレコード群が返ってきます。この事からもEDNS-Client-Subnetが有効に動作していることが確認出来ます。</p> $ host dy3mycrtq15xf.cloudfront.net dy3mycrtq15xf.cloudfront.net has address 54.230.115.14 dy3mycrtq15xf.cloudfront.net has address 54.230.112.237 dy3mycrtq15xf.cloudfront.net has address 54.240.164.176 dy3mycrtq15xf.cloudfront.net has address 54.230.115.200 dy3mycrtq15xf.cloudfront.net has address 54.230.113.180 dy3mycrtq15xf.cloudfront.net has address 54.230.114.98 dy3mycrtq15xf.cloudfront.net has address 54.230.115.10 dy3mycrtq15xf.cloudfront.net has address 54.230.115.55 $ host dy3mycrtq15xf.cloudfront.net 8.8.8.8 Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: dy3mycrtq15xf.cloudfront.net has address 54.230.112.42 dy3mycrtq15xf.cloudfront.net has address 54.230.112.237 dy3mycrtq15xf.cloudfront.net has address 54.240.164.182 dy3mycrtq15xf.cloudfront.net has address 54.230.112.21 dy3mycrtq15xf.cloudfront.net has address 54.230.114.119 dy3mycrtq15xf.cloudfront.net has address 54.230.112.29 dy3mycrtq15xf.cloudfront.net has address 54.240.164.76 dy3mycrtq15xf.cloudfront.net has address 54.230.114.213
まとめ
Amazon Web Services ブログにも書いてありましたが、昨今Google DNSなどの地理的に分散されたパブリックDNSサービスを利用される方が増えています。そういった利用者を最適なエッジロケーションに誘導することが出来るようになるので、Webサイト提供者にとっても、利用者にとっても、良い機能拡張だと思います。