今回はインフラエンジニアじゃなくてもDNSの概要やレコードの種類をまとめてみました。
※ちなみに個人で自宅DNSサーバ構築しているブログを見つけたw(3年前!?)
■DNS(Domain Name System)の歴史
もともとアプリケーション層が機能するためのサポートプロトコルで有名なのがDNS。かつてはマシン名とマシンのアドレスを分離するためのASCII名(アスキー)が導入されたのだが、ネットワーク自信がバイナリーアドレスしか理解できないので、ASCII文字列をネットワークアドレスに変換する機構が必要になった。
・ARPANETの時代では
https://ja.wikipedia.org/wiki/ARPANET
ARPANETの時代では単純なファイルhosts.txtがすべてのホストと対応するIPアドレスをリストし、毎晩すべてのホストが保持するサイトから取っていった。数百台のネットワークなら実用的なアプローチだったのだが、数千台の場合ヤバイのではないかと・・・
そして、ホスト名を集中的に管理しない限りホスト名の衝突が絶えず起こる。例えば国際ネットワークでは負荷と遅延の問題からホスト名を集中管理するなど考えられないので、この問題を解決したのがDNS!
■DNSのエッセンス
階層的なドメインベースの名前付け手法と分散データベースシステムの発明。
DNSは主にホスト名と電子メールの宛先をIPアドレスにマッピングするのに利用される。
DNSはRFC1034と1035で定義され、利用方法としては名前をIPアドレスに対応付けするためにパラメータとしてresolverと呼ばれるライブラリ手続きを呼び出す。resolverはUDPパケットをローカルのDNSサーバに送り、名前を探し、IPアドレスをresolverに返す。relsolverは呼び戻し元にそのIPアドレスを返す。
■DNS名前空間
top-level domainはICANN(Internet Corporation for Assigned Names ans Numbers)
と呼ばれる組織によって管理されている。一般トップレベルドメインの開始年は以下の図より。ちなみにここらへんを語るとくそ長くなるので省略しますw
■資源レコードとは
上記の図の通り種類があり、 スタードメインではこのうちA、AAAA、CNAME、TXT、MXが編集可能。
・SOAレコード
権限の開始でゾーン用のパラメータ
・Aレコード(エーレコード。AはAddressの頭文字)
IPv4のホストのアドレスで32ビット整数
(例) apple.com. A 17.149.160.49
・AAAAレコード(クワッドエーレコード)
Ipv6のホストのアドレスで128ビット整数
・MXレコード(エムエックスレコード。Mail eXchangeの略)
まさにメール用
(例) apple.com. MX(10) mail.apple.com.
(MX後のかっこ内が優先度↑ 20、30と増えるほど優先度が下がる)
※MXレコードはAレコードとセットで設定すること
・NSレコード(エヌエスレコード。Name Serverの略)
名前サーバでサブドメインの問合せ用
このドメインのことはこっちで聞いてねと丸投げする感じ。
(例) apple.com. NS ns.apple.com.
・CNAMEレコード(シーネームレコード。Canonical NAMEの略)
このドメイン名とこのドメイン名は同じだよという正規名
(例) www.apple.com. CNAME apple.com.
・PTRレコード(ピーティーアールレコード。PoinTeRの略)
Aレコードの逆。IPアドレスとは別名でポインタなんだけど、
bind9とかのゾーンファイルでIPアドレスに対応するドメイン名が書かれている行。
(例) aaa.bbb.ccc.ddd.in-addr.arpa. 86400 IN PTR ns.example.com.
・TXTレコード(テキストレコード。Textの略)
SPFレコード(Sender Policy Framework)とかSenderIDとも呼ばれ「なりすましメール」を防ぐ。
ちなみに値はASCIIなのでクソムズイ。
(例) IN TXT “v=spf1 a:example.com ~all”
■ちなみにblog.adachin.meはどうなっているのか
1 2 3 4 5 6 7 8 9 10 |
> dig blog.adachin.me +short 159.89.210.18 > dig adachin.me +short 159.89.210.18 > dig adachin.me NS +short ns3.digitalocean.com. ns2.digitalocean.com. ns1.digitalocean.com. |
AレコードなのでホストのIPアドレスが指定されています。ちなみにAWSでRoute53のネームサーバーに切り替える手順は以下を参考に。
■まとめ
レコード系は理解してないとドメイン移行とかするとき、わけわからんことになりますね。にしてもDNSの歴史は奥が深い。。。
参考
「コンピュータネットワーク 第5版」
0件のコメント