[読書録]DNSは奥が深かった

こんにちはやまぱんです。
今回この本を読んで、いままで、表面的にしかDNSを使ってなかったなと思いました。

読んだ本:DNSがよくわかる教科書

ひとことで言えば「いままで、表面的にしかDNSを使ってなかったな」と実感しました。

https://amzn.to/3QjLMdF

あらためて体系的に学ぶことは自分の理解の確認にもなるし、知らないことを知れるしでいいなと思います。
同じような方は是非よんでみてもらえたらいいなと思います。豊富な図解、そして豊富な具体的な例なども添えてくれているので(特に序盤は)読みやすいと思います。
基礎編だけでも読んでよかったなと思います、特に豊富なコラムが楽しく読めました。
*全14章あって、それぞれ基礎編、実践編、アドバンス編の3つに分かれてます。

気づき

たくさん気づきはありますし、あいまいだった理解が整理されたり、まったく知らないこともあったりしました。
ここではいくつか簡単に紹介したいと思います。

DNSが生まれる前

DNSが生まれる前は一つの団体が hosts ファイルのようなもので、レコードの情報を管理していたらしい。そして管理の限界がきてDNSが必然的に生まれた。

名前解決するのは nslook コマンドだけではない

dig コマンドは聞いたことがありましたが、そのほかにもいくつか名前解決のコマンドがありました。
そして、nslookup はどちらかというと outdated、つまり時代おくれなコマンドで情報量が少ないことが分かりました。
なので早速私は Windows に dig コマンドが使えるようにインストールしました。

dig コマンドを使うことでフルリゾルバーの動きが分かりやすいです。
下記のページは参考になります。

https://zenn.dev/tetsuya/articles/fc6621a352418f44d2ad

A レコード以外の引き方やレコードの意味

例えば yahoo.co.jp の ns レコードをひくときはこんな感じで引きことができます.
-type がない場合はAレコードがデフォルトで指定されます。

nslookup -type=ns yahoo.co.jp

  • 実行例
    PS C:\> nslookup -type=ns yahoo.co.jp
    サーバー:  UnKnown
    Address:  2400:4150:9c2:500::1
    権限のない回答:
    yahoo.co.jp     nameserver = ns12.yahoo.co.jp
    yahoo.co.jp     nameserver = ns01.yahoo.co.jp
    yahoo.co.jp     nameserver = ns02.yahoo.co.jp
    yahoo.co.jp     nameserver = ns11.yahoo.co.j
    ns11.yahoo.co.jp        internet address = 124.83.255.37
    ns12.yahoo.co.jp        internet address = 124.83.255.101
    ns01.yahoo.co.jp        internet address = 118.151.254.133
    ns02.yahoo.co.jp        internet address = 118.151.254.149

soa や txt 、AAAA レコードも同様にひくことができます。

SOA レコード

SOA レコードは Start Of Authority の略だってことを知りました。
いままで気にも止めてなかったな・・・と思いました。
ちなみに soa レコードはこんな感じ引くことができて、TTL(キャッシュ時間)などを確認することができます。

PS C:\> nslookup -type=SOA yahoo.co.jp
サーバー:  UnKnown
Address:  2400:4150:9c2:500::1

権限のない回答:
yahoo.co.jp
        primary name server = yahoo.co.jp
        responsible mail addr = postmaster.yahoo.co.jp
        serial  = 2310160025
        refresh = 1800 (30 mins)
        retry   = 900 (15 mins)
        expire  = 86400 (1 day)
        default TTL = 900 (15 mins)

権限のない回答の意味

いままでなにも気にしてなかったんですが、これはキャッシュ応答されてるときに出るという理解をしました。

再帰問い合わせと非再帰問い合わせ

再帰問い合わせ非再帰問い合わせを勘違いして理解してましたw
実際にフルリゾルバーの動きを体験するパートがあって理解が深まりました。
気になる人は是非読んでみてください。

名前解決の登場人物

あらためて、こんな感じで名前解決が行われてることが整理できました。
特に用語がごちゃごちゃになって理解してたりしてる部分があったなと。
フルリゾルバーや権威DNSの別名多すぎじゃないです。
DNSサーバーだけだと何かむしろわからないな。

クライアント端末(スタブリゾルバー) → (*再帰的問い合わせ ) → DNSフォワーダー/DNSプロキシー(ホームルーターなど) → (*再帰的問い合わせ ) → フルリゾルバー/ネームサーバー/キャッシュDNSサーバ (プライマリ / セカンダリ) → (*非再帰的問い合わせ) → 権威DNS/コンテンツDNSサーバ

セキュリティ的な話

DNSに関連した攻撃やその対抗策など、この分野は業務で全く触れたことがない部分だったのですべてが新鮮でした。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする