Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
DNS のしくみと、部分的または断続的な DNS 障害をトラブルシューティングする方法を教えてください。
部分的または断続的に発生する DNS 障害をトラブルシューティングしたいです。
解決策
DNS の概要
DNS は、www.example.com などの覚えやすい名前を 192.0.2.1 などの数値の IP アドレスに変換し、ユーザーをインターネットアプリケーションにルーティングします。このプロセスを「DNS 解決」と呼びます。 詳細については、「DNS とは」を参照してください。
部分的、一時的、または断続的な DNS 障害のシナリオ
場合によっては、クライアントで DNS 障害が短期間または断続的に発生します。DNS の部分的な障害を引き起こす可能性がある一般的なシナリオには、次のものがあります。
レジストラでネームサーバーが正しく設定されていない
レジストラで 1 つ以上のネームサーバーの設定が誤っていることがあります。whois 検索では、ドメインのレジストラに設定されているネームサーバーを取得できます。DNS 解決中に、登録されたネームサーバーが応答しなかったり予期しない情報で応答した場合は、ローカルリゾルバーから SERVFAIL メッセージが返されます。一部のケースでは、ローカルリゾルバーが、設定ミスのない別のネームサーバーを使用してリクエストを試みる場合があります。この場合、リゾルバーは想定通りの DNS 応答を取得できます。
ローカルリゾルバーが間違ったネームサーバーを TTL 期間中にキャッシュし、誤って設定されたネームサーバーに次のクエリを送信する場合もあります。
ホストゾーンでネームサーバーが変更された
ドメインの NS レコードがホストゾーンで誤って設定されていると、部分的な DNS 障害が発生する場合があります。既存のネームサーバーが更新されたか、NS レコードの値に他のネームサーバーが追加された状態が該当します。リゾルバーが間違ったネームサーバーを使用してドメインを解決しようとすると、部分的な DNS 障害が発生する場合があります。
クライアントの DNS リゾルバーがドメインを解決できない
Linux における resolv.conf などのリゾルバー構成ファイルで、誤ったリゾルバーが設定されている場合があります。Amazon Virtual Private Cloud (Amazon VPC) の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにあるドメインを解決する際、その EC2 インスタンスは resolv.conf で定義されたネームサーバーを使用します。
Amazon 提供の DNS サーバーが DNS クエリをスロットリングしている
Amazon Provided DNS サーバーには、Elastic ネットワークインターフェイスごとに 1 秒あたり 1024 パケットの制限が適用されます。Amazon Provided DNS サーバーでは、この制限を超えるトラフィックはすべて拒否されます。DNS スロットリングが原因で、DNS が断続的にタイムアウトします。この問題を解決するには、インスタンスでキャッシュを有効にするか、アプリケーションの DNS 再試行タイマーを増やします。
インターネットからのドメイン URL は解決されるが、EC2 インスタンスからは解決されない
次の操作を実行した後は、ドメインに対する DNS クエリは、常にプライベートホストゾーンから解決されるようになります。
- ドメインと同じ名前のプライベートホストゾーンを作成します。
- VPC を AmazonProvidedDNS で設定したプライベートホストゾーンおよび VPC DHCP オプションに関連付けます。
ドメインに対してクエリされたレコードがプライベートホストゾーンに存在しない場合、DNS クエリは失敗します。なお、DNS クエリはパブリックドメインには転送されません。DNS レコードはパブリックドメインゾーンにあるため、インターネットからは解決されます。
Route 53 の DNS ファイアウォールルール設定が誤っている
次の条件のいずれかが、いずれかのドメインに当てはまる場合は、ドメインで Amazon Route 53 DNS ファイアウォールが設定されているかどうかを確認してください。
- インターネットで解決する
- パブリックリゾルバー (リゾルバーの IP は 1.1.1.1 または 8.8.8.8 ) 経由で解決する
- 仮想プライベートサーバー (VPS) からは解決されない
Route 53 リゾルバーエンドポイントの設定が誤っている
Route 53 リゾルバーのアウトバウンドエンドポイントとリゾルバールールは、特定の DNS クエリをオンプレミスの DNS サーバーに送信するように設定できます。Route 53 エンドポイント、リゾルバールール、オンプレミス DNS サーバーが正しく設定されていることを確認します。詳細については、「Route 53 リゾルバーのエンドポイントでの、DNS 解決に関する問題のトラブルシューティング方法を教えてください」を参照してください。
Linux ベースのオペレーティングシステムでの DNS 障害をトラブルシューティングする
dig コマンドを使用して、ホストの /etc/resolv.conf ファイルに設定されているクライアント DNS サーバーを検索します。
$ dig www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13150 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 41 IN A 54.239.17.6 ;; Query time: 1 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:43:11 2016 ;; MSG SIZE rcvd: 48
上記の例の回答セクションは、54.239.17.6 が www.amazon.com 用 HTTP サーバーの IP アドレスであることを示しています。+trace ** 変数を追加すると、dig コマンドで DNS レコードを再帰的に検索することもできます。+trace** 変数を含む dig コマンドの例を次に示します。
$ dig +trace www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> +trace www.amazon.com ;; global options: +cmd . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. ... ;; Received 508 bytes from 10.108.0.2#53(10.108.0.2) in 31 ms com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. ... ;; Received 492 bytes from 193.0.14.129#53(193.0.14.129) in 93 ms amazon.com. 172800 IN NS pdns1.ultradns.net. amazon.com. 172800 IN NS pdns6.ultradns.co.uk. ... ;; Received 289 bytes from 192.33.14.30#53(192.33.14.30) in 201 ms www.amazon.com. 900 IN NS ns-1019.awsdns-63.net. www.amazon.com. 900 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 900 IN NS ns-277.awsdns-34.com. ... ;; Received 170 bytes from 204.74.108.1#53(204.74.108.1) in 87 ms www.amazon.com. 60 IN A 54.239.26.128 www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. ... ;; Received 186 bytes from 205.251.195.251#53(205.251.195.251) in 7 ms
ネームサーバーのみを返すクエリを実行することもできます。
$ dig -t NS www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> -t NS www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48631 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN NS ;; ANSWER SECTION: www.amazon.com. 490 IN NS ns-1019.awsdns-63.net. www.amazon.com. 490 IN NS ns-1178.awsdns-19.org. www.amazon.com. 490 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 490 IN NS ns-277.awsdns-34.com. ;; Query time: 0 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:48:20 2016 ;; MSG SIZE rcvd: 170
上記の例では、www.amazon.com には次の 4 つの権威ネームサーバーがあります。
- ns-1019.awsdns-63.net
- ns-1178.awsdns-19.org
- ns-1568.awsdns-04.co.uk
- ns-277.awsdns-34.com
これらの 4 つのサーバーはいずれも、www.amazon.com のホスト名に関する問い合わせに対し、信頼された回答を提供します。dig コマンドを実行し、特定のネームサーバーを直接ターゲットにします。特定のドメインのすべての権威ネームサーバーが正しく応答するかどうかを確認します。
権威ネームサーバー の 1 つである ns-1019.awsdns-63.net に対して www.amazon.com に関するクエリを実行した場合の出力例を次に示します。サーバーからの応答は、www.amazon.com が 54.239.25.192 でアクセスできることを示しています。
$ dig www.amazon.com @ns-1019.awsdns-63.net.; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com @ns-1019.awsdns-63.net. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 60 IN A 54.239.25.192 ;; AUTHORITY SECTION: www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. www.amazon.com. 1800 IN NS ns-1568.awsdns-04.co.uk. ... ;; Query time: 7 msec ;; SERVER: 205.251.195.251#53(205.251.195.251) ;; WHEN: Fri Oct 21 21:50:00 2016 ;; MSG SIZE rcvd: 186
次の行は、ns-576.awsdns-08.net が amazon.com の権威ネームサーバーであることを示しています。
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
aa フラグが表示されていることは、ネームサーバー ns-1019.awsdns-63.net がリソースレコード www.amazon.com に対して信頼された回答を提供したことを示します。
Windows ベースのオペレーティングシステムでの DNS 障害をトラブルシューティングする
nslookup ユーティリティを使用して、ホスト名に関連付けられている IP アドレスを返します。
C:\>nslookup www.amazon.comServer: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: Name: www.amazon.com Address: 54.239.25.192
nslookup ユーティリティを使用してホスト名の権威ネームサーバーを特定するには、-type=NS フラグを使用します。
C:\>nslookup -type=NS www.amazon.comServer: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: www.amazon.com nameserver = ns-277.awsdns-34.com www.amazon.com nameserver = ns-1019.awsdns-63.net www.amazon.com nameserver = ns-1178.awsdns-19.org ...
www.amazon.com の ns-277.awsdns-34.com が www.amazon.com へのリクエストに正しく応答しているかどうかを確認するには、次の構文を使用します。
C:\>nslookup www.amazon.com ns-277.awsdns-34.comServer: UnKnown Address: 205.251.193.21 Name: www.amazon.com Address: 54.239.25.200

関連するコンテンツ
- 質問済み 7年前lg...
- 質問済み 1年前lg...
- 質問済み 5ヶ月前lg...
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前