スライド8 (インターネット)

情報 第 8 回

田浦健次朗
ファイルと
その中身
ファイルと
フォルダ
コマンド
ライン
簡単なプログラ
ムの作成・実行
コンピュータにおける
情報の表現
コンピュータの仕組み
プログラムの仕組み
Excel で計算・
データの可視化
通信・ネットワーク ,
インターネット
通信の符号
化 , その限界
情報の符号
化 , その限界
暗号
基礎的概念
( 本講義中では ) やや高度な概念
実技・実践
テーマ

ネットワークの一般論

LAN

インターネット

IP, DNS, TCP

アプリケーションプロトコル ( メール ,Web)

インターネット上の脅威

暗号と認証
動機付け

プロバイダに契約 + 「つなぐだけ」で世界中の
HP が見られる理由

セキュリティ事件がなくならない理由

ネットショッピングが一応安全な原理 ( 暗号 )
「通信」とは ?

情報の伝達

手段 , 媒体は様々


声 , ジェスチャー

電圧の変化 ( 銅線 )

電磁波 ( 無線 LAN, 携帯 )

光のパルス ( 光ファイバ )
情報を , 「波」によって伝達される信号に符号
化する (etc. 電圧 HI = 1, 電圧 LO = 0)
「信号の伝達」だけでは解決されな
い話



直接届かない相手との情報のやりとり
多人数の参加者の中から特定の相手との情報の
やりとり
「ネットワーク」の機能
「ネットワーク」の機能


直接信号が伝達できない相手との通信 ( 中継 )
指定された相手に情報を届ける ( 経路づけ ,
ルーティング )
B
A
A と通信
したい !
A
C
よく目にするネットワークの構成機器

PC

Ethernet スイッチ

無線 LAN ステーション

モデム (ADSL, 光 )

ルータ
ポート
ネットワークの基本要素

アドレス


ネットワークへの参加者 ( ノード ) を識別する名前
経路づけ ( ルーティング )

宛先アドレスへデータを届ける道順 , それを求める
仕組み
ローカルエリアネットワーク (LAN)


実例

Ethernet

無線 LAN (IEEE 802.11)

AppleTalk, Token Ring ( 廃れた )
「インターネット」以前から , 少数の機器 (PC,
プリンタ ,etc.) を接続し , 共有するために使わ
れていた
Ethernet について少し

アドレス = Ethernet MAC アドレス


すべての PC のネットワークインタフェースカード
(NIC), Ethernet スイッチ , などについている一意な
ID
例 : 00:16:6F:4E:5F:D4


