インターネッツの繋がるしくみ(dns編) #sa_study

82
イイイイイイイイイイイイイイ DNS イイイイイ イイイイ イイ イ 2016/04/07( イ ) SA Study #6

Upload: shinichiro-yoshida

Post on 15-Apr-2017

1.202 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: インターネッツの繋がるしくみ(DNS編) #sa_study

インターネッツの繋がるしくみ

( DNS 編)

スタジオ アルカナ 吉田 紳一郎・2016/04/07( 木 )

SA Study #6

Page 2: インターネッツの繋がるしくみ(DNS編) #sa_study

(免責事項)全体を通して悪ふざけが

混じっているように感じる方もいるかもしれませんが意識は低めでお願いします

Page 3: インターネッツの繋がるしくみ(DNS編) #sa_study

(免責事項)DNS と HTTP についてお話しする

予定でしたが準備時間の不足の影響で DNS の話のみとなりますが

どうかお許しくださいますようご理解ご協力をお願い申しあげます

Page 4: インターネッツの繋がるしくみ(DNS編) #sa_study

前回の勉強会のおさらい

Page 6: インターネッツの繋がるしくみ(DNS編) #sa_study

Web ブラウザ

Web サーバー

なにかすごそうなもの

Page 7: インターネッツの繋がるしくみ(DNS編) #sa_study

Web ブラウザ

Web サーバー

こんな仕組みで繋がっていたのです

LAN ケーブル 無線 LAN 電波

Ethernet

IP

TCP

Page 8: インターネッツの繋がるしくみ(DNS編) #sa_study

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

インターネッツの繋がるしくみ( TCP/IP 編)

物理層

プレゼンテーション層

セッション層

インターネッツの繋がるしくみ( DNS 編)

今日はここ

インターネッツの繋がるしくみ(物理層編)

Page 9: インターネッツの繋がるしくみ(DNS編) #sa_study

インターネッツのコンピュータがIP アドレスを頼りにして

繋がる仕組みはなんとなくわかりました。

Page 10: インターネッツの繋がるしくみ(DNS編) #sa_study

あ、

Page 11: インターネッツの繋がるしくみ(DNS編) #sa_study

ハッシュタグは

#sa_studyらしいです

Page 12: インターネッツの繋がるしくみ(DNS編) #sa_study

で、ブラウザに入力する URL って

IP アドレスじゃなくてドメイン名を入力するけど、どうなっているんだろう?

Page 13: インターネッツの繋がるしくみ(DNS編) #sa_study

“DNS”( Domain Name System )

Page 14: インターネッツの繋がるしくみ(DNS編) #sa_study

という仕組みがそれを実現しているのだけど、

その前に…

Page 15: インターネッツの繋がるしくみ(DNS編) #sa_study

“Hosts ファイル”について触れてみましょう。

Page 16: インターネッツの繋がるしくみ(DNS編) #sa_study

インターネットはDARPA( アメリカ国防高等研究計画局 )

で生まれた技術。

という話を前回しました。

Page 17: インターネッツの繋がるしくみ(DNS編) #sa_study

インターネットはDARPA で研究開発されたARPAnet という技術が起源になっています。

まだ TCP/IP もない時代です。

Page 18: インターネッツの繋がるしくみ(DNS編) #sa_study

IP アドレスは数字の羅列。だから、人間には理解しにくい。

人間にわかりやすい名前でコンピュータに接続したい。

Page 19: インターネッツの繋がるしくみ(DNS編) #sa_study

なので、ホスト名と IP アドレスの対応を

記述したファイルを用意することで解決していました。

そして、それを全ての端末に配布していました。

Page 20: インターネッツの繋がるしくみ(DNS編) #sa_study

“HOSTS.TXT”

127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev

こんなかんじ。

Page 21: インターネッツの繋がるしくみ(DNS編) #sa_study

“HOSTS.TXT”

127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev

これを全端末に配布していた。

Page 22: インターネッツの繋がるしくみ(DNS編) #sa_study

“HOSTS.TXT”

127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev

