## page was renamed from DNS入門 <> <> ---- = まえがき = このtweetを見て、「DNS入門」にふさわしい本があるかを考えたが、見当たらない。  https://twitter.com/ttakimoto/status/986997059394797568 「DNS入門」が[[/想定する読者]]とは:   実はそれがはっきりしない。-- ToshinoriMaeno <> 本当に入門書が必要なのだろうか。  なんのための入門書なのか。 webページを作りたいひとが知っておくべきDNSの知識なのか。 次の世代がDNSで困らないために、基盤技術をささえる技術者を養成する必要もある。  今のDNSは滅びへの道を進んでいるように思える。そのことを理解するためにもDNSの勉強は必要になる。 {{{ DNSの基本的知識を解説することにした。 -- ToshinoriMaeno <> }}}  高校卒業程度を想定するか、高校生を想定するか。(どっちのことも分っていない。w) [[../DNSの学び方]] DNS用語の辞書も必要かもしれない。(検索では品質がバラバラ) [[DNS/索引]] . [[/初級]]は分かっていると思うなら、[[DNSの基礎]]や [[DNS/索引]]を見てください。 [[/電話帳のたとえ]] [[/リゾルバー]] あるいは[[/キャッシュサーバー]] [[/web製作者のためのDNS入門]] が求められているのだろう。 [[/運用入門]] は中級へ進んでから。 そうそうDNSの管理にはドメイン名の管理(登録)も含めないといけない。ICANN, ccTLD, レジストリ、レジストラ、   RFC1034が書かれたときにはICANNとかレジストリとかは成立していなかっただろうから。 == 入門書が求められているのか == 多くのひとが求めているのは、目の前でおきたトラブルに対処する方法であって、DNSを理解したいわけではないのだろう。  「浸透いうな」と言われても、待たないと解決しないように見えるトラブルとか。How to もの。[[/よくあるトラブル]] [[/webサーバー移転のDNS対応]] あたりか。 今であれば、「DNSブロッキング」とはなにか、の解説だろう。(これが入門だとはおまわない)-- ToshinoriMaeno <> BINDの設定本とか、Cook Book, JPRSの実践DNSなどもその方向に思える。   自分が書いてみたいのは、RFC1034の解説とか、間違った設定の理由(説明)だと思う。  そういうものに興味を持つひとがいるだろうか。-- ToshinoriMaeno <> ---- '''警告''':DNSは 1. 生まれつきの脆弱性を抱えている。 1. あなたが期待するほどには''便利な道具ではない''。 . 期待するようには動作しないでしょう。 1. きちんと使わないと''危険な道具です''。 1. これらを理解するにも''時間と忍耐が必要です''。 DNS入門に欠けているもの: セキュリティへの配慮  権威サーバーからの返答に含まれる毒とか、ニセ返答による毒盛とか。 = DNS入門 = == DNSの概要 == DNSは[[/ドメイン名]]をキーにした[[DNS/1/資源レコード]]の集まりを分散して管理・操作・検索するためのシステムです。  そして、分散管理されている[[/ゾーン]]を統合するためのシステムです。 動かすことが可能かどうかも分からない時代の作品なので、 セキュリティについてはまったく配慮されていませんでした。 {{{ DNSがどのように動作しているかを知ることが大切です。 }}} 1. ドメイン名 (構成、階層構造) 2. ドメイン名空間の分割管理 権威サーバーの動作 3. DNSレコードの検索 リゾルバーの動作 4. DNSメッセージ DNS query, response == ドメイン名 == === ドメイン名は階層になっている === 名前の唯一性を実現するために木構造の階層構造になっています。 木構造のノード(末端を含む)は名前を持ちます。   さらに、資源レコードを持つことがあります。 === 資源レコードは分散している === 分散管理の仕組みを理解することは避けて通れません。 === ゾーン === 資源レコードの集まり(部分集合)である「ゾーン」を管理するのが、[[/ゾーンサーバー]](権威サーバー)です。  どれかのゾーンサーバーのなかから、必要な資源レコードを探すのが[[/リゾルバー]](の仕事)です。 {{{ [警告] 日本語が不自由で、論理的な思考も困難な方はこの先を読むのは無駄です。 }}} twitterで beyondDNSをフォローして、質問してみてください。 「画像文明」という小説があったのを思い出した。 . '''いらすとや'''の''いらすと''を使って、なにか伝えられないか。 基本的な姿勢: {{{ 分かりやすいと思える説明だけを読んで、分かった気になって、それ以上は考えない。 だとすると、それは危険な状態です。 きちんと理解するきっかけにするのであれば、「分かり易い説明」にも意味があるでしょう。 「分かった気にさせる」だけなら害になります。 }}} 警告: きちんとした手順を踏んで、検索しないと、偽情報(毒)をつかむことになります。 == 分散管理 == == DNSレコード検索 == == DNSメッセージ == == DNSはむずかしい == 分かりやすいDNSの説明があるとすれば、 . 「DNSは難しい」ということを「分かりやすく」説明しているものでしょう。 それが分かるなら、[[DNSの基礎]]コースを勉強してください。 {{{ DNSを使いこなすのはむずかしい。 }}} これが分かりやすいか。正しいか、読んでみるのもいい。(古い) -- ToshinoriMaeno <> http://www.atmarkit.co.jp/ait/articles/0112/18/news001.html = クラス分け = 以下のように分けています。項目は検討中です。 . [[/導入]], [[/入門]], [[/初級]] DNS入門に続くのは[[DNSの基礎]]です。上級は考慮中ですが、多分、私には無理です。 -- ToshinoriMaeno <> == 入門コース == Domain Name Systemは [[DNS/1/ドメイン名]]についての情報([[/ドメイン名空間]])を共有(広域、分散管理)するための [[/仕組み]]です。 DNSはどう使われているか。どんな役にたつか。([[DNSの基礎/DNSとは]] : [[/初級/分散管理]], [[/名前解決]] あるいは[[/検索してみよう]] [[/演習]] [[/参考tweet]] == 初級 == DNSメッセージを理解しよう。 [[DNS/1/資源レコード]] のうち [[DNS/1/資源レコード/A]] レコードは入門でも扱わないとまずそう。 ---- 「30分で学ぶDNSの基礎の基礎」 (という嘘の説明;騙されてください)[[/基礎の基礎]] . http://2014.seccon.jp/dns/dns_basics_in_30minutes.pdf (10分で分かるGhost Domain Names脆弱性と同じ筆者)w == DNS を信用するな == 実験として提案され、実験的に実装されたものを、 「運用でカバー」してきたのがDNSです。(悪用しようとするひとはいないという時代の実験) 「運用でカバー」できるだけの人が育ってこなかった。育てなかった。育てる必要性を見抜けなかった。 実験システムから実用可能なシステムへ移れるだろうか。 [[/背景]] [[DNS/毒盛]] DNSの入門を勉強しなければならないのは誰か。 . インターネットを使うひとは全員と言いたいところだが、使うという意識では無理だろう。 かつてのように参加しているという意識はないのだろうから。 JPRSには[[未熟なDNS]]とまで言われている。そんなものをただの利用者に使わせるのか。 . より安全にDNSを利用する方法の解説が急務だろう。 -- ToshinoriMaeno <> DNSSECによる保護が有効なのは、DNSSECを設定しているゾーン(ドメイン)に対してだけである。 . リゾルバーがDNSSEC対応していなければならないことは言うまでもない。 == 背景 == DNSとはDomain Name System (RFC 1034, 1035 など) のことである。[[DNS/RFC]] [[DNS入門/森下2012|DNS Summerdays 2012 の 「DNS入門]]」が名前に過ぎた難しい内容なので、 やさしい入門の項目を考えて見た。(森下版は添付ファイル参照) 内容はこれから吟味する。 [[/運用がいちばん重要]] だが、とても危険な状態のキャッシュサーバの理解も重要だ。 [[DNS/毒盛再考]] ここを見直しても委譲(委任)の説明が抜けている。 -- ToshinoriMaeno <> . DNS空間の説明を省いたせいか。  [[DNS/毒盛再考]] == どのコースにするか == まずはこのあたりを見て、自己評価してもらえるといいかもしれない。 [[DNS/理解度を自己評価してみる]] -- [[DNS/誤解集]] -- [[DNS/基礎知識]] [[DNSの基礎]] ----- == web を見るまで == ブラウザで https://moin.qmail.jp を見るまでのDNSに関係する働きを題材にして、 . どの段階で扱うかを考えてみる。 * インターネット上の通信ではIPアドレスを使って通信相手を識別する。(パケットによる通信とかは省略) . 人間にはIPアドレスは使いづらい。人間はドメイン名を使い、DNSを利用して、IPアドレスを管理する。 * [[/ドメイン名]](空間)についての説明 . moin.qmail.jp というドメイン名がどういう形式と意味をもつか。(構造) . [[/ドメイン名空間]]全体の話、DNSがなかったころはどうしていたかにも少し触れる。 * moin.qmail.jp の IPアドレスつまりA [[/レコードの探しかた]] . ブラウザなどは(外部または同一ホスト上の)[[/リゾルバー]](キャッシュサーバ)に問い合わせる。 . [[DNS /キャッシュサーバ]]はDNS[[/ゾーンサーバ]](実際は分散データベース)に問い合わせる。 . これらの問い合わせかたには違いがある。[問い合わせの道具、演習問題] . 目的のデータ(分散管理されている)をどう探すか。探せた結果をどう使うか。 * DNS サーバと言う呼び方は間違い。以下のように機能に分かれている。 . コンテンツサーバとリゾルバー(キャッシュサーバー)は区別しよう。 * [[/ゾーンサーバ]](分散データベース)の仕組みの説明 (一番重要で、難しい部分です。) . NSレコードによる delegation([[/委譲]]、委任)、DNSツリーのゾーンへの分割、[[/ゾーンの管理]] 委譲されなくても、データは存在するし、使うことも可能である。 [[DNS/グルーレコード]] . [[DNS/IW2012/ランチセミナー]] も前半は参考になる。 * [[/リゾルバー]]または[[/キャッシュサーバ]]の振る舞いの説明 . 原則として、ルートからたどる。TTL時間はキャッシュしてよい。 = DNS 管理入門 = この辺からはDNSレコード設定者つまり管理者向けです。[[/中級]]の話題です。  分けるべきですね。 == 想定読者はDNS管理者とする == DNS入門講座の範囲: まずはDNSレコード管理者を読者としよう。[[DNS/1/資源レコード]] . [[DNS/RFC1034]], [[DNS/RFC1035]] などを読みとくためのてほどきとなることを目標にする。 web セキュリティ分野のひとにも理解してもらえればと思っている。 . [[DNS/セキュリティ勉強会]] もどうぞ。 どういう内容を知りたいか、以下に希望を書いていただけますか。 . .. ---- 6. [[/ドメインの取得]]ということの意味(レジストラの役割など) . ドメインの失効、実質的乗っ取り (visa.co.jp) . http://www.itmedia.co.jp/enterprise/articles/0508/12/news002.html 6. コンテンツサーバー(ゾーンサーバ)とキャッシュサーバーの区別 6. 権威サーバを動かす上で注意すべきこと (内部名、TTL) . キャッシュは分ける。サーバの二重化 . [[DNS/djbdns/DNSキャッシュをDNSサーバから分離することの重要性]] 6. [[DNS/1/資源レコード]] 解説 . CNAME, MX なども。 6. UDP と [[DNS/TCP|TCP]] 6. [[DNS/security|DNSセキュリティ]](UDPに起因する脆弱性) [[DNS/セキュリティ]] . キャッシュサーバへの毒盛の歴史, Kaminsky 型攻撃とport 固定の危険性 6. [[DNS/RFC|RFC]] . DNS と BINDの歴史など、DJBの戦い この程度でもどれくらい時間がかかるか。一日(10時間) でも厳しいかも。 . 基本的に誰かの話を聞くだけではダメということ。 djbdns を使ってみることができるといいのだが。 -- ToshinoriMaeno <> [[/中級]] [[DNS/索引]] [[DNS/基礎知識]] [[DNS/用語]] == その他の話題 == 1. 逆引き 1. DNSSEC 1. トリビアなど http://www.slideshare.net/OrangeMorishita/20111029-part2dns == 感想 == インターネット上ではもっとも重要なサービスでありながら、 まったく理解されていないといえるサービス コメントをお願いします。 == 参考リンク == [[/bookmark]]