madokaのブログ

勉強したことのoutput先として使ってます。内容はpythonがらみが多いかもです。

「DNSをはじめよう」を読んでまとめてみた

mochikoAsTechさんの書いた「DNSをはじめよう」を読んで自分なりにまとめてみました。

ドメインの取得

ドメインの伝搬

レジストリ -> レジストラ -> リセラ

この関係性からレジストラからの登録が一番信頼できる。 この書籍に載ってた事業者種類とサイトとの対応づけは下記の表の通り。

事業者種類 事業者名一覧
レジストラ お名前.com、ゴンベイドメイン
リセラ 名付けてねっと、Yahoo!ドメインムームードメインVALUE DOMAIN

レジストリの役割

TLD(top level domain)* を管理すること。1つのTLDは1レジストリによって管理されている。 同じドメインが複数存在するとルーティングができなくなってしまうので、それを引き起こさないために一つのTLDは一つのレジストリに一元管理されている。

*: TLDとは「example.co.jp」、「yahoo.com」などの一番右側 jp、comを指す。

ドメイン取得のとき

  • 色々と買わせようとしてきたりするので根気強く
  • ドメインの自動更新は早めに切っておいた方がよい
  • Whois*の登録はしなければならない

*: Whoisとはドメインの所有者の氏名、連絡先などを公開しているサービス。 何らかのトラブルがあったときにドメイン所有者同士で解決してほしいためこういうサービスが存在する。(むしろそうしないとレジストリ側の処理数がやばいことになる)

DNS

フルリゾル

ドメインに紐づくIPアドレスを調べてくるもの。 「DNSキャッシュサーバ」、「フルサービスリゾルバ」とも呼ばれる。 TLDから順に辿ってIPアドレスを取得してくる。

個人的には電話番号を解釈するときの思考に似てるなと思った。

+81 03 xxxx xxxx とあったら、+81は日本 -> 日本の03は東京 ...みたいな。

TTL (time to live)

フルリゾルバにはキャッシュがある。ドメインに紐づくIPアドレスを一回取得したら、TTLとして登録されている時間分だけその情報を残しておく。そのため、ドメインに紐づくIPアドレスが変更してすぐにそれをすぐ自分が参照したいと思ったら、自分の利用しているフルリゾルバのTTLを一時的に短くするまたはクリアするなどの必要がある。

リソースレコード

リソースレコードのタイプ 値の意味
Aレコード ドメインに紐づくIPアドレス
NSレコード ドメインのゾーンを管理するネームサーバ
MXレコード ドメインに紐づくメール受信サーバ
TXT(SPF) このドメインのメール送信元サーバ
SOA ドメインのゾーンの管理情報
CNAME このドメインの別名でのリソースレコードの参照先

コマンドで調査

whoisというコマンドを使って、ドメインに紐づくwhoisの情報を取得することができる。

$ whois ドメイン名

【 whois 】コマンド――ドメイン情報を表示する:Linux基本コマンドTips(159) - @IT

digコマンドを使ってa,ns,mx,txt,soaなどの情報を指定して取得できる。指定しなくてもドメインに紐づくIPアドレスは取得できるが情報量多めになる。

$ dig ドメイン名 [クエリタイプ]
# クエリタイプにaやnsなどをいれる
$ dig ドメイン名 [クエリタイプ] +short
# +shortをいれるとドメインに紐づくIPアドレスの一覧だけが取得できる。

【 dig 】コマンド――ドメイン名からIPアドレスを調べる:Linux基本コマンドTips(158) - @IT

迷惑メール判定について

一つ目は必須だが、二つ目は受信サーバによってはこの条件があるという感じらしい。とりあえず上記2つを満たしていれば、いまのところ迷惑メール判定はされない。

まとめ

今回はこの本を読んでDNS周りで新しく得られた知識について書きました。ここにはまとめていませんが、実際のドメインの取得方法やDNS(Route53)への登録方法など、実践的な内容も細かに説明されているので、この本があれば自分のサイトをサクサク作れそうです。次はAWSをはじめようを読み進めていく予定です!