DNS
DNSってなんえ?
名前解決する仕組み。人間はIPアドレスは覚えられないから、分かり易い名前で管理している。昔はhostsファイルを共有で管理できたが、台数増える→管理不可。 世界全体を一台で管理も無理だから、ドメインツリーで各ゾーンごとに管理をまかせるおよび負荷分散する。
DNSリゾルバって?
良く出てくる言葉だが、要はDNSクライアントのこと(名前解決要求を出す側)。
オープンリゾルバとは、DNS名前解決を行うサーバやネットワーク機器のうち、不特定のクライアントからのDNS(Domain Name System)の問い合わせについて、最終的な答えが得られるまで繰り返し問い合わせを行う再帰的な名前解決を行い、結果を回答するDNSサーバなどのこと。
オープンリゾルバとはhttps://www.nic.ad.jp/ja/basics/terms/open-resolver.html
主なレコードタイプは?
SOA(Start Of a zone Of Authority) : ドメイン定義を宣言するレコード。ゾーン(ドメイン)情報を記載する。以下の情報が含まれる。
- ドメインのDNSサーバ名
- ドメイン管理者のメール・アドレス
- シリアル番号 : ゾーン転送時にシリアル番号を比較して(値が大きいと更新有と判断)処理を行う
- 更新間隔:ゾーンの転送間隔を指定
- 転送再試行時間:ゾーン転送に失敗した場合の再試行までの猶予時間
- レコード有効時間 : ゾーン情報を最新と確認できない場合の有効時間
- キャッシュ有効時間 : ゾーン情報のキャッシュ有効時間
@ IN SOA dns.example.com. root.example.com. (2001112701 10800 3600 604800 86400) (シリアル番号/refresh/retry/expire/TTL)
IN NS dns.xxx.labs.
A : ホストのIPアドレス
www IN A 192.168.1.10
PTR : IPアドレスに対するホスト名(逆引き用)
192.168.1.10 IN PTR www.example.com.
CNAME : ホスト名のエイリアス(別名) ※ 単一サーバで複数サービス提供の場合、1つのIPに対して複数のホスト名が必要。そしたら CNAME で記載。
www IN CNAME backup1.example.com.
MX : ドメインのメール・サーバ名
(ドメイン名) IN MX 10 mail.example.com.
HINFO : ホストの追加情報。ホストのハードウェア・ソフトウェアを記述する。 ※ これって、セキュリティ的に良くなさそう。
www IN HINFO SonyL700 Linux-Kernel2.4 WKS : ホストで実行されているサービス情報 ※ これもいらいないでしょ
TXT : ホストへのテキスト情報
www IN TXT "Please Dont Touch Me"
AAAA : クワッド・エーと読む。IPv6用のAレコード。
ルート・ネーム・サーバって?
リゾルバの種類?
- 再帰検索によって完全にDNS解決を行えるリゾルバを「フルサービス・リゾルバ(Full-Service Resolver)」と呼ぶ
- DNS要求を送るだけのDNSクライアント(多くの場合は、クライアントPC等)を「スタブ・リゾルバ(Stub Resolver)」と呼ぶ。
- また、スタブ・リゾルバ機能だけを実装しているDNSサーバを「スレーブ・サーバ(Slave Server)」と呼ぶ。
- DNS問い合わせを受け付けるが、自身では再帰検索を行わないで、別のフルサービス・リゾルバDNSサーバ「フォワーダ」と呼ぶへ検索を転送して、依頼するサーバもある。
- フォワーダ : ローカルのDNSサーバでは解決できないFQDNに対して、その名前解決を委任されるDNSサーバのこと。ローカルのDNSサーバに登録されていないDNSのゾーンに対しては、フォワーダにと相和せて、フォワードされたDNSサーバが、全名前解決を引き受けるか、ルートDNSサーバからじゅんに たどり、自力で再帰的に解決する。
フルサービス・リゾルバがキャッシュを行い、通信量を低減させている。
「外向けDNS」と「内向けDNS」とは?
いわゆる、FWを挟んで外と中のイメージ。内部DNSは本当に社内だけで利用するケースもあれば、フォワーダの指定によって検索できるようになっていればいいケースもある。
DNSの重要な概念「ゾーン」と「オーソリティ」
権限委譲とは、実はゾーン情報の管理権限を別のサーバ(サブドメインのDNSサーバ)に引き渡し、その「証」に自ドメインのゾーン情報へ記載することであり、ドメインの「信頼の連鎖」とは、ゾーンというデータの信頼連鎖である。
ダイナミックDNSとは?
動的にDNS情報を更新する仕組み。RFC2136定義。常時接続環境でWebサーバやメール・サーバを公開したいと思っても、IPSから固定IPが与えられなければ、静的DNS環境では運用がままならない。そこで大まみっくDNSを利用して動的にホスト名やドメイン名を登録しておけば、固定化されたホスト名やドメイン名で公開可能。
その他機能
ゾーンの種類
プライマリゾーン プライマリゾーンがオリジナルのゾーン情報を持つ。
セカンダリゾーン セカンダリゾーンはプライマリサーバから転送された情報を持つ。 セカンダリサーバは読み取りしかできない。 複数のセカンダリゾーンを持つことも可能。
スタブゾーン 本ライ、ゾーンの委任では、親ゾーンの管理者は、子ゾーンをホストするDNSサーバのFQDNとIPアドレスを手動で管理する必要がある。スタブゾーン利用により、この手動管理を自動ができる。スタブゾーン(子ゾーン)を管理するDNSサーバが、親ゾーンを管理するマスターとなるDNSサーバと、定期的に通信を行い、自動的にゾーンを最新に保ってくれる機能。
参考 : (http://qphelp.jugem.jp/?eid=77)
ヒント 最上位にあるDNSサーバ(ルートDNSサーバ)が記載されたファイル。hintファイルやルートヒントファイルと呼ぶ。
ROOT DNSルートサーバが保持しているルートゾーンのこと。ルートサーバはルートゾーンと呼ばれる情報を保持し、インターネット上のDNS暗いなとからの問い合わせに対して、この中から必要な情報を取り出してクライアントに回答している。
lame delegation とその原因
まず、委任(デリゲーション/delegation)は以下の条件を満たす必要がある。
- あるネームサーバAが、自身が管理するゾーンに含まれるサブドメインXについて、NSレコードと呼ばれる情報に委任先のネームサーバBを指定
- ネームサーバBが、任されたドメインXについて、Xに関する情報を保持し、問い合わせに正しく回答を行うように設定
原因は以下の通り。
ゾーンの委任元における委任に関する設定ミス →委任先のネームサーバ指定が誤っている場合、上記例で言うと、サーバXが無いのに、サーバXを指定したままの場合
ゾーンを委任されたネームサーバでの設定ミス →設定誤り、委任されたネームサーバが正しく動作していない、委任されたゾーンについて正しく回答できるように設定が行われていない場合もlame delegation になる
IPv6
IPv6 トランスポート対応にするため、named.confに下記設定を追加。
listen-on-v6 { 2001:0db8:000a::53; };
次に、AAAAレコードも追加する。また、NSレコードのAAAAを追加することになるため、上位レジストリへの登録も必要。ちなみに、逆引きはこんな感じ。
$ORIGIN 0.0.0.0.0.0.0.0.0.0.0.0.e.0.0.0.b.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. 5.2.0.0 IN PTR mx2.example.jp. 3.5.0.0 IN PTR ns2.example.jp. 0.8.0.0 IN PTR www.example.jp.
- EDNS0対応 DNSパケットのデータ長は512byte。しかし、IPv6は16byteあるため、時として必要なIPv6アドレスをDNSパケットにすべて格納しきれないことがある。こうした問題に対処するため、Extension mechanism for DNS(EDNS0)がRFC2671に定義されている。
EDNS0はDNSの拡張機能であり、利用することにより、512byteよりも大きいDNSメッセージをUPDで送受信可能になる。もともと、512byteを超える場合は、「TCPフォールバック」が働いてTCPを利用していた。TCPで512byte扱えれば EDNS いらないじゃんと思うが、DNSの実装に依存して、分割されたTCP応答を受け取ることができない事象が多かった。故に、UDPの範囲内で制限を緩和する方法が模索された。その結果がEDNSである。 ↑この人超分かり易い 参考
IP Anycast
以前、ルートサーバに対する大希望なDDos攻撃をきっかけに、ルートサーバやTLDサーバなど特に重要なサーバに対し、IP Anycast が導入された。効果は以下の通り。