/etc/hosts ファイルはこれの名残りなのです。

Page 23: インターネッツの繋がるしくみ(DNS編) #sa_study

でも、全ての端末に配布するなんて

めんどくさい!

Page 24: インターネッツの繋がるしくみ(DNS編) #sa_study

そこで“DNS”

( Domain Name System )

Page 25: インターネッツの繋がるしくみ(DNS編) #sa_study

Hosts ファイルで管理していたホスト名と IP アドレスの対応を

ネームサーバーに集約。

Page 26: インターネッツの繋がるしくみ(DNS編) #sa_study

各コンピューターは、ネームサーバーに問い合わせを

することでホスト名と IP アドレスの対応を

知ることができる。

Page 27: インターネッツの繋がるしくみ(DNS編) #sa_study

パソコンネームサーバー

127.0.0.1 localhost192.168.33.10 vccw1.dev192.168.33.11 vccw2.dev

① vccw1.dev の IP アドレス教えてください!

② 192.168.22.10 だが!

Page 28: インターネッツの繋がるしくみ(DNS編) #sa_study

でも、一つのネームサーバーだけだと

数が増えると負荷に耐えられない

Page 29: インターネッツの繋がるしくみ(DNS編) #sa_study

なので、DNS ではサーバーを分散できる

仕組みになっています

Page 30: インターネッツの繋がるしくみ(DNS編) #sa_study

具体的にどういう仕組み?

Page 31: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS では、ホスト名が“ .” で区切られた階層構造になっています。

www.s-arcana.co.jp

Page 32: インターネッツの繋がるしくみ(DNS編) #sa_study

この区切られた階層ごとにネームサーバーを用意することで処理の分散が実現されています。

www.s-arcana.co.jp

それぞれネームサーバーがある。

Page 33: インターネッツの繋がるしくみ(DNS編) #sa_study

具体的にどういうことかというと…

Page 34: インターネッツの繋がるしくみ(DNS編) #sa_study

最上位にルートサーバーというネームサーバーがあります。

これは世界に 13 システム存在します。

ルートサーバー

Page 35: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバーでは、com ドメインや jp ドメインのようなトップレベルドメインを管理しているネームサーバーの一覧を持っています

ルートサーバー

com ドメインネームサーバー

jp ドメインネームサーバー

Page 36: インターネッツの繋がるしくみ(DNS編) #sa_study

Jp ドメインサーバーでは、co ドメインや ne ドメインのような

さらに下位のドメインを管理しているネームサーバーの一覧を持っています

com ドメインネームサーバー

jp ドメインネームサーバー

co ドメインネームサーバー

ne ドメインネームサーバー

Page 37: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバー

com ドメインネームサーバー

jp ドメインネームサーバー

co ドメインネームサーバー

ne ドメインネームサーバー

s-arcana ドメインネームサーバー

Page 38: インターネッツの繋がるしくみ(DNS編) #sa_study

このように、ドメインと呼ばれる単位の階層構造を取り入れることで

データ分散されるようになっています

Page 39: インターネッツの繋がるしくみ(DNS編) #sa_study

じゃあ、実際にどういう流れでドメイン名を

問い合わせているの?

Page 40: インターネッツの繋がるしくみ(DNS編) #sa_study

「 DNS サーバに問い合わせを行うためのサーバ」

を用意して、そのサーバーを指定します

Page 41: インターネッツの繋がるしくみ(DNS編) #sa_study

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 . . . . . . . : 有効

これ

Page 42: インターネッツの繋がるしくみ(DNS編) #sa_study

たいていの場合、通信事業者と契約した時点で、DNS サーバーが決まります。

そして、ルーターに設定。

Page 43: インターネッツの繋がるしくみ(DNS編) #sa_study

これ

Page 44: インターネッツの繋がるしくみ(DNS編) #sa_study

Google Public DNSのように公開されている

DNS サーバーもあります。

https://developers.google.com/speed/public-dns/

Page 45: インターネッツの繋がるしくみ(DNS編) #sa_study

では、「 DNS サーバに問い合わせを

