インターネッツの繋がるしくみ(dns編) #sa_study
TRANSCRIPT
インターネッツの繋がるしくみ
( DNS 編)
スタジオ アルカナ 吉田 紳一郎・2016/04/07( 木 )
SA Study #6
(免責事項)全体を通して悪ふざけが
混じっているように感じる方もいるかもしれませんが意識は低めでお願いします
(免責事項)DNS と HTTP についてお話しする
予定でしたが準備時間の不足の影響で DNS の話のみとなりますが
どうかお許しくださいますようご理解ご協力をお願い申しあげます
前回の勉強会のおさらい
http://www.slideshare.net/yossy222/tcpip-sastudy
Web ブラウザ
Web サーバー
なにかすごそうなもの
Web ブラウザ
Web サーバー
こんな仕組みで繋がっていたのです
LAN ケーブル 無線 LAN 電波
Ethernet
IP
TCP
データリンク層
ネットワーク層
トランスポート層
アプリケーション層
インターネッツの繋がるしくみ( TCP/IP 編)
物理層
プレゼンテーション層
セッション層
インターネッツの繋がるしくみ( DNS 編)
今日はここ
インターネッツの繋がるしくみ(物理層編)
インターネッツのコンピュータがIP アドレスを頼りにして
繋がる仕組みはなんとなくわかりました。
あ、
ハッシュタグは
#sa_studyらしいです
で、ブラウザに入力する URL って
IP アドレスじゃなくてドメイン名を入力するけど、どうなっているんだろう?
“DNS”( Domain Name System )
という仕組みがそれを実現しているのだけど、
その前に…
“Hosts ファイル”について触れてみましょう。
インターネットはDARPA( アメリカ国防高等研究計画局 )
で生まれた技術。
という話を前回しました。
インターネットはDARPA で研究開発されたARPAnet という技術が起源になっています。
まだ TCP/IP もない時代です。
IP アドレスは数字の羅列。だから、人間には理解しにくい。
人間にわかりやすい名前でコンピュータに接続したい。
なので、ホスト名と IP アドレスの対応を
記述したファイルを用意することで解決していました。
そして、それを全ての端末に配布していました。
“HOSTS.TXT”
127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev
こんなかんじ。
“HOSTS.TXT”
127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev
これを全端末に配布していた。
“HOSTS.TXT”
127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev
/etc/hosts ファイルはこれの名残りなのです。
でも、全ての端末に配布するなんて
めんどくさい!
そこで“DNS”
( Domain Name System )
Hosts ファイルで管理していたホスト名と IP アドレスの対応を
ネームサーバーに集約。
各コンピューターは、ネームサーバーに問い合わせを
することでホスト名と IP アドレスの対応を
知ることができる。
パソコンネームサーバー
127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev
① vccw1.dev の IP アドレス教えてください!
② 192.168.22.10 だが!
でも、一つのネームサーバーだけだと
数が増えると負荷に耐えられない
なので、DNS ではサーバーを分散できる
仕組みになっています
具体的にどういう仕組み?
DNS では、ホスト名が“ .” で区切られた階層構造になっています。
www.s-arcana.co.jp
この区切られた階層ごとにネームサーバーを用意することで処理の分散が実現されています。
www.s-arcana.co.jp
それぞれネームサーバーがある。
具体的にどういうことかというと…
最上位にルートサーバーというネームサーバーがあります。
これは世界に 13 システム存在します。
ルートサーバー
ルートサーバーでは、com ドメインや jp ドメインのようなトップレベルドメインを管理しているネームサーバーの一覧を持っています
ルートサーバー
com ドメインネームサーバー
jp ドメインネームサーバー
Jp ドメインサーバーでは、co ドメインや ne ドメインのような
さらに下位のドメインを管理しているネームサーバーの一覧を持っています
com ドメインネームサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
ne ドメインネームサーバー
ルートサーバー
com ドメインネームサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
ne ドメインネームサーバー
s-arcana ドメインネームサーバー
このように、ドメインと呼ばれる単位の階層構造を取り入れることで
データ分散されるようになっています
じゃあ、実際にどういう流れでドメイン名を
問い合わせているの?
「 DNS サーバに問い合わせを行うためのサーバ」
を用意して、そのサーバーを指定します
C:\Users\s.yoshida>ipconfig /all
Wireless LAN adapter ワイヤレス ネットワーク接続 :
接続固有の DNS サフィックス . . . : 説明 . . . . . . . . . . . . . . . : Broadcom 802.11n ネットワーク アダプタ 物理アドレス . . . . . . . . . . . : B8-F6-B1-10-A1-93 DHCP 有効 . . . . . . . . . . . . : はい 自動構成有効 . . . . . . . . . . . : はい リンクローカル IPv6 アドレス . . . . : fe80::6d5e:67ef:fb48:bb1b%11(優先 ) IPv4 アドレス . . . . . . . . . . : 192.168.1.122(優先 ) サブネット マスク . . . . . . . . : 255.255.255.0 リース取得 . . . . . . . . . . . . : 2016年 4月 6 日 18:06:08 リースの有効期限 . . . . . . . . . : 2016年 4月 9 日 18:06:21 デフォルト ゲートウェイ . . . . . : 192.168.1.1 DHCP サーバー . . . . . . . . . . : 192.168.1.1 DHCPv6 IAID . . . . . . . . . . . : 247002801 DHCPv6 クライアント DUID. . . . . . . . : 00-01-00-01-17-BB-F6-26-B8-F6-B1-10-A1-93 DNS サーバー . . . . . . . . . . . : 192.168.1.1 210.145.254.169 125.170.93.233 NetBIOS over TCP/IP . . . . . . . : 有効
これ
たいていの場合、通信事業者と契約した時点で、DNS サーバーが決まります。
そして、ルーターに設定。
これ
Google Public DNSのように公開されている
DNS サーバーもあります。
https://developers.google.com/speed/public-dns/
では、「 DNS サーバに問い合わせを
行うためのサーバ」は、どんな流れで名前解決するのか。
ルートサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
s-arcana ドメインネームサーバー
www ドメインネームサーバー
DNS問合せサーバ
www.s-arcana.co.jp の IP 教えて!
jp サーバに聞いて!
ルートサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
s-arcana ドメインネームサーバー
www ドメインネームサーバー
DNS問合せサーバ
www.s-arcana.co.jp の IP 教えて!
jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
co.jp サーバに聞いて!
ルートサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
s-arcana ドメインネームサーバー
www ドメインネームサーバー
DNS問合せサーバ
www.s-arcana.co.jp の IP 教えて!
jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
co.jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
s-arcana.co.jp サーバに聞いて!
ルートサーバー
jp ドメインネームサーバー
co ドメインネームサーバー
s-arcana ドメインネームサーバー
www ドメインネームサーバー
DNS問合せサーバ
www.s-arcana.co.jp の IP 教えて!
jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
co.jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
s-arcana.co.jp サーバに聞いて!
www.s-arcana.co.jp の IP 教えて!
133.242.181.25 ダヨ!
DNS問合せサーバ
www.s-arcana.co.jp の IP は!
133.242.181.25 ダ!
名前解決したドメインはしばらくキャッシュされます。
※TTL ( Time To Live )による
DNS問合せサーバ
www.s-arcana.co.jp の IP は!
133.242.181.25 ダ!
www.s-arcana.co.jp の IP 教えて!
133.242.181.25 ダヨ!
パソコン
という感じで、ドメイン名から IP アドレスはDNS という仕組みによって
解決できるようになっています。
ゾーン情報とリソースレコード
DNS サーバーでは、ドメインを「ゾーン」
という単位で管理します。
ゾーン
s-arcana.co.jp
ゾーン
svgn.biz
ゾーン
s-arcana.com
各ゾーンでは、「リソースレコード」
と呼ばれる単位でIP アドレス等を管理します。
これはネームサーバーの管理者が更新します。
ゾーン
s-arcana.co.jpリソースレコード
名前 タイプ 値 TTL
s-arcana.co.jp. SOAns.example.net.
hostmaster.example.com. 1 7200 900 1209600 86400
900
s-arcana.co.jp. MX 10 aspmx.l.google.com. 300
s-arcana.co.jp. A 133.242.181.25 300
www.s-arcana.co.jp. CNAME s-arcana.co.jp. 300
s-arcana.co.jp. NS ns-1439.awsdns-51.org. 172800
名前 タイプ 値 TTL
s-arcana.co.jp. SOAns.example.net.
hostmaster.example.com. 1 7200 900 1209600 86400
900
s-arcana.co.jp. MX 10 aspmx.l.google.com. 300
s-arcana.co.jp. A 133.242.181.25 300
www.s-arcana.co.jp. CNAME s-arcana.co.jp. 300
s-arcana.co.jp. NS ns-1439.awsdns-51.org. 172800
名前 タイプ 値 TTL
s-arcana.co.jp. SOAns.example.net.
hostmaster.example.com. 1 7200 900 1209600 86400
900
s-arcana.co.jp. MX 10 aspmx.l.google.com. 300
s-arcana.co.jp. A 133.242.181.25 300
www.s-arcana.co.jp. CNAME s-arcana.co.jp. 300
s-arcana.co.jp. NS ns-1439.awsdns-51.org. 172800
( Start of authority )ゾーンの権威ドメインや
シリアル番号など
( Mail eXchange )メールサーバーの指定
( Address )IP アドレスの指定
( Canonical NAME )ドメインの別名を指定
( Name Server )ネームサーバーを指定
名前 タイプ 値 TTL
s-arcana.co.jp. SOAns.example.net.
hostmaster.example.com. 1 7200 900 1209600 86400
900
s-arcana.co.jp. MX 10 aspmx.l.google.com. 300
s-arcana.co.jp. A 133.242.181.25 300
www.s-arcana.co.jp. CNAME s-arcana.co.jp. 300
s-arcana.co.jp. NS ns-1439.awsdns-51.org. 172800
ドメイン⇒ IP アドレス(よく使う)
ドメイン⇒ドメイン(まあまあ使う)
ネームサーバーの構築
自分でサーバーを構築する場合BIND という OSS がメジャー
https://ja.wikipedia.org/wiki/BIND
DNS サーバーがダウンするとドメイン配下のサーバーのすべてに
接続ができなくなる
プライマリDNS サーバー
セカンダリDNS サーバー
なので、冗長化する仕組みが必要。自分で構築すると結構たいへん…
DNS情報のデータ同期
サーバーの冗長化
でも、いまは AWS のRoute 53 というサービスで簡単に運用できちゃいます
https://aws.amazon.com/jp/route53/
ちなみに“ 53” という数字は DNS の使うポート番号
しかも安い。クラウドばんざい。
アルカナも、すべてRoute 53 で運用しています。
dig コマンドと
nslookup コマンド
DNS を確認するためのコマンド
$ dig A @(DNS サーバ ) www.s-arcana.co.jp
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1 <<>> A @(DNS サーバ ) www.s-arcana.co.jp; (1 server found);; global options: printcmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57012;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:;www.s-arcana.co.jp. IN A
;; ANSWER SECTION:www.s-arcana.co.jp. 300 IN CNAME s-arcana.co.jp.s-arcana.co.jp. 300 IN A 133.242.181.25
;; AUTHORITY SECTION:s-arcana.co.jp. 86400 IN NS ns-1439.awsdns-51.org.s-arcana.co.jp. 86400 IN NS ns-733.awsdns-27.net.s-arcana.co.jp. 86400 IN NS ns-1819.awsdns-35.co.uk.s-arcana.co.jp. 86400 IN NS ns-37.awsdns-04.com.
;; Query time: 0 msec;; SERVER: (DNS サーバ )#53((DNS サーバ ));; WHEN: Thu Apr 7 18:11:01 2016;; MSG SIZE rcvd: 205
C:> nslookup -type=A -timeout=5 www.s-arcana.co.jp (DNS サーバ )
Server: (DNS サーバ )Address: (DNS サーバ )#53
Non-authoritative answer:www.s-arcana.co.jp canonical name = s-arcana.co.jp.Name: s-arcana.co.jpAddress: 133.242.181.25
というわけで、なんとなく DNS のこと
わかったかも…?
さて、ここでテストです。
TCP/IP ネットワークで DNS が果たす役割はどれか。
PC やプリンタなどからの IP アドレス付与の要求に対し,サーバに登録してある IP アドレスの中から使用されていない IP アドレスを割り当てる。
サーバにあるプログラムを,サーバの IP アドレスを意識することなく,プログラム名の指定だけで呼び出すようにする。
社内のプライベート IP アドレスをグローバル IPアドレスに変換し,インターネットへのアクセスを可能にする。
ドメイン名やホスト名などと IP アドレスとを対応付ける。
ア
イ
ウ
エ
(出典)基本情報技術者 平成 26 年春期 午前問 31
TCP/IP ネットワークで DNS が果たす役割はどれか。
PC やプリンタなどからの IP アドレス付与の要求に対し,サーバに登録してある IP アドレスの中から使用されていない IP アドレスを割り当てる。
サーバにあるプログラムを,サーバの IP アドレスを意識することなく,プログラム名の指定だけで呼び出すようにする。
社内のプライベート IP アドレスをグローバル IPアドレスに変換し,インターネットへのアクセスを可能にする。
ドメイン名やホスト名などと IP アドレスとを対応付ける。
ア
イ
ウ
エ
(出典)基本情報技術者 平成 26 年春期 午前問 31
もう一問
DNS に関する記述のうち,適切なものはどれか。
インターネット上の DNS サーバは階層化されており,ある名前の問合せが解決できない場合は,上位の DNS サーバに問い合わせて結果を得ることができる。
セカンダリサーバは,大規模なネットワークシステムにおいてプライマリサーバの負荷を軽減するために用いられ,プライマリサーバとは異なる内容のデータベースを保持している。
ネームリゾルバは,クライアントからの要求に対し,データベースを使用してドメイン名,ホスト名に対応する IP アドレスを返すプログラムである。
リソースレコードにはそのレコードの型や通常使われる標準名, IP アドレスなどが保持されており, DNS サーバの構築時に登録され,更新することができない。
ア
イ
ウ
エ
(出典)ソフトウェア開発技術者 平成 20年春期 午前問 54
DNS に関する記述のうち,適切なものはどれか。
インターネット上の DNS サーバは階層化されており,ある名前の問合せが解決できない場合は,上位の DNS サーバに問い合わせて結果を得ることができる。
セカンダリサーバは,大規模なネットワークシステムにおいてプライマリサーバの負荷を軽減するために用いられ,プライマリサーバとは異なる内容のデータベースを保持している。
ネームリゾルバは,クライアントからの要求に対し,データベースを使用してドメイン名,ホスト名に対応する IP アドレスを返すプログラムである。
リソースレコードにはそのレコードの型や通常使われる標準名, IP アドレスなどが保持されており, DNS サーバの構築時に登録され,更新することができない。
ア
イ
ウ
エ
(出典)ソフトウェア開発技術者 平成 20年春期 午前問 54
今日はここまで。
データリンク層
ネットワーク層
トランスポート層
アプリケーション層
物理層
プレゼンテーション層
セッション層
インターネッツの繋がるしくみ( HTTP/HTTPS 編)
へつづく…かも…しれない…
おしまい