インターネット層

インターネット層
•前回の課題
•IPv6アドレス
•IP
•ARP
•ICMP
•NAT
2003年12月4日
情報ネットワーク論
新村太郎
TCP/IPからみたインターネット層
TCP/IP
プロトコル, アプリ
ケーション, 規格など
アプリケーション層
HTTP, SMTP, FTP,
TELNET, etc.
トランスポート層
TCP, UDP
インターネット層
IP (v4, v6), ICMP,
ARP
ネットワーク
インターフェース層
Ethernet, FDDI, ATM
データの送信元から送信先へ正しくデータを届ける
- 識別、経路制御、通知 -
前回の課題
練習問題3
172.16.0.0/16のネットワークが与えられている。
ここで、ホスト数10000個を接続するサブネッ
トを3つ設定する。できる限り最小規模のサ
ブネットにする場合、2つ目のサブネットのIP
アドレスとサブネット長を書け。
練習問題3の解答
先ず、ホスト数10000を接続する場合、最低でも何ビットのネットワーク
が必要であるか決める。
24ビットでは 2(32-24) - 2 = 28 - 2 = 256
23ビットでは 2(32-23) - 2 = 29 - 2 = 510
・・・
19ビットでは 2(32-19) - 2 = 213 - 2 = 8190
18ビットでは 2(32-18) - 2 = 214 - 2 = 16384
したがって、18ビットのでサブネットを設定する。
最初のサブネットは 172.16.0.0/18 であるから、範囲は
10101100 00010000 00000000 00000000 ~
10101100 00010000 00111111 11111111
すなわち
172.16.0.0 ~ 172.16.63.255
次の範囲の最初のIPアドレスは前の範囲の最後に1を加えて
10101100 00010000 00111111 11111111 + 1
= 10101100 00010000 01000000 00000000 (172.16.64.0)
したがって、解答は 172.16.64.0/18
(ちなみに、範囲は 172.16.64.0 ~ 172.16.127.255 である)
プロトコル階層モデル
OSI参照モデル
TCP/IP
プロトコル, アプリケーション, 規格など
アプリケーション層
HTTP, SMTP, FTP, TELNET, etc.
トランスポート層
トランスポート層
TCP, UDP
ネットワーク層
インターネット層
IP (v4, v6), ICMP, ARP
ネットワーク
インターフェース層
Ethernet, FDDI, ATM
アプリケーション層
プレゼンテーション層
セッション層
データリンク層
物理層
IPv6アドレス
IPv6 IPアドレス
• 128ビット(IPv4は32ビット・・・何倍?)
→ 確保できる数は非常に大きい
割り当てに困ることは当分ない
様々な通信機器に使用可能・・・家電、携帯電話、etc.
• IPv4のアドレスシステムの良い部分は踏襲、欠点
を改善
• 新しい技術・需要に対応
• 表記
16ビットごとに : で区切る
16進数表記
0 の部分を省略できる
IPv6 IPアドレス表記
• 例
0011111111111110 0000010100000001 0001100010000111 0000000000000001 0000000000000000 0000000000000000 0000000000000000 0000000000000011
↓
3ffe:0501:1887:0001:0000:0000:0000:0003
↓
3ffe:0501:1887:0001:0000:0000:0000:0003
• 0 がずっと続く箇所をすべて省略して :: に
• 各まとまりで先頭の0を省略
↓
3ffe:501:1887:1::3
IP
IP (Internet Protocol)
• フラグメント化&カプセル化
アプリケーションデータ
アプリケーション
データ1
アプリケーション
データ2
トランスポート層 ・・・・・
インターネット層 ・・・・・
アプリケーション
データ3
アプリケーション
データ4
TCPセグメント
TCPヘッダ
アプリケーション
データ
TCPヘッダ
アプリケーション
データ
IPパケット
(IPデータグラム)
ネットワークインターフェース
層 ・・・・・イーサネットフレーム
イーサネット
ヘッダ
IPヘッダ
IPヘッダ
アプリケーション
データ5
TCPヘッダ
アプリケーション イーサネット
データ
トレイラ
IP
• IPパケット
IPヘッダ
IPヘッダ
TCPヘッダ
アプリケーション
データ
データ
アプリケーションデータと上位のプロトコルの
ヘッダ(TCPヘッダ)をデータとして扱う
IP
• IPv4ヘッダ
データ
IPヘッダ
32ビットごと
0
8
バージョン
ヘッダ長
16
サービスタイプ
識別子
TTL(生存時間)
24
パケット長
フラグ
プロトコル
フラグメントオフセット
ヘッダチェックサム
送信元IPアドレス
あて先IPアドレス
オプション(可変長)
パディング
31
• IPv6ヘッダ
0
8
バージョン
優先度
IP
16
24
31
フローラベル
ペイロード長
次ヘッダ
送信元IPアドレス
あて先IPアドレス
IPv6拡張ヘッダ(オプション・可変長)
中継限界数
IPの役割
• IPアドレスを使用してネットワーク上で識別
• IPアドレスを使用してネットワーク上でグ
ループを形成
• IPアドレスをたよりにしてあて先へ届ける
→ 経路制御(ルーティング)
→ 経路制御を行う機器:ルータ
IPの役割
ルーティング
ルータ:パケットを正しい方向へ送り出す
例: 192.168.10.2 から
192.168.12.34
へ
ルータ
↓
192.168.10.0/24
192.168.12.0/24
192.168.11.0/24
IPの役割
ルーティング
192.168.10.2 から
192.168.12.34
へ
192.168.10.2
ルータ
192.168.10.32/28
192.168.10.0/28
192.168.10.16/28
IPの役割
ルーティング
192.168.10.2 から
192.168.12.34
へ
ルータ
↓
192.168.10.0/24
192.168.12.0/24
192.168.11.0/24
IPの役割
ルーティング
192.168.10.2 から
192.168.12.34
へ
192.168.12.34
ルータ
192.168.12.32/28
192.168.12.0/28
192.168.12.16/28
ARP
Address Resolution Protocol
ARP
• ネットワーク機器が実際に信号をやりとりす
るのはネットワークインターフェース層
ARP
• ネットワークインターフェース層ではIPアドレスは処
理できない・・・互いをMACアドレス(物理アドレス)
で識別
ARP
コンピュータやネットワーク機器が最初に
認識できるのは直接つながっているホスト
のMACアドレス(物理アドレス)
MAC(Media Access Control)アドレス(物理アドレス)
• ネットワーク機器のネットワークインターフェースに1つ
設定されている
• 基本的に変更することはできない(製造された時点で設
定されている)
• 16進数表示
00-90-27-2E-4E-7D
00-90-27-2E-4E-DE
ARP
IPアドレスを使用して通信先を選ぶので
IPアドレスとMACアドレスの対応付けをする
00-90-27-2E-4E-7D
192.168.0.5
192.168.0.6
00-90-27-2E-4E-DE
誰が 192.168.0.7の
IPアドレスを持ってい
る?
MACアドレスを
00-90-27-2E-4E-7D に返
事して下さい。
ARPリクエスト
をブロードキャ
ストする
00-90-27-2E-4E-5A
192.168.0.7
ARP 該当のIPアドレスを持っているホストが応答
僕は違うから無視しよう
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-4E-DE
192.168.0.6
私のことを呼んでる!
返事しなきゃ。
00-90-27-2E-4E-5A
192.168.0.7
ARP
該当のIPアドレスを持つホストが自分のMACア
ドレスを送る (ARP reply)
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-4E-DE
192.168.0.6
192.168.0.7 は、私、
00-90-27-2E-4E-5A
が持っています
ARPリプライ
00-90-27-2E-4E-5A
192.168.0.7
ARP
IPアドレスとMACアドレスの対応付けができたら、
通信が開始される
00-90-27-2E-4E-7D
192.168.0.5
こんにちは
192.168.0.7 こと、
00-90-27-2E-4E-5A
さん。
00-90-27-2E-4E-DE
192.168.0.6
通信開始
00-90-27-2E-4E-5A
192.168.0.7
ARP
いくつかのルータを介して
192.168.0.5 から 192.168.2.4 へ
通信を行いたい場合 ・・・
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
とりあえず 192.168.0.1 へ
とりあえず、192.168.0.1 へ送
ればいいのだけれど、MAC
アドレスはいくつだろう?
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリクエスト
192.168.0.1 の IP アドレスを
持っていたら MACアドレス
を教えて下さい!
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリプライ
192.168.0.1 の IP アドレス持っ
ています。MACアドレスは
00-90-27-2E-77-2C です。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
IPで通信
192.168.0.5 から送られたこの
データを 192.168.2.4 へ届
けて下さい。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
とりあえず 192.168.1.1 へ
192.168.2.4 へ送るには、とりあえず、
192.168.1.1 へ送ればいいのだけれ
ど、MACアドレスはいくつだろう?
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリクエスト
192.168.1.1 の IP アドレスを
持っていたら MACアドレス
を教えて下さい!
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリプライ
192.168.1.1 の IP アドレス持っ
ています。MACアドレスは
00-90-27-21-A7-BC です。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
IPで通信
192.168.0.5 から送られたこの
データを 192.168.2.4 へ届
けて下さい。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
同じネットワークにある 192.168.2.4 へ
192.168.2.4 は同じネットワークにつ
ながっているはずなのだけれど、
MACアドレスはいくつだろう?
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリクエスト
192.168.2.4 の IP アドレスを
持っていたら MACアドレス
を教えて下さい!
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
ARPリプライ
192.168.2.4 の IP アドレス持っ
ています。MACアドレスは
00-90-27-8A-A7-22 です。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
IPで通信
192.168.0.5 から あなた
192.168.2.4 へ送られたこの
データを届けます。
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
192.168.0.5 から 192.168.2.4 へ
データ受信
192.168.0.5 からデータが送ら
れてきたな。どんなデータだろ
う?
00-90-27-2E-4E-7D
192.168.0.5
00-90-27-2E-77-2C
192.168.1.4
192.168.0.1
00-90-27-2E-4E-5D
00-90-27-CC-17-3C
192.168.2.1
192.168.1.1
192.168.2.4
00-90-27-21-A7-BC 00-90-27-8A-A7-22
ARP
まとめ
• IPで処理するIPアドレスと、ネットワークイ
ンターフェース層で処理されるMACアドレ
スを関連付ける役割
• インターネット層に位置付けられるが、IP
層の下層に位置する
• 逆にMACアドレスを元にIPアドレスを検
索するプロトコルをRARP(Reverse ARP)と
いう
ICMP
Internet Control Message Protocol
ICMP
• IPパケットがあて先に送られ、途中でエ
ラーになった時に知らせるためのプロトコ
ル
• ネットワークの状況を調べることにも使用さ
れる
• IP層の上位になるがインターネット層に位
置付けられる
ICMPパケット
IPヘッダ
ICMP
タイプ
0
3
4
5
8
11
12
13
14
15
16
17
18
ICMPで伝えられる各種メッセージ
意味
Echo Reply
Destination Unreachable
Source Quench Message
Redirect
Echo
Time Exceeded
Parameter Problem
Timestamp
Timestamp Reply
Information Request
Information Reply
Address Mask Request
Address Mask Reply
ICMP
ICMPで伝えられる各種メッセージ
0 Echo Reply
3 Destination Unreachable
4 Source Quench Message
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply
応答性確認
実習:
スタート
→ ファイル名を指定して実行
→ command
→ ping 202.24.147.232
→ exit で終了
ICMP
ICMPで伝えられる各種メッセージ
0 Echo Reply
3 Destination Unreachable
4 Source Quench Message
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply
情報収集
ICMP
ICMPで伝えられる各種メッセージ
0 Echo Reply
3 Destination Unreachable
4 Source Quench Message
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply
エラー通知
ICMP
ICMPで伝えられる各種メッセージ
0 Echo Reply
3 Destination Unreachable
4 Source Quench Message
5 Redirect
8 Echo
11 Time Exceeded
12 Parameter Problem
13 Timestamp
14 Timestamp Reply
15 Information Request
16 Information Reply
17 Address Mask Request
18 Address Mask Reply
経路変更
NAT
Network Address Translation
NAT
プライベートIPアドレスを持つネットワークと
パブリックIPアドレスを持つネットワークは
直接通信できない ・・・ ルータを介す
プライベートアドレスを持
つネットワーク
192.168.0.2
192.168.0.3
192.168.0.4
ルータ
192.168.0.1
202.24.147.231
NAT
プライベートIPアドレスを持つ1つのホストの
データを、肩代わりして自分のパブリック
IPアドレスを付けて送り出す
プライベートアドレスを持
つネットワーク
192.168.0.2
ルータ
192.168.0.1
202.24.147.231
192.168.0.2 のデータをパブリックIPアドレスを
持ったネットワークに送り出す時、ルータのパブ
リックIPアドレスを付けて送り出す ・・・ NAT
NAPT
プライベートIPアドレスを持つネットワークに
ある複数のホストのデータをすべて、肩代
わりして自分のパブリックIPアドレスを付
けて送り出す・・・NAPT (IPマスカレード)
プライベートアドレスを持
つネットワーク
192.168.0.2
192.168.0.3
192.168.0.4
ルータ
192.168.0.1
202.24.147.231
NAPT:
Network Address and Port
Translation
NAPT
逆にパブリックIPアドレスを持ったネットワー
クからの応答データを、ポートによって、プ
ライベートIPアドレスを持つネットワークの
どのホストあてにするか区別する
プライベートアドレスを持
つネットワーク
192.168.0.2
192.168.0.3
192.168.0.4
ルータ
192.168.0.1
202.24.147.231