みなさんはドメインが実際にどのようなIPアドレスで運用されているかなど気になったことはありますか?
あまり気にする機会はないことかなと思いますが、例によって例の如く、気になったので調べてみました。
そもそもドメインとIPアドレスの関係って?
DNSサーバにCNAMEとしてIPアドレスに紐づいているのがドメインというイメージです。
日常生活でイメージすると、IPアドレスが住所で、その上に立っている家の表札に書いてある名前がドメインといったところでしょうか。
厳密には違うと思うのですが、「近所の〇〇さんのお家に回覧板届けてきて」というような言い方で、具体的な住所を知らずとも回覧板を届けることができると思うので、ざっくりそんなものと理解しておけば良いと思っています。
どうやってドメインとIPアドレスの紐付きを調べるの?
例えば、以下のようなコマンドで、google.comが実際はどのようなIPアドレスで動いているのか知ることができます。
$ dig google.com +noall +answer
; <<>> DiG 9.10.6 <<>> google.com +noall +answer
;; global options: +cmd
google.com. 300 IN A 172.217.175.14
ここで、google.comの住所は172.217.175.14であることがわかりました。
IPアドレスがわかれば、そのIPアドレスの住所などを検索することができます。
タイトルの呪文ってなんなのさ?
先ほどdigコマンドでドメインとIPアドレスの紐付きを調べましたが、これを正引きと呼びます。
逆に、IPアドレスからドメイン名を引くことを逆引きと呼びます。
この逆引きをする際にin-addr.arpaを利用します。
コマンドにすると以下のようになります。
$ dig 14.175.217.172.in-addr.arpa +noall +authority
; <<>> DiG 9.10.6 <<>> 14.175.217.172.in-addr.arpa +noall +authority
;; global options: +cmd
175.217.172.in-addr.arpa. 60 IN SOA ns1.google.com. dns-admin.google.com. 624110730 900 900 1800 60
ここで、先ほど調べた住所は172.217.175.14だったのですが、逆引きをする際には逆から順に入力していくことに注意が必要です。
というのも正引きではgoogle.comというドメインを見た時に、.comドメインにgoogle.comドメインの存在を確認しにいくような、末尾から順に上位のドメインとなっています。
この上位のドメインを管理しているDNSサーバをそのドメインの権威DNSサーバと呼ぶようです。
一方で、逆引きの場合はIPアドレスを利用するのですが、IPアドレスの先頭から上位という扱いになるので、逆順にする必要があるようです。
逆引きをした際にはコマンドに+authorityと記載しているのですが、これが権威DNSレコードの部分を表示して欲しいというオプションになります。
下の画像は、道案内をしてくれるDNSサーバを描いてもらいました。
感想
digコマンドはいつも正引きでしか使ったことがありませんでしたが、逆引きでもこのように使えるんですね。
とはいえ、IPしか知らないけどドメイン名が欲しいケースがあまり思い浮かばないので、日常では利用価値があまりないかもしれませんね。