「DNSがよくわかる教科書」を読んで

こんにちは、はてなブログ初投稿です!

これから頑張ってブログ書いていきたいと思いますのでよろしくお願いします!

いきなり私ごとで恐縮ですが、先日インフラエンジニアになりました。

インフラエンジニアとしてDNSの仕組みを理解していないのはまずいと思いこの書籍を手に取り、無事読み終えることができましたので書評を書いてみたいと思います。

DNSがよくわかる教科書

DNSがよくわかる教科書

目次

  1. DNSが作られた背景
  2. ドメイン名の登録管理の仕組みと管理体制
  3. DNSの名前解決
  4. DNSの構成要素と具体的な動作
  5. 自分のドメイン名を設計する
  6. 自分のドメイン名を管理する~権威サーバーの設定~
  7. 名前解決サービスを提供する~フルリゾルバーの設定~
  8. DNSの動作確認
  9. DNSに対するサイバー攻撃とその対策
  10. よりよいDNS運用のために
  11. DNSの設定・運用に関するノウハウ
  12. 権威サーバーの移行(DNSの引っ越し)
  13. DNSSECの仕組み
  14. DNSにおけるプライバシーの概要と実装状況

本の構成

この本は3部で構成されており、1〜4章が【基礎編】、5〜10章が【実践編】、11〜14章が【アドバンス編】となっています。 それぞれどんなことが書いてあるか紹介していきます。

基礎編

基礎編では、DNSとは?と聞かれたときにざっくり説明できるよう、DNSに関係する概念がまとめられています。個人的に【基礎編】をざっくりと前半・後半に分けてみます。

前半は、DNSが作られた背景から始まり、DNSの仕組みを語る上で欠かせない「階層化」と「委任」について書かれています。そして、ドメイン名が誰によって管理されているのかをレジストリレジストラの説明と共に解説されています。

後半は、DNSの重要機能である名前解決の仕組みや動作を説明しています。余談ですが個人的にここの説明で分かりやすいなと思ったポイントは、情報が欲しいAさん、情報が欲しい人から依頼を受けて名前解決をするXさん、情報を提供するネームサーバーのように役割を説明した抽象的な言葉と図で名前解決の動作を説明したあと、これら3種類が役割もそのままスタブリゾルバ・フルリゾルバ・権威サーバという用語に置き換えられ、それぞれの具体的な説明に入るところです。一度名前解決の動作だけ覚えて、そのあと構成要素の説明に入っていくさまがとても自然で覚えやすかったです。

実践編

実践編では、基礎編で紹介したDNSの概要を掘り下げてより深く理解していきます。個人的に【実践編】をざっくりと3つに分けると、DNSの仕組みの詳細、digに代表されるDNSに関するコマンドの使い方、DNSを対象とするもしくは利用した攻撃と対策になります。

1つめのDNSの仕組みの詳細は、example社という架空の会社のインフラエンジニアになりきって会社のDNS設定を行うという流れでリソースレコードの種類や意味、ゾーンの説明などがされます。つまり権威側の説明ですね。もちろんこの例とは別でフルリゾルバの重要性なども説明されています。

2つめのコマンドの使い方では、主にdigコマンドの使い方を説明しています。今までのDNSの説明を実際にコマンドを叩いて理解する感じです。ここでもdigコマンド自身になりきって、再帰的な問い合わせを説明しているところがありとても分かりやすいです。なりきるのがうまい書籍ですね笑 インフラや開発問わず現場ではよく使うコマンドだと思うので、理解していて損はないと思います。個人的にもこの本を読んでdigコマンドを理解できたのが一番よかったなと感じています。

3つめのDNSに関する攻撃と対策では、いくつかある攻撃を攻撃対象と攻撃方法で分類しそれぞれの攻撃についての詳細と対策が説明されています。今までの章で読んできた内容をおさえていれば、ここも理解できると思います。

アドバンス編

アドバンス編では、DNSを運用する上でのノウハウやよくあるトラブルが紹介され、ホスティング事業者の移行に伴うDNS引っ越しの手順や注意点などの説明、キャッシュポイズニング対策となるDNSSECの説明などが書いてあります。【アドバンス編】では、実際の業務ベースでのよくある話が書いてありました。余談ですが、DNSSECについてPKI(公開鍵暗号基盤)とそっくりな仕組みなのでPKIの理解がある人はすんなり理解できるかもしれません。

まとめ

  • DNSがよくわかる教科書」を読んだ
  • 書籍の流れが「抽象から具体」へ説明がされていてとても読みやすく体系的にDNSを理解できました
  • これ1冊でDNSの基礎が分かるので、DNS初心者におすすめです。また、なんとなくDNSを知ってる・今一度復習したいという方にもおすすめできます