DNS クエリは別リージョンのウェブサーバーの IP アドレスを返します。たとえば、米国のユーザーがヨーロッパにあるウェブサーバーの IP アドレスにルーティングされるような状況です。Amazon Route 53 の位置情報ルーティングに関する問題のトラブルシューティング方法と解決方法を教えてください。

Route 53 の位置情報ルーティング問題は、次のことが原因で生じることがあります。

  • お客様の位置情報ルーティング設定にデフォルトの場所がない
  • DNS リゾルバーが EDNS0 の edns-client-subnet 拡張子をサポートしないことが原因で、お客様の場所が不正確に割り出されている
  • 場所的に異なる DNS リゾルバー
  • リソースレコードの DNS の変更が、グローバルに伝達されていない

1.    お使いの Route 53 のホストゾーンのリソースレコードが、正しく構成され、デフォルトのリソースレコードセットがあることを確認してください。たとえば、AWS Route 53 コンソールから、お使いの Route 53 ホストゾーンの構成に指定されているデフォルトロケーションを確認します。

次のサンプル出力について考えます。

>> dig images.example.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> images.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51385
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;images.example.com.             IN        A

;; AUTHORITY SECTION:
images.example.com.        60    IN        SOA    ns-1875.awsdns-42.co.uk.awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 65 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Tue Feb  7 22:02:30 2017
;; MSG SIZE  rcvd: 124

ユーザーの位置情報セットアップにデフォルトロケーションがない場合、DNS リソースは rcode フィールドに NOERROR を返し、ANSWER セクションには結果はありません。これを修正するために、位置情報ルーティングセットアップにデフォルトロケーションを追加します。

2.    特定のリクエストに対し、どのリソースレコードが返されるかを判別するために、チェックツールの Route 53 テストレコードセットを使用します。詳細については、Route 53 からの DNS レスポンスのチェックを参照してください。

3.    Route 53 は EDNS0edns-client-subnet 拡張子をサポートします。recursor またはローカルのネームサーバーはクライアントのソース IP サブネット上で DNS 検索を行うために、edns-client-subnet を DNS クエリに追加します。

このデータがリクエストとともに渡されないと、Route 53 はクライアントの位置情報を見積もるために、DNS リゾルバーのソース IP アドレスを使用し、リゾルバーの位置情報の DNS レコードを付けて位置情報のクエリに応答します。EDNS データが Route 53 に渡されずに、クライアントが位置情報的に異なるリカーシブネームサーバーを使用している場合、DNS クエリに対して、誤ったリソースレコードを提供する次善の対応を行うことになります。

これを修復するためには、edns-client-subnet をサポートする DNS リカーシブサーバーに変更し、DNS の解決を実行して結果を共有します。DNS リカーシブサーバーが EDNS クライアントサブネットをサポートしない場合はサポートするもので試してみてください。たとえば、Google DNS、OpenDNS、Amazon DNS サーバーなどはサポートします。 EC2-Classic で、Amazon DNS サーバーは 172.16.0.23 にあります。EC2-VPC で、Amazon DNS サーバーは VPC ネットワークの範囲に 2 をプラスしたアドレスにあります。

4.    クライアントの DNS リゾルバーを確認し、クライアントの所在地と地理的に近いかを確認します。Route 53 は DNS クエリの送信元となる IP アドレスを反映するために resolver-identity.cloudfront.net を使用します。リゾルバーの IP アドレスを収集するために、毎分コマンドを実行するか、クローンジョブをスケジュールします。たとえば、次のいずれかを使用します。

dig resolver-identity.cloudfront.net

nslookup resolver-identity.cloudfront.net

Maxmind の GeoIP データベース (maxmind.com/en/geoip-demo) か好みの GeoIP データベースを使用して、リゾルバーによって返された IP アドレスの場所を検証し、DNS リゾルバーがクライアントの IP アドレスに近いことを確認します。

次のサンプル出力について考えます。

dig resolver-identity.cloudfront.net

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.45.amzn1 <<>> resolver-identity.cloudfront.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45073
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;resolver-identity.cloudfront.net.            IN        A

;; ANSWER SECTION:
resolver-identity.cloudfront.net.    10       IN        A    x.y.z.w
;; Query time: 11 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Tue Feb  7 22:45:00 2017
;; MSG SIZE  rcvd: 66

;; Query time: 11 msec
;; SERVER: 172.31.0.2#53(172.31.0.2)
;; WHEN: Tue Feb  7 22:45:00 2017
;; MSG SIZE  rcvd: 66

5.    好みのツール、たとえば、cachecheck.opendns.com を使用して、DNS の伝達に何か問題がないかを確認しましょう。

注: エイリアス化された位置情報のリソースレコードでは、変更内容が反映されるまで、最大 60 秒かかります。


このページは役に立ちましたか? はい | いいえ

AWS サポートナレッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2017 年 3 月 15 日