パブリック DNS リゾルバーが EDNS Client Subnet (ECS) 拡張機能をサポートしているかどうかを確認するには、どうすればよいですか?

所要時間2分
0

Amazon Route 53 で地理的近接性、位置情報、レイテンシーをベースとしたルーティングポリシーを使用しています。パブリック DNS リゾルバーの IP アドレスを見つけ、そのアドレスが EDNS Client Subnet (ECS) 拡張機能をサポートしているかどうかを確認する必要があります。

解決方法

特定の DNS レコードセットを使用して DNS リゾルバーのパブリック IP アドレスを見つけ、EDNS Client Subnet 拡張機能に対するサポートを確認する

次の DNS レコードセットをクエリして、DNS リゾルバーの IP アドレスを含む出力を取得します。出力には、EDNS Client Subnet 拡張機能の詳細も含まれます (リゾルバーがサポートしている場合)。

**注意:**Windows を使用している場合は、nslookup を使用してこれらのコマンドを実行できます。

1.    「o-o.myaddr.l.google.com」TXT レコードセットを使用します。

$ dig +nocl TXT o-o.myaddr.l.google.com +short
$ dig +nocl TXT o-o.myaddr.l.google.com @Resolver-IP +short

EDNS Client Subnet 拡張機能がサポートされていない場合、出力は以下のようになります。

"203.201.60.5"

この例では、出力は、IP アドレス 203.201.60.5 のリゾルバーが EDNS Client Subnet 拡張機能をサポートしていないことを示しています。

EDNS Client Subnet 拡張機能がサポートされている場合、出力は以下のようになります。

"172.253.220.1"
"edns0-client-subnet 27.34.254.0/24"

この例では、出力は、IP アドレス 172.253.220.1 のリゾルバーが EDNS Client Subnet 拡張機能をサポートしていることを示しています。クライアントサブネット 27.34.254.0/24 情報が権威ネームサーバーに送信されます。

DIG 9.9.3 以降を使用している場合は、dig を使用してクライアントサブネットを渡すこともできます。

$ dig +nocl TXT o-o.myaddr.l.google.com @8.8.8.8 +subnet=35.163.158.0/24 +short
"74.125.18.67"
"edns0-client-subnet 35.163.158.0/24"

この例では、最初の行は DNS リゾルバーの IP アドレスを示しています。2 行目は、権威ネームサーバーに渡される値である**「edns0-client-subnet」**を提供します。

2.    「resolver-identity.cloudfront.net」レコードセットを使用します。
注意: 返されるのは DNS リゾルバーのパブリック IP アドレスのみです。

$ dig resolver-identity.cloudfront.net +short
203.201.60.5

この例では、203.201.60.5 が再帰的なリゾルバーの IP アドレスです。

3.    「rs.dns-oarc.net」TXT レコードセットを使用します。
注意: 返されるのは DNS リゾルバーのパブリック IP アドレスのみです。

$ dig +short rs.dns-oarc.net txt @8.8.8.8
rst.x4050.rs.dns-oarc.net.
rst.x4058.x4050.rs.dns-oarc.net.
rst.x4064.x4058.x4050.rs.dns-oarc.net.
"172.217.34.197 DNS reply size limit is at least 4064"
"172.217.34.197 sent EDNS buffer size 4096"

この例では、172.217.34.197 が Anycast リゾルバー (8.8.8.8) のパブリック IP アドレスです。

注意: 8.8.8.8 などの Anycast DNS サービスの場合、リゾルバーの IP アドレスが変更されます。この場合、「for loop」を使用して、各場所で再帰的なリゾルバーによって使用されるパブリック IP アドレスのリストを取得します。

for i in {1..10}; do dig +short resolver-identity.cloudfront.net @8.8.8.8; sleep 11; done; 
172.217.38.5
172.217.34.195
172.253.244.3
172.217.34.69

この例では、Anycast DNS サービス 8.8.8.8 は異なるパブリック IP アドレスを使用して権威ネームサーバーに接続しました。

Route 53 DNS クエリログを分析して EDNS Client Subnet 拡張機能に対するサポートを確認する

パブリック DNS クエリロギングを使用して、DNS リゾルバー IP アドレスを検索します。さらに、ロギングは DNS クエリで Route 53 ネームサーバーに渡される EDNS クライアントサブネット情報を提供します。

EDNS Client Subnet 拡張機能がサポートされている場合、出力はこのようになります。

1.0 2020-05-10T10:39:49Z Z07163611M5WTAAAAA5F8 testwebsite.com A NOERROR UDP IAD79-C1 172.253.214.14 35.173.125.0/24

この例では、クライアントマシンのネットワーク (35.173.125.0/24) が出力に含まれています。ネットワークが含まれている理由は、Route 53 に DNS クエリを転送するリゾルバーが EDNS Client Subnet 拡張機能をサポートしているためです。クエリはリゾルバー IP アドレス 172.253.214.14 から送信されました。

EDNS Client Subnet 拡張機能がサポートされていない場合、出力は以下のようになります。

1.0 2020-05-10T10:39:34Z Z07163611M5WTAAAAA5F8 testwebsite.com A NOERROR UDP IAD79-C1 35.170.83.67 -

リゾルバー IP アドレス 35.170.83.67 が出力に含まれます。ただし、10 番目のフィールドの「-」で示されているように、クライアントサブネット情報は渡されません。


関連情報

Amazon Route 53 が EDNS0 を使用してユーザーの場所を推定する方法

Route 53 からの DNS 応答の確認

Route 53 で発生する位置情報のルーティングに関する問題をトラブルシューティングするにはどうすればよいですか?

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