class: title, smokescreen, shelf, no-footer # コンピュータネットワーク(2024-)<br><small>第07回 DNS</small> <div class=footnote> <small><small> Copyright (C) Ken'ichi Fukamachi <fukachan@fml.org>, 2021-2025. CC BY-NC-SA 4.0 </small></small> </div> --- class: compact # <small>用語集</small> <div class=footnote> <small><small> (脚注) DNSには他にも色々な属性があるのですが、それらは省略。 他の属性やDNSの動作原理等は大学院の授業のほうで、やります </small></small> </div> - DNS(発音:でぃーえぬえす) ... Domain Name Serivce/System <small> - ドメイン名とIPアドレス(+他の属性)間の対応関係を管理するしくみ </small> - ドメイン名 ... domainname <small> - 英数字と特殊文字の一部(例: "-")をドット(".")でつないだ文字列 - (右から逆方向に読むと)階層構造を表していることに注目 <br> 例: portal.mc.chitose.ac.jp </small> - 正引き <small> - ドメイン名からIPアドレスを検索する操作 </small> - 逆引き <small> - IPアドレスからドメイン名を検索する操作。正引きの逆 </small> --- class: compact # <small>IPアドレスだと覚えきれないよね?そこでドメイン名をつけます</small> <div class=footnote> <small><small> (脚注1) さすがに最重要なサーバは覚えてますね〜 たぶん覚えようとしているわけではなくて、よく使うサーバのアドレスを覚えてしまうだけですけど (脚注2) Googleが登場する以前の話です。 いまは検索してしまうのでドメイン名を覚えていなくても困らない? </small></small> </div> <small> - 演習で「210.128.53.何か」というIPアドレスが10個登場しましたが覚えてますか?ふつう覚えてないよね - 大丈夫です、プロも覚えてません - もっと覚えやすくするために<b>ドメイン名</b>というものを考えました <small> - 210.128.53.254 (にせポータル)には portal.net.fml.org というドメイン名でもアクセス出来ます - 少しは覚えやすそうでしょ? </small> </small> --- class: compact # <small>ドメイン名の例</small> <div class=footnote> <small><small> (脚注) 右側が大きい単位なのは、英語圏での住所の書き方を考えれば、自然ですよね? </small></small> </div> <small> - ドメイン名とは、英数字などを . (ドット)でつないだ文字列 - 例: portal.mc.chitose.ac.jp ... (本物のポータル) - 例: portal.net.fml.org ... (演習で使っているニセポータル) - 読み方の例: portal.mc.chitose.ac.jp を右から読むと、それっぽいです <small> - 日本(jp)の - 高等学術機関(ac = academic の冒頭部分)の - 公立千歳科学技術大学(を表す用語 = chitose) - メディアセンター(mc)(管轄の) - ポータル(portal) - <b>右側が大きい組織の単位</b>であることに注目です </small> </small> --- class: compact,img-right # <small>DNSサーバ</small> <div class=footnote> <small><small> (脚注) サーバその1の説明は省略します。 大学院の授業で、きちんと動作原理を解説します </small></small> </div>  <small> - DNSという仕組みを運用しています - 当然DNSサーバというものがあります - DNSサーバは二種類あります <small> 1. 自分のドメインの情報を世界に提供するDNSサーバ 2. 他ドメインの情報を検索するDNSサーバ(リゾルバ) </small> </small> --- class: compact,img-right # <small>正しいブラウザの動作</small> <div class=footnote> <small><small> (脚注) 10.20.30.40は説明用に選んだ適当なIPアドレスです </small></small> </div>  <small> <small> 例:http://b2902900.cloud.fml.org/ にアクセス </small> 1. ブラウザは b2902900.cloud.fml.org のIPアドレスを調べます(名前解決) - DNSサーバ(リゾルバ)に問い合わせ、(図(0)) - 10.20.30.40 と回答されました(図(0)) 1. ブラウザは10.20.30.40との間にTCPコネクション(論理的なデータ転送路)を作成します 1. ブラウザはデータ転送路の上でHTTPを使いWWWサーバとデータのやりとりをします(図(1)) </small> --- class: compact,img-right # <small>【参考】付録: DNSなどを学ぶマンガ小冊子</small> <div class=footnote> <small><small> <A HREF="https://internet.watch.impress.co.jp/docs/news/1412233.html"> internet.watch.impress.co.jp/docs/news/1412233.html </A> </small></small> </div>  <small> - JPRS(ドメイン名を管理している組織)が、 教育機関を対象に無償で配布するマンガ小冊子「ポン太のネットの大冒険 ~楽しくわかるインターネットのしくみ~」 </small> --- class: title, smokescreen, shelf, no-footer # 演習 <div class=footnote> <small><small> </small></small> </div> --- class: compact # <small>おしながき</small> <div class=footnote> <small><small> (脚注) メールを送ってあるので、データセンターの見学いくひとは入館申請フォームの入力をよろしく </small></small> </div> <small> 1. おしらせ - 出席パスワードは F8Tm 1. EL 1. ハイライト&&解説 1. 例題 1. 課題 - ポータルのレポートボックスに提出してください </small> --- class: compact # <small>【例題】</small> <div class=footnote> <small><small> (脚注1) 例題なので、一緒にやります <br> (脚注2) コマンドの解説は、コマンドリファレンス「厳選UNIXコマンド 第2版」を参照してください。 このリファレンスは、 <A HREF="https://distribution.techbooks.fml.org/">PDF</A> も印刷物も配布しています。 印刷版はH101のメディアコンサルタント席(プリンタがある隅のテーブルのところ)で配布しています。 </small></small> </div> 1. 210.128.53.254のドメイン名を調べる(逆引き) 1. portal.net.fml.orgのIPアドレスを調べる(正引き) 1. コマンド「telnet portal.net.fml.org 80」の挙動を説明する <small> - AWS Academy (vocareum)のターミナルで実行する想定です </small> --- class: compact # <small>【例題】 DNSを調べるコマンド (逆引き)</small> <div class=footnote> <small><small> (脚注1) DNS三大コマンドは nslookup host dig です。 Debianの場合はじめからhostコマンドは利用できます。 nslookupとdigはdnsutilsパッケージをインストールすると使えます。 nslookupはWindowsにもあるので覚えておくならnslookupのほうがよい?(でも素Debianのように入ってないこともある) (脚注2) DNSサーバの設定の際には〜.arpaドメインの理解が必要です(-> 大学院の授業) </small></small> </div> ``` [コマンドの使い方] host 調べたいもの [実行例] $ host 210.128.53.254 254.53.128.210.in-addr.arpa domain name pointer portal.net.fml.org. ``` <small> - 出力(最終行)の読み方 - <B>右端の`portal.net.fml.org`がドメイン名</B>(回答部分) - 左端の`254.53.128.210.in-addr.arpa`は全世界のDNS階層構造を表現したもの <small> - ここは分からなくても大丈夫です(プロ/インフラエンジニアは分からないとダメ) </small> </small> --- class: compact # <small>【例題】 DNSを調べるコマンド (正引き)</small> <div class=footnote> <small><small> </small></small> </div> ``` [コマンドの使い方] host 調べたいもの [実行例] $ host portal.net.fml.org portal.net.fml.org has address 210.128.53.254 ``` <small> - 前ページの逆をやってみます。正引き(ドメイン名 -> IPアドレス)です - 出力(最終行)の読み方 - <B>右端の`210.128.53.254`がIPアドレス</B>(回答部分) - <B>左端の`portal.net.fml.org`がドメイン名</B>(hostコマンドの引数にあった質問部分) </small> --- class: compact # <small>【例題】 portal.net.fml.orgへtelnet 80する</small> <div class=footnote> <small><small> (脚注) 第03回に、ほぼ同じ演習をやりましたね?ね? -> <A HREF="/slides/skill-network/www/#telnet">第03回のtelnet ... 80</A> <br> 参考:(サーバが異なるけれど) <A HREF="https://youtu.be/J-2saPiQJjo">telnet portal.mc.chitose.ac.jp 80する例</A>が参考になります </small></small> </div> ``` $ telnet portal.net.fml.org 80 Trying 10.20.30.40... Connected to 10.20.30.40. Escape character is '^]'. GET / HTTP/1.0 HTTP/1.0 200 OK Server: SimpleHTTP/0.6 Python/3.7.3 Date: Thu, 29 Feb 2024 23:02:03 GMT Content-type: text/html Content-Length: 23 Last-Modified: Thu, 29 Feb 2024 23:01:46 GMT welcome to my homepage Connection closed by foreign host. ``` --- class: compact # <small>【課題】</small> <div class=footnote> <small><small> (脚注) SSHについてはインターネットさんに聞いてください。 公開鍵暗号が大事なのですが、そこは本科目のテーマではないので、 公開鍵暗号うんぬんのところは書かなくて大丈夫です </small></small> </div> <small> - 問:DNSを考慮に入れた正しい手順を説明してください - ポータルのレポートボックスへ提出 1. ブラウザでhttp://portal.net.fml.org/へアクセスする 1. portal.net.fml.orgへSSHログインする </small>