2 桁の 16 進数 x 6 = 48 bit
上位 3 つはベンダを識別
(http://standards.ieee.org/regauth/oui/oui.txt)
Ethernet のルーティング

機能 :


初期の機器 ( リピータハブ )


スイッチと PC を , ループ ( 輪 ) を作らないように
つなげるだけで , 任意の MAC アドレスにデータ
( フレーム ) を届けられるようになる
すべてのフレームをブロードキャスト
今日の機器 ( スイッチングハブ , スイッチ )

後述
リピータハブ


受け取ったフレームは全部のポートに送信

目的地へ届いたものは拾われる

そうでないものは捨てられる
単純だが明らかに無駄

大規模化は不可能
00:16:6F:4E:5F:D4
リピータハブ
スイッチングハブ


フレーム受け取り時に「送信者アドレス」とそ
のポートの組を記録する
後でその送信者アドレス向けのフレームを受け
取ったら , 覚えていたポートだけに転送
00:16:6F:11:22:33
00:16:6F:4E:5F:D4
Ethernet (LAN) のまとめ


「つなげるだけ」で使えるように設計されてい
る
全世界規模への大規模化は困難

リピータハブは言うまでもない

スイッチングハブでも


最初のブロードキャスト
つながれている全機器の数だけ , 各スイッチが
MAC アドレスとポートの対応を覚える必要が
ある ( 不可能 )
インターネット

1969 年アメリカ ARPA による実験用のネット
ワーク ARPANET が前身


インターネット = WWW ( ホームページの閲覧 ) や ,
メール ( だけ ) のことではない
当初の技術的な位置づけ

複数の LAN をつなぐこと

だから Inter Network = Internet
インターネットはそれまでのネット
ワークと何が違ったのか ?

規模が大きい



2009 年 1 月で 6 億のホスト
世界中をつないでいる

複数の , 異なる規格の LAN をつなげる

信号伝達の物理的な仕組みによらない
ネットワークの物理的な管理主体が一つでない

多数の管理主体が協調的に管理している
規模 ( ホスト数 )

出典 : Internet Systems Consortium

https://www.isc.org/solutions/survey
インターネットの核となる技術

IP (Internet Protocol)


DNS (Domain Name System)


LAN を越えてデータ ( パケット ) を届ける ( 経路づ
け)
ホスト名とアドレスとの対応を保持する
すべてのインターネットアプリケーションはこ
れを使って作られている
IP アドレス

IP (Internet Protocol) におけるアドレス

IP アドレスの例


124.83.147.205

66.249.89.104
Ethernet MAC アドレスと異なり , IP アドレス
は機器に固有のものではなく , ソフトウェアに
よって「設定」される

各 PC に「最初から」 IP アドレスがついているわ
けではない
IP アドレスの形式



IP version 4 (IPv4)

x.x.x.x (x は 0-255 までの数字 )

8 bit  4 = 32 bit
IP version 6 (IPv6)

x:x:x:x:x:x:x:x (x は 16 進数で , 0000-ffff まで )

16 bit x 8 = 128 bit
今日ほとんどの機器は IPv4 を用いている
インターネットプロトコル (IP)

「インターネット」の技術的核心


Internet Protocol
「インターネット」をしいて技術的に定義する
ならば , IP を使った通信方法のこと
111.234.56.78
123.234.56.78
IP の基本機能


あらゆる「ネットワーク」の機能と同様であ
る . つまり ,
宛先「 IP アドレス」を指定されたデータ ( パ
ケット ) を , その IP アドレスを持つ機器へとど
ける ( 経路づけ )

LAN の仕組みは大規模化できなかった
LAN の中の IP 通信


「宛先 IP アドレス → そのマシンの MAC アド
レス」の変換をすれば OK
その仕組み : ARP (Address Resolution
Protocol)

LAN 内にブロードキャスト ( 「この IP アドレスを
持っている人は MAC アドレスを教えてくださ
い」 )
LAN をまたがった IP 通信


パケットが複数 LAN を渡り歩く
各ステップ (hop) では , ルータと呼ばれる機器
がパケットを中継する (IP ルーティング )
ルータ
通常のホスト
LAN ( サブネット )
パケットの配送路
IP ルーティング

機器 : IP ルータ , L3 スイッチ




LAN におけるスイッチに相当
ただし MAC アドレスではなく IP アドレスを元に宛
先を決める
LAN と LAN の境目に配置
ルータ間で情報を交換して「宛先 IP アドレス ,
ポート」の対応付けを覚える
LAN
LAN
IP ルータ
IP が大規模化できる理由



一つの LAN には「まとまった IP アドレスの範
囲」を割り当てる

例 : 133.11.238.0 〜 133.11.238.127

サブネットという
IP ルータは個々の IP アドレスの経路を覚えず
にサブネットや , より大きな範囲のアドレス範
囲ごとに覚える
サブネット単位でのルーティング情報をやりと
りする必要はあるが , そんなに激しく変わらな
い
自分の IP アドレスは ?

Mac, Unix: ifconfig コマンド

Windows: ipconfig コマンド

どの LAN につながっているかで IP アドレスは
異なる
ある IP アドレスと通信できるか ?

Mac, Unix, Windows: ping コマンド



ping 「 IP アドレス」
指定された IP アドレスに向かって IP パケット
を送り , 返事をもらう
セキュリティの懸念からわざと答えない計算機
もある
ある IP アドレスまでどのような経
路で到達するか ?

Mac, Unix : traceroute コマンド

Windows: tracert コマンド



traceroute 「 IP アドレス」
ping と似ているが途中のルータが表示される
セキュリティの懸念からわざと答えないルータ
が非常に多い
DNS




Domain Name System
IP アドレスよりも「意味のわかりやすい」ホス
トの名前 (DNS 名 )
インターネット上で , ホスト名 ( 計算機名 ) と
して通常用いられる名前
例:

www.yahoo.co.jp

www.ecc.u-tokyo.ac.jp

mail.logos.ic.i.u-tokyo.ac.jp
DNS 名

A.A. ... .A

各 A はアルファベット , 数字 , '_', '-' など

IP アドレスとは原理的には無関係
DNS 名が使われる , よく見る場面

ホームページの名前 (URL) の一部にホスト名を
使う




http://www.ecc.u-tokyo.ac.jp/faq.html
このページは , www.ecc.u-tokyo.ac.jp というホス
トが持っているという意味
メールの設定で ,SMTP サーバ , POP サーバを
指定せよと言われることがある . そのような場
合に指定するサーバの名前も「 DNS 名」
その他ありとあらゆる場面で計算機の「名前」
を指定するのに DNS 名が使われる
DNS の基本機能

DNS 名  IP アドレスの対応を覚える

基本原理



対応を保持する計算機 (DNS サーバ ) を配置し , そ
の計算機に問い合わせる
これにはもちろん IP を使って通信する
再び「大規模化」が課題
DNS 大規模化の課題

世界で 1 台の DNS サーバにすべての対応を覚
えさせる ?


一度実行した問い合わせの結果を覚えておく ?



世の中で問い合わせが発生する度にその DNS サー
バとの通信が発生
実際使われている ( キャッシュ )
世界で一台の DNS サーバの負荷が大きい事は変わ
らない
DNS サーバを多数用意して問い合わせの負荷
を分散する
DNS 問い合わせの負荷分散



世界には多数の DNS サーバがある
個々の DNS サーバは「一部の」名前の問い合
わせにしか答えられない ( 答えなくてよい )
この場合 , 「どの名前の問い合わせは , どの
DNS サーバへ送れば良いのか ? 」が問題とな
る


www.ecc.u-tokyo.ac.jp の IP アドレスを聞きたいの
だがどの DNS サーバに尋ねれば良い ?
これを一台の計算機 (DNS サーバ問い合わせサー
バ ?) に保持させるのでは元の木阿弥に近い
DNS 負荷分散方式


DNS 名全体が ( ファイル名と似たような ) 階層
構造・木構造をなしていることに注意
1 台の DNS サーバが担当する範囲はこの木構
ルート DNS サーバ
造のある部分木
X.jp を担当する
DNS サーバ
X.ac.jp を担当する
DNS サーバ
X.u-tokyo.ac.jp を担当する
DNS サーバ
X.ecc.u-tokyo.ac.jp を担当する
DNS サーバ
X.com を担当する
DNS サーバ
X.google.com を担当する
DNS サーバ
DNS 負荷分散方式

各 DNS サーバは



親 DNS サーバ (u-tokyo.ac.jp 担当サーバであれば ,
ac.jp 担当サーバ )
直接の子 DNS サーバ (u-tokyo.ac.jp であれば ,
ecc.u-tokyo.ac.jp, t.u-tokyo.ac.jp など )
の IP アドレス「だけ」を覚えている
ac.jp 担当
u-tokyo.ac.jp 担当
ecc.u-tokyo.ac.jp 担当
t.u-tokyo.ac.jp 担当
問い合わせの解決


個々の計算機はどの DNS サーバへ問い合わせ
ても良い
問い合わせを受けた DNS サーバは ,

自分が解決できる場合すぐに答える ,

自分の子供が解決すべき問い合わせは子供へ転送


たとえば u-tokyo.ac.jp 担当が ,
www.ecc.u-tokyo.ac.jp の問い合わせを受けた
それ以外は親へ転送
あのマシンの IP アドレスは ?

Mac, Unix: host コマンド

Windows: nslookup コマンド

host DNS 名

host IP アドレス名
まとめ : 一台のマシンを「インター
ネットにつなげる」のに必要な情報




自分の IP アドレス
自分が所属する LAN に割り当てられた IP アド
レスの範囲 ( サブネット )
自分のサブネット範囲外の IP アドレスを中継
してくれるルータ ( デフォルトゲートウェイ )
DNS 問い合わせを投げる DNS サーバ (Primary
DNS サーバ ) の IP アドレス
そんな大変な設定をした覚えはな
い?



自宅では PPP, DHCP という仕組みで自動設定
されていることがほとんど
情報が , PC に自動的に供給され , 設定されて
いる
誰が供給している ? 典型例

ブロードバンドルータ ( 使っている場合 )

LAN につながっているサーバ (DHCP サーバ )

ADSL ルータの向こう側にいるサーバ
理解の確認 : Web ブラウザでページ
が表示できるまで

例 : http://www.yahoo.co.jp/index.html

1. www.yahoo.co.jp の IP アドレスを求める

1-1. Primary DNS サーバの IP アドレスに問い合わ
せ


1-1-1. そのアドレスと自分のサブネットを見比
べる . 多くの場合 DNS サーバはサブネットの
範囲外 (LAN の外 )
1-1-2. そこでデフォルトゲートウェイに IP パ
ケットを送り転送してもらう ( デフォルトゲー
トウェイは「必ず」サブネット内 )

1-2. 得られた www.yahoo.co.jp の IP アドレスに
「このページ (/index.html) を送れ」というリクエス
トを投げる


1-2-1. ここでもおそらくデフォルトゲートウェ
イ経由となる
1-3. めでたく返事 ( ページの内容 ) が得られて ,
ページがブラウザで表示される
「つながらない」理由と診断手段

IP アドレス , ゲートウェイ etc. の設定が失敗
している


LAN の中に問題がある


ping ゲートウェイの IP アドレス
DNS に問題がある


ifconfig, ipconfig
host サーバの DNS 名
サーバが落ちている

host サーバの IP アドレス
TCP

IP : 信頼性のない通信

送ったパケットは届かないかもしれない


TCP : 信頼性のある通信



理由 : 機器の故障 , 一時的な負荷増大
一部の IP パケットが届かない場合 , それらを再送
するなどして , 任意のバイト列を失うことなく交換
する仕組み
インターネット上のほとんどのアプリケーショ
ンが TCP を用いている
TCP/IP : 「インターネット」の代名詞
アプリケーション層プロトコル


TCP/IP によって , 任意の byte 列を , 世界中の
計算機と交換する事ができる
WWW, メール , IP 電話 , ファイル交換ソフト
など , あらゆるインターネット上のアプリケー
ションは ,TCP 上にさらなる取り決めを用いて
必要な機能を実現している

WWW: HTTP (Hyper Text Transfer Protocol)

メール :


SMTP (Simple Mail Transfer Protocol)
POP (Post Office Protocol)
インターネットの安全性

基本的な仕組みは , 全員が協調的に ( 悪意なく )
動作することを前提にしている

経路づけ

DNS の分散管理


「正しい相手と通信していること」を保証していな
い
自分のパケットは経路上のルータ ,LAN 内の他のホ
ストなどに丸見え
ありうる攻撃の例

1 台の DNS サーバが侵入されたとする



それをもとに , 以降の DNS 問い合わせに「嘘をつ
く」
www.amazon.co.jp は「ここです」と答える
LAN 中に攻撃者の PC が接続されたとする


IP アドレス  MAC アドレスの変換は LAN 内への
broadcast で問い合わせてる (arp)
ゲートウェイの MAC アドレスをゲートウェイより
先に ( 嘘を ) 返してしまう
インターネットの安全性



送ったデータは悪者に見られているという前提
で考える . その元で以下を確信できるか ?
認証 : 正しい相手と通信している
機密性・一貫性 : 中身を第 3 者に { 見ら・変更
さ } れていない