行うためのサーバ」は、どんな流れで名前解決するのか。

Page 46: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバー

jp ドメインネームサーバー

co ドメインネームサーバー

s-arcana ドメインネームサーバー

www ドメインネームサーバー

DNS問合せサーバ

www.s-arcana.co.jp の IP 教えて!

jp サーバに聞いて!

Page 47: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバー

jp ドメインネームサーバー

co ドメインネームサーバー

s-arcana ドメインネームサーバー

www ドメインネームサーバー

DNS問合せサーバ

www.s-arcana.co.jp の IP 教えて!

jp サーバに聞いて!

www.s-arcana.co.jp の IP 教えて!

co.jp サーバに聞いて!

Page 48: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバー

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 サーバに聞いて!

Page 49: インターネッツの繋がるしくみ(DNS編) #sa_study

ルートサーバー

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 ダヨ!

Page 50: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS問合せサーバ

www.s-arcana.co.jp の IP は!

133.242.181.25 ダ!

名前解決したドメインはしばらくキャッシュされます。

※TTL ( Time To Live )による

Page 51: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS問合せサーバ

www.s-arcana.co.jp の IP は!

133.242.181.25 ダ!

www.s-arcana.co.jp の IP 教えて!

133.242.181.25 ダヨ!

パソコン

Page 52: インターネッツの繋がるしくみ(DNS編) #sa_study

という感じで、ドメイン名から IP アドレスはDNS という仕組みによって

解決できるようになっています。

Page 53: インターネッツの繋がるしくみ(DNS編) #sa_study

ゾーン情報とリソースレコード

Page 54: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS サーバーでは、ドメインを「ゾーン」

という単位で管理します。

Page 55: インターネッツの繋がるしくみ(DNS編) #sa_study

ゾーン

s-arcana.co.jp

ゾーン

svgn.biz

ゾーン

s-arcana.com

Page 56: インターネッツの繋がるしくみ(DNS編) #sa_study

各ゾーンでは、「リソースレコード」

と呼ばれる単位でIP アドレス等を管理します。

これはネームサーバーの管理者が更新します。

Page 57: インターネッツの繋がるしくみ(DNS編) #sa_study

ゾーン

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

Page 58: インターネッツの繋がるしくみ(DNS編) #sa_study

名前 タイプ 値 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

Page 59: インターネッツの繋がるしくみ(DNS編) #sa_study

名前 タイプ 値 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 )ネームサーバーを指定

Page 60: インターネッツの繋がるしくみ(DNS編) #sa_study

名前 タイプ 値 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 アドレス(よく使う)

ドメイン⇒ドメイン(まあまあ使う)

Page 61: インターネッツの繋がるしくみ(DNS編) #sa_study

ネームサーバーの構築

Page 62: インターネッツの繋がるしくみ(DNS編) #sa_study

自分でサーバーを構築する場合BIND という OSS がメジャー

https://ja.wikipedia.org/wiki/BIND

Page 63: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS サーバーがダウンするとドメイン配下のサーバーのすべてに

接続ができなくなる

Page 64: インターネッツの繋がるしくみ(DNS編) #sa_study

プライマリDNS サーバー

セカンダリDNS サーバー

なので、冗長化する仕組みが必要。自分で構築すると結構たいへん…

DNS情報のデータ同期

サーバーの冗長化

Page 65: インターネッツの繋がるしくみ(DNS編) #sa_study

でも、いまは AWS のRoute 53 というサービスで簡単に運用できちゃいます

https://aws.amazon.com/jp/route53/

ちなみに“ 53” という数字は DNS の使うポート番号

Page 66: インターネッツの繋がるしくみ(DNS編) #sa_study
Page 67: インターネッツの繋がるしくみ(DNS編) #sa_study

しかも安い。クラウドばんざい。

Page 68: インターネッツの繋がるしくみ(DNS編) #sa_study

アルカナも、すべてRoute 53 で運用しています。

Page 69: インターネッツの繋がるしくみ(DNS編) #sa_study

dig コマンドと

nslookup コマンド

