このブログはURLが変更になりました

新しいブログはこちら→ https://matsuu.hatenablog.com/

フルサービスリゾルバのIPアドレスを調べるサービス作ってみた

DNS問い合わせで再帰的に権威サーバに問い合わせを行うリゾルバのことをフルサービスリゾルバと言いますが、フルサービスリゾルバのIPアドレスを調べるサービスが見つからなかったので作ってみました。

q.matsuu.net

q.matsuu.netにAレコードを問い合わせるとフルサービスリゾルバのIPアドレスを返します。

例えばGoogle Public DNSのフルサービスリゾルバはこんな感じ。

$ dig @8.8.8.8 q.matsuu.net. a +short
74.125.16.211

8.8.8.8やないんやね。

OpenDNSのフルサービスリゾルバはこんな感じ。

$ dig @208.67.222.222 q.matsuu.net. a +short
208.67.219.14

これまた別アドレスなんやね。

@で指定しなければ、今ご自身が利用しているDNSキャッシュサーバのフルサービスリゾルバのIPアドレスが取れるでしょう。

$ dig q.matsuu.net. a +short

q.matsuu.netの権威サーバであるaws.matsuu.netに直接問い合わせた場合、digコマンドがフルサービスリゾルバになるので自分自身のグローバルアドレスがわかりますね。やったね!

$ dig @aws.matsuu.net q.matsuu.net. a +short

aws.matsuu.netサーバはAWSシンガポールリージョンのt1.microで動作させてます。あんまりイジメないで下さい。

フルサービスリゾルバのIPアドレスを調べるメリット

特にメリットが思いつかない。興味本位。
AkamaiCDNはフルサービスリゾルバのIPアドレスから最寄りのエッジを決定しているとか昔聞きましたが、最近はそんなことないかも。

ソースコードはこちら


PerlのNet::DNS::Nameserverを使いました。Net::DNS::Nameserverのドキュメントにあるサンプルをテキトーに改造しただけ。

TODO

  • 6rdを食わせてIPv6問い合わせに対応する
  • なんかそれっぽいドメインを取得する
  • 説明ページを作る