今回はインフラエンジニアじゃなくてもDNSの概要やレコードの種類をまとめてみました。

※ちなみに個人で自宅DNSサーバ構築しているブログを見つけたw(3年前!?)

[bind9]自宅LAN向けDNSサーバの構築


■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 domainICANN(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はどうなっているのか

AレコードなのでホストのIPアドレスが指定されています。ちなみにAWSでRoute53のネームサーバーに切り替える手順は以下を参考に。

[AWS][DNS][Route53]ネームサーバーを切り替える前と後に確認しておくこと

■まとめ

レコード系は理解してないとドメイン移行とかするとき、わけわからんことになりますね。にしてもDNSの歴史は奥が深い。。。

参考
コンピュータネットワーク 第5版



adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください