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

Post on 15-Apr-2017

1.202 views 0 download

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

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

( DNS 編)

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

SA Study #6

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

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

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

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

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

前回の勉強会のおさらい

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 編)

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

おしまい