DNSの仕組みや設定の基本を、DNSをはじめようでおさらいする

f:id:konosumi:20181029155237p:plain

BOOTHで「DNSをはじめよう ~基礎からトラブルシューティングまで~」を買いました。

mochikoastech.booth.pm

「DNSをはじめよう」は、私も出典していた技術書典4で、400部がすぐに売り切れてしまった大ヒット書籍です。

DNSの技術に加えて、ヒットの理由も気になっていたのですが、読んでみて納得しました。DNSという、縁の下の力持ちである裏方の技術を、ここまで分かりやすく解説した書籍があるのか!・・・という気分です。

いやはや、凄いです。途中から、技術を覚えるどころか感動してました(笑)。忘れないうちに、感想や知見をメモしていこうと思います。

ドメインの品質は、どこで買っても同じである

「お名前.com」や「名づけてねっと」をはじめ、ドメインをエンドユーザーに販売している業者はいくつもあります。

どこで買ったとしても、目的としての名前解決(ドメインを最終的にIPアドレスに変換する)は達成できますので、品質に差があるわけではありません。

レジストリとレジストラとリセラ

  • レジストリ: TLD(.jp, .com, .netなど)を一元管理する。レジストラにドメインを卸す。
  • レジストラ: ドメインをリセラに卸す。一般消費者に販売する。
  • リセラ: 一般消費者に販売する。

「レジストラ」は「リセラ」より上位に属します。詳しい解説は、本書をお読みください。ただ、レジストラだろうがリセラだろうが、ドメインが購入できることに変わりはありません。

レジストリはTLD(トップレベルドメイン)を一元管理しており、それによってドメインが重複してしまうといったトラブルを抑制しています。

お名前.comでドメインを買ってみる

本書では、実際に「お名前.com」でドメインを購入しています。ちなみに、私のブログ(www.konosumi.net)も、「お名前.com」でドメインを購入しています。

CNAMEが「hatenablog.com.」になっています。「www.konosumi.net」のIPアドレスは、最終的にはてなブログ側で解決される仕組みです。

$ dig www.konosumi.net
www.konosumi.net. 1644 IN CNAME hatenablog.com.
hatenablog.com.   38   IN A     13.230.115.161
hatenablog.com.   38   IN A     13.115.18.61

Whoisでドメイン情報を検索する

Whoisコマンドを使うと、ドメイン所有者の情報を調べることができます。これは、ドメインに対して何らかのトラブルがあった際に、問い合わせができるようにするためです。

$ whois www.konosumi.net
organisation: VeriSign Global Registry Services
address:      12061 Bluemont Way
address:      Reston Virginia 20190
address:      United States
〜以下、省略〜

Whoisには、ドメイン所有者の情報が掲載されます。「Whois情報公開代行」といったサービスを使うと、ドメインの販売業者側が情報公開を代行してくれます。

(注釈:記載される情報は、GMOなどのドメイン販売業者の情報に置き換わります。)

DNSキャッシュとTTL(Time To Live)

DNSの問い合わせは、世の中のインターネットアクセスの総数を考えると、膨大な量に及びます。そこで、DNSの問い合わせは一定期間キャッシュすることで、転送量を抑えています。

キャッシュには有効期間があり、それがTTL(Time To Live)です。TTLはDNSレコードで指定することが可能ですので、今後サイトの移転などを控えている場合は、短く設定するなどの工夫が可能です。

詳しい解説は、本書をお読みください。

AWSのRoute53にネームサーバを立ててみる

「お名前.com」上でドメインの情報を設定することも可能ですが、本書ではAWSのRoute53にネームサーバを立てています。

「お名前.com」のドメイン管理で、ドメインのネームサーバをRoute53に差し替えることで、実現しています。

digでドメインについて調べてみる

digは、ドメイン情報を調べるコマンドです。

当ブログ(このすみろぐ)も、digで引くとドメイン情報が出てきます。最終的には「hatenablog.com.」で解決されていることが分かります。

$ dig www.konosumi.net
www.konosumi.net. 1644 IN CNAME hatenablog.com.
hatenablog.com.   38   IN A     13.230.115.161
hatenablog.com.   38   IN A     13.115.18.61

ただ、単純に引くと表示される情報量が多すぎます。そこで、必要な情報だけを簡潔に表示する方法が、本書では提示されています。

$ dig www.konosumi.net a +short
hatenablog.com.
13.115.18.61
13.230.115.161

「dig」のコマンド自体は、SPF(TXT)レコードを設定した時の反映確認などで使うことがあるのですが。細かいオプションなどはあまり知りませんでした。

とても参考になります。

ドリル(問題)形式で理解を深める

本書が面白いなと感じた理由の一つに、ドリルがあります。読んだだけではなく、実際に問題を解いてみる事で理解を深めていきます。

さらに、適度に図解やイラストが使われているので、直感的に理解しやすい本です。

私が技術書典5で頒布した技術同人誌は、図解があまりなかったので、参考にしたいです(苦笑)。

さいごに

私のブログも、独自ドメイン(www.konosumi.net)で運用しています。インターネットや技術系のブログにしたかったので「.net」を選びました。

また、自分のドメインを持っていなくとも、どのサイトにアクセスする場合もDNSは必須の技術です。稼働しているサーバーが分からなければ、どこにHTMLを取得しに行けば良いのか分かりません。

このように、DNSは縁の下の力持ちであるにも関わらず、とても重要な役割を担っています。特に、WEBサービスの開発に携わっているエンジニアの方であれば、読んでみることをオススメします。

mochikoastech.booth.pm

ちなみに、勉強用にドメインを購入するのも良いですが。個人的には、独自ドメインでブログを始めるのがお手軽ではないかと思います。

ブログを独自ドメインにすると、ブログに愛着がわきます。その辺りは個人ブログの振り返り記事にも書いてますが、ブログの三日坊主を防ぐにはオススメです(笑)。

ドメインを学ぶ第一歩としてのブログ、ぜひどうぞ!

www.konosumi.net