## page was renamed from DNS入門/入門 = DNS入門 = <> <> ||DNS とは属性を持つ[[/ドメイン名]]を統合・分割管理するための仕組です。|| 検索機能も含まれます。 [[DNS/ドメイン名空間]]の[[/構成]]とドメイン名を[[/検索する仕組]]との二つの視点 * ドメイン名空間を構成する要素とそれらを統合する仕組 * ドメイン名空間を検索して、利用者に情報提供する仕組 からの入門記事が必要だと考えます。 ドメイン名空間は木構造をしていると考えるのがよい。(こう書いただけで、半数は読み続けないのではないか。) DNS (Domain Name System) の基礎: 1. ドメイン名空間 2. 分散と統合 (ゾーンへの分割) 3. 検索(実装依存) https://www.rfc-editor.org/rfc/rfc1034.html 仕組は簡単だが、delegation で躓くひとは多い。運用は複雑になっている。 ---- 「教科書」をタイトルに含む本が出版された。 目次をみた範囲では入門書としてはなんとか使える部分も含まれているようだ。 入門記事を書くことはこのあたりでやめることにして、 今年2019年は[[DNS中級]]記事に重点をおくことにする。 年の瀬にDNS毒盛に関して整理が進んだような気がすることも影響しているだろう。 2019年元旦: -- ToshinoriMaeno <> ---- = DNSとは = . インターネットで名前([[DNS/ドメイン名]])を[[/共有]]するための仕組みである。(識別するための仕組みと言ってもよい。) . ドメイン名空間を[[/ゾーン]] に[[/分割]]、[[/統合管理]]する。 . ドメイン名に結合された[[/資源レコード]]を[[/検索]]する仕組みである。 DNS利用はこれらを前提になんらかの「運用」を行うことである。  基礎がゆったりとしているだけに、運用の自由度はあるが、間違いも起きやすい。-- ToshinoriMaeno <> ゾーンの管理はゾーン責任者に委ねられている。[[/登録]], [[/管理]] [[/dunning-kruger]] 参考: https://www.psychmechanics.com/2017/06/the-dunning-kruger-effect-why.html Why the incompetent think they're competent "Ignorance more frequently begets confidence than does knowledge." -Charles Darwin A warm welcome to DNS https://powerdns.org/hello-dns/ 1 teaching DNS: Library, Authoritative, Resolver https://powerdns.org/hello-dns/tdns/README.md.html 参考にならない記事: [[/リンク]] https://www.amazon.co.jp/dp/479739448X [[/DNSがよくわかる教科書]] 単行本 – 2018/11/22 株式会社日本レジストリサービス (著) 試し読み: https://r.binb.jp/epm/e1_97305_21112018155529/ == はじめに == 最初に断っておくが、DNSは[[/やさしくはない]]。それを優しく説明するだけの力は私にはない。-- ToshinoriMaeno <> 誰がどこまで勉強するのがいいか、それを判断するのも難しいのがDNSだ。  すべてのひとがすべてを勉強することなど不可能だし、時間の無駄だ。 ということで、むずかしくとも、DNS入門の題材選択はとても重要だと考えなおした。  以前は入門は自分の扱う対象だとは考えていないかった。避けていたというのが適切か。-- ToshinoriMaeno <> 入門記事で重要なこと  必要最低限の基礎的概念だけを説明することである。 RFC1034は入門記事として、よく書けている。-- ToshinoriMaeno <>    RFC 1034/1035には書かれていないことも多い。  現実のトラブルをいろいろ説明するには入門的知識では足りないが、それは入門を終えた後の話だ。 [[/反面教師]]  {{{ なんのためのDNSの勉強か。多分、自分たちを身を守るためではないか。 }}} DNSの世界には「神話(都市伝説)」が存在する。「浸透「など。  最近見かけるのは「DNSサーバーを自前運用するな」だ。 もとめられている項目(How To)は多数あるだろうが、どれにしても基礎抜きでは語れない。 DNSを勉強しないひとが言っているのなら、分からなくもない。  しかし、DNSを勉強させたくないひとがいるようだ。こっちは理解できない。   一般人は勉強しなくてもいいと言わんばかりだから。 DNSは商売にするにはパイが小さいとでも言いたいのだろうか。-- ToshinoriMaeno <> NSレコードを理解しないで、DNSを理解したと言えるのだろうか。 https://twitter.com/George_Ohashi/status/543788582859575296 {{{ 難しい問題をわかりやすく説明できる人がその問題を一番よく理解している、などと言われる。 説明する側としてはそのとおりだろう。 しかし、わかりやすい説明は専門的な説明と同等ではない。 もし本気で学びたいのであれば、難しい問題は専門的な説明のまま理解できるように自らの頭を鍛える必要がある。 }}} DNS再入門 26 May 2017 @OSC Nagoya 鈴木常彦 http://www.e-ontap.com/dns/oscnagoya2017/ (入門ではない。) -- ToshinoriMaeno <> ---- 「UDPを使ったDNSは脆弱である」を理解するまでを'''目標'''としよう。 . 実装を改良して、回避することは可能であるが、現実はそうなっていない。 {{{ TCPを使うことで回避できる。 }}} . DNSSECを使って回避することが可能な部分も存在するが、手間の割に効果が少ない。 DNSをきちんと勉強したいのであれば、 [[DNS/RFC/1034]]、[[DNS/RFC/1035]]を一通り読むのがいい。 英語版を読むためのヒントを簡単に説明する。-- ToshinoriMaeno <> DNSはなんのためにあるのだろう。分かりづらい機能(delegation)は必要なのだろうか。w 現在の技術で再設計して、実装しなおすことは無理なのだろうか。 ひとがいないというような言い訳は通らない。 -- ToshinoriMaeno <> DNSの基礎知識がないひとの相手をする時間はないということを自覚したので、 入門記事を書くことはひとまずやめる。 http://ecomputernotes.com/computernetworkingnotes/services-and-applications/what-is-dns https://amits-notes.readthedocs.io/en/latest/networking/dns.html https://www.lifewire.com/definition-of-domain-name-system-816295 ---------- 以下は書きかけの記事です。-- ToshinoriMaeno <> == 初歩の初歩 == ここではDNSを使っているという意識のないひとに対して、こういうのがDNSですよという紹介をする。   [[/初級]]につなげるための準備である。 http://tech.nikkeibp.co.jp/it/article/COLUMN/20071022/285150/zu01_02.jpg DNSはどういう場面で使われているか、を説明する。 (実際に使われている場面を体験して・知ってもらう) 一方で、どういう場面で困難を感じているのか、それをどう解決しているのか、という視点も忘れてはならない。 . DNSがどう使われるのか。-- ToshinoriMaeno <> 利用者がなにを求めているのか。それが現在提供可能かどうか。(How Toを説明しても、理解には繋がらない) webサーバーの引越(移転と言われる)を見ていると、webサーバーを引越しているだけでなく、 . ネームサーバーも引越しているものがほとんどだ。 (これはDNSという仕組みを理解しないまま、指示された手順を 実行しているのではないだろうか。) == 基礎知識 == 1. [[/ドメイン名]]と[[/ドメイン名空間]]、その役割  1. ドメイン名には属性をもたせることができる。[[/資源レコード]] 1. ドメイン名空間は[[/zone]] に[[/分割]]されて、[[/管理]] される。 1. [[DNSサーバー]]の役割(コンテンツサーバーとキャッシュサーバー/リゾルバー) 1. クライアントのための[[/コマンド]]、その動作 1. ドメイン名の[[/登録]]と[[/運用]]責任 (誕生から消滅まで) -- ToshinoriMaeno <> ---- タイトルがよくないが、DNSの基礎知識が説明されている。 「DNSの浸透待ち」は回避できる――ウェブ担当者のためのDNS基礎知識 https://internet.watch.impress.co.jp/docs/special/514853.html なぜ「DNSの浸透」は問題視されるのか  (これも釣りタイトル) http://www.geekpage.jp/blog/?id=2011/10/27/1 . 前半の説明は参考にしよう。後半は参考にするとまずそう。 == ドメイン名 == webブラウザで使う場面? そして、DNSが動く仕組みの概要を説明する。そこに現れる概念も簡単に説明する。 {{{ ドメイン名を名前解決するのに、DNSがどのように使われているかをしる。(DNSに慣れる) }}} . 資源レコードのうち、レコードタイプ A を知ること。 続く[[../初級]] ではDNSの仕組みを理解する。(名前解決の仕組み?) . いくつかの[[DNS/サーバー]]の振る舞いと[[DNS/レコード]]の全貌を理解する。 以下は初級で扱う項目 ---- https://www.google.com/search?client=ubuntu&hs=t22&channel=fs&tbm=isch&q=DNS+tree&chips=q:dns+tree,g_1:domain+name+system&sa=X&ved=0ahUKEwio8d3Mh7LbAhXGmZQKHQ3KAjwQ4lYIKCgA&biw=1270&bih=915&dpr=1 [[/JPRS説明]] JPドメイン名 https://jprs.jp/about/ [[/ドメイン名を登録する]]ことに関してはRFC1034などには規定はない。 . 現在の主流はICANNの管理するドメイン名空間だ。 DNSが安全かどうかについても簡単に触れる。([[DNS/セキュリティ]]) DDoSとか。DNSSECとかはどうするのか。 == ゾーン == NS, SOA レコード、権威サーバー、ゾーンdelegation == ネームサーバー == 権威サーバー、ゾーンデータを保持していて、問い合わせに答えるのがゾーンサーバー(あるいは権威サーバー)です。 . BINDはqueryの検査で落ちることがよくある。 共用ゾーンサービスの危険性 . ドメインの権利確認を行っていないものがほとんど。 == DNSサーバー == リゾルバー、キャッシュ、TTL . 返答とキャッシュの整合性が問題になる。特に毒盛対策に。RFC2181は毒盛対策ではない。 Googleのような共用キャシュサーバーほどういう検査をしているのだろう。 . 独自のフィルタリングもしているようだ。 == 名前解決 == [[DNS/返答]]の種類、[[DNS/否定返答]] == NSレコード == [[DNS/NS]] [[DNS/委譲]] == コマンド ==