DNS
BIND
フルリゾルバと権威サーバの機能を提供する。
ドメイン名
ドット区切りで区切られたラベルという単位で構成される
右端のラベルから順に名前解決が行われる
TLD
ccTLD
国や地域ごとに割り当てられるTLD(.jp等)
gTLD
国や地域によらないTLD(.com等)
サイバースクワッティング
他人の商品を含むドメイン名を登録する等、ドメイン名を不正な目的で登録・使用すること。
キャッシュ
問い合わせ結果を一定期間保存しておくための仕組み
キャッシュの有効期限をTTLという
ネガティブキャッシュ
目的のリソースレコードが存在しなかった際に保存されるキャッシュ。
フルリゾルバから権威サーバへの無駄な問い合わせを防ぐために使用される。
リソースレコードセット(RRSet)
同一のドメイン名、クラス、タイプを持ち、データが異なるリソースレコードの集合。
ゾーンファイル
権威サーバが管理するゾーンのリソースレコードをまとめたファイル。
ゾーンカット
委任によって親子に分割されたゾーンの境目。
ゾーンカットのドメイン名をゾーン頂点と呼ぶ。
comがexample.comを委任している場合、example.comというドメイン名は、example.comゾーンのゾーン頂点になる。
ゾーン頂点に対しては、SOAリソースレコードを設定する必要がある。
ヒントファイル
フルリゾルバがはじめから持っているルートDNSサーバの一覧
プライミング
最新のルートサーバの一覧を取得する仕組み
正引き
ドメイン名からIPアドレスを参照すること。
逆引き
IPアドレスからドメイン名を参照すること。
利用者からのアクセスがあった際に、アクセス元を確認する際などに実施する。
SPF(Sender Policy Framework)
TXTレコードを利用したなりすましメール対策。
QNAME minimisation
lame delegation
IP53B
内部名
外部名
問い合わせ方法
再帰的問い合わせ
スタブリゾルバからフルリゾルバへの問い合わせ。
非再帰的問い合わせ(反復問い合わせ)
フルリゾルバから権威サーバへの問い合わせ。
パブリックDNS
1.1.1.1
Cloudflareが運用している。
DNSチェックサイト
トラフィック監視
DNSメッセージのフォーマット
問い合わせと応答で同様のフォーマットが使用される。
1. Headerセクション
2. Questionセクション
3. Answerセクション
4. Authorityセクション
5. Additionalセクション
参考
DNSがよくわかる教科書
実装
DNS Server in node.js
Small, clusterable, lightweight, api-driven dns server.
Go
systemd-resolved
Ubuntu等で採用されているスタブリゾルバ
Dnsmasq