Page 70: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS を確認するためのコマンド

Page 71: インターネッツの繋がるしくみ(DNS編) #sa_study

$ 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

Page 72: インターネッツの繋がるしくみ(DNS編) #sa_study

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

Page 73: インターネッツの繋がるしくみ(DNS編) #sa_study

というわけで、なんとなく DNS のこと

わかったかも…?

Page 74: インターネッツの繋がるしくみ(DNS編) #sa_study

さて、ここでテストです。

Page 75: インターネッツの繋がるしくみ(DNS編) #sa_study

TCP/IP ネットワークで DNS が果たす役割はどれか。

PC やプリンタなどからの IP アドレス付与の要求に対し,サーバに登録してある IP アドレスの中から使用されていない IP アドレスを割り当てる。

サーバにあるプログラムを,サーバの IP アドレスを意識することなく,プログラム名の指定だけで呼び出すようにする。

社内のプライベート IP アドレスをグローバル IPアドレスに変換し,インターネットへのアクセスを可能にする。

ドメイン名やホスト名などと IP アドレスとを対応付ける。

(出典)基本情報技術者 平成 26 年春期 午前問 31

Page 76: インターネッツの繋がるしくみ(DNS編) #sa_study

TCP/IP ネットワークで DNS が果たす役割はどれか。

PC やプリンタなどからの IP アドレス付与の要求に対し,サーバに登録してある IP アドレスの中から使用されていない IP アドレスを割り当てる。

サーバにあるプログラムを,サーバの IP アドレスを意識することなく,プログラム名の指定だけで呼び出すようにする。

社内のプライベート IP アドレスをグローバル IPアドレスに変換し,インターネットへのアクセスを可能にする。

ドメイン名やホスト名などと IP アドレスとを対応付ける。

(出典)基本情報技術者 平成 26 年春期 午前問 31

Page 77: インターネッツの繋がるしくみ(DNS編) #sa_study

もう一問

Page 78: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS に関する記述のうち,適切なものはどれか。

インターネット上の DNS サーバは階層化されており,ある名前の問合せが解決できない場合は,上位の DNS サーバに問い合わせて結果を得ることができる。

セカンダリサーバは,大規模なネットワークシステムにおいてプライマリサーバの負荷を軽減するために用いられ,プライマリサーバとは異なる内容のデータベースを保持している。

ネームリゾルバは,クライアントからの要求に対し,データベースを使用してドメイン名,ホスト名に対応する IP アドレスを返すプログラムである。

リソースレコードにはそのレコードの型や通常使われる標準名, IP アドレスなどが保持されており, DNS サーバの構築時に登録され,更新することができない。

(出典)ソフトウェア開発技術者 平成 20年春期 午前問 54

Page 79: インターネッツの繋がるしくみ(DNS編) #sa_study

DNS に関する記述のうち,適切なものはどれか。

インターネット上の DNS サーバは階層化されており,ある名前の問合せが解決できない場合は,上位の DNS サーバに問い合わせて結果を得ることができる。

セカンダリサーバは,大規模なネットワークシステムにおいてプライマリサーバの負荷を軽減するために用いられ,プライマリサーバとは異なる内容のデータベースを保持している。

ネームリゾルバは,クライアントからの要求に対し,データベースを使用してドメイン名,ホスト名に対応する IP アドレスを返すプログラムである。

リソースレコードにはそのレコードの型や通常使われる標準名, IP アドレスなどが保持されており, DNS サーバの構築時に登録され,更新することができない。

(出典)ソフトウェア開発技術者 平成 20年春期 午前問 54

Page 80: インターネッツの繋がるしくみ(DNS編) #sa_study

今日はここまで。

Page 81: インターネッツの繋がるしくみ(DNS編) #sa_study

データリンク層

ネットワーク層

トランスポート層

アプリケーション層

物理層

プレゼンテーション層

セッション層

インターネッツの繋がるしくみ( HTTP/HTTPS 編)

へつづく…かも…しれない…

Page 82: インターネッツの繋がるしくみ(DNS編) #sa_study

おしまい