4.1 IPはインターネット層の プロトコル

4.1 IPはインターネット層の
プロトコル
4406069 浜田 祥太郎
1
IPとは?
OSI基本参照モデルの第3層(ネットワー
ク層)に相当する。
複雑なネットワークの中であっても最終
的な宛先にパケットを届ける。
2
ネットワーク層
• 役割は「終点ノード間の通信を実現する」ことにある。
• ネットワーク層の下位にはデータリンク層が位置する。
• データリンク層は同一リンクで直接接続されているノー
ド間のパケット転送を行う。
• ネットワーク層がデータリンクをコントロールしながらパ
ケットを転送することにより、同一リンクに接続されてい
ないコンピュータ間での通信が可能となる。
3
ネットワーク層とデータリンク層の関係
• データリンク層は直接接続された機器同士の通信
を提供
• IPは直接接続されていないネットワーク間の転送
を提供
相互にうまく働きあっているためコン
ピュータネットワークが可能になってい
る。
4
4.2
IPの基礎知識
4406020
金子 周平
IPの3つの役割
• IPアドレス
• 終点ホストまでのパケット配送
(ルーティング)
• IPパケットの分割処理と再構築処理
4.2.1
IPアドレス
• ネットワーク層であるIPで使用されているアドレス
通信の宛先の識別するため
• インターネットに接続されるすべてのホストやルー
ターには、必ず設定しなければならない
• どのようなデータリンクでも同じ形式のIPアドレスが
利用される
4.2.2
経路制御(ルーティング)
宛先のIPアドレスのホストまでパケットを届ける
ための機能(パケットの通り道を決め、目的ホス
トへの経路が決定する)
IPアドレスを設定したホストまで、どのようにして配
送されるのか・・・?
終点ホストまでのパケット配送
• ホップバイホップルーティングを利用
(ホップとは1区間を意味する)
• IPでは、データリンクの1区間ごとに
ルートが決定され、パケットが送信さ
れる
経路制御表(ルーティングテーブル)
宛先のホストまでパケットを送るため、すべ
てのホストやルーターが持っている情報
IPパケットはこれに従って各リンクに配送される
4.2.3
データリンクの抽象化
配送先によってMTUの大きさのちがうパケットを
送信する場合がある。この問題に対処するために、
IPでは分割化処理を行う。
分割化処理・・・IPを小さな複数のパケットに分割
※ IPは、データリンクの特性を抽象化して、
上層部から細かいネットワークの構造を
見えなくする役割を持つ。
4.2.4
IPはコネクションレス型(1)
• コネクションレス型
・・・・事前にコネクションの確立を行わない方式
(上位層に送信すべきデータが発生したら、
すぐにデータを詰めて発送する)
• コネクション型
・・・・通信に先立ってコネクションの確立を行う
方式
4.2.4
IPはコネクションレス型(2)
• 欠点
・・・・無駄な通信やデータを取りこぼす
可能性がある
• 利点
・・・・機能の簡略化と高速化
4.3
IPアドレスの基礎知識
4406087
IPアドレスとは
ホストに必ず割り当てる必要がある
•インターネットに接続やLANでネットワークを作る時に必要
•32ビットの整数値でできている
•
IPアドレスの構成
•32ビットを8ビットずつに分けている
•ネットワーク部とホスト部の分け方はクラスによって決まる
•
15
IPアドレスとは(2)
1100000010101000000000100000001
11000000 .1010100 .00000001 .00000001
192
.168
.1
.1
16
IPアドレスとは(3)
17
ネットワーク部とホスト部
 ネットワーク部
• データリンクごとに割り当てられる
• 他のネットワークのアドレスと重ならないように設定する
• 同じデータリンクのホストには同じネットワークアドレスを設
定する
 ホスト部
• 同一リンク内で重ならない値を設定する
世界中の全てのコンピュータと違うIPアドレス
18
IPアドレスのホスト部
206.111.10.1
ホ
ス
ト
部
は
異
な
る
値
に
ルーター
206.100.10.1
ネットワーク部
ホスト部
ホ
ス
ト
部
は
異
な
る
値
に
異
な
る
セ
グ
メ
ン
ト
は
違
う
値
に
19
IPアドレスのネットワーク部
192.168.128.0/24
192.168.129.0/24
192.168.130.0/24
ルーター
ルーター
ルーター
宛先 192.168.130.10
ルーター
ルーターは、宛先IPアドレスの
ネットワーク部を調べて経路を
決定する
20
IPアドレスのクラス
クラスはA,B,C,Dの4つがある
それぞれの違い
• 先頭から4ビットまでのビット列の組み合わせ
• 割り当てられるホストアドレスの数
ホストアドレス割り当て時の注意
• 全てが0の場合 → IP不明の時に使用
• 全てが1の場合 → ブロードキャストアドレス
21
IPアドレスのクラス(2)
 クラスA(ホストアドレス数 約1700万)
• 先頭1ビットが0
• 先頭から8ビットがIPネットワークアドレス
 クラスB(ホストアドレス数 65534)
• 先頭2ビットが10
• 先頭から16ビットがIPネットワークアドレス
 クラスC(ホストアドレス数 254)
• 先頭3ビットが110
• 先頭から24ビットがIPネットワークアドレス
 クラスD(IPマルチキャストで利用→5章)
• 先頭4ビットが1110
• 先頭から32ビットがIPネットワークアドレス
22
IPアドレスのクラス(3)
23
ブロードキャストアドレス
• 同一リンクに接続されたホストにパケットを送
信するためのアドレス
• ローカルブロードキャストとダイレクトブロード
キャストの2つがある
24
ブロードキャストアドレス(2)
ローカルブロードキャスト
• 同一リンク内へのブロードキャスト
ダイレクトブロードキャスト
• 異なるIPアドレスへのブロードキャスト
25
ローカルブロードキャスト
ネットワーク
128.1.0.0の外には
ネットワーク
パケットは送信されない
128.2.0.0/16
128.1.0.0/16
ルーター
同一ネットワーク内にある
全てのホストにデータが送
信される
ブロードキャストアドレス
128.1.225.225
へ送信
26
ダイレクトブロードキャスト
ネットワーク
128.1.0.0の外に
ネットワーク
パケットが送信される
128.2.0.0/16
128.1.0.0/16
ルーター
同一ネットワーク内にある
全てのホストにはデータは
送信されない
ブロードキャストアドレス
128.2.225.225
へ送信
27
4.3 IPアドレスの基礎知識
4406073 広畑
クラスの問題点
• ネットワーク部が同じコンピュータは全て同一リンクに接続し
なければならない
クラスB 6万5千台のホスト接続可能
そこまで多く接続しない
無駄が多い
サブネットマスクの導入
サブネットワーク
• ネットワークアドレスの表し方が拡張
• ネットワークを分割し数を増やす
ネットワーク
アドレス部
ホスト部
ネットワーク サブネット
ホスト
アドレス部 ワーク
部
アドレス部
サブネットマスク
• ネットワーク部の長さを表す
• クラスに縛られずIPアドレスのネットワーク部
を決める事が可能
サブネットマスクの表示
26ビットネットワークアドレスの場合
IPアドレス
172.20.100.52
ネットマスク
255.255.255.192
IPアドレス
172.20.100.52/26
サブネットマスクの例
• IPアドレス(172.20.100.52/26)
172.
20.
100.
52.
10101100000101000110010000110100
クラスによるネットワーク部
サブネットマスクで拡張され
るネットワーク部
26桁をマスク
ホスト部
CIDRとクラスレス
インターネットの普及によりIPアドレスが不足
短期的な解決
CIDR導入
• クラス分けをなくしたIPネットワークアドレス、I
Pホストアドレスの考え方
• IPのアドレス空間を有効利用
• 経路情報を集約し圧縮
CIDRの適用例
203.183.224.0/23
11001011.10110111.11100000.00000001
ネットワーク部
IPホストホ
スト部
11001011.10110111.11100001.11111110
23桁
(203.183.224.1)
510個
(203.183.225.254)
9桁
2^9-2=510個のホスト数
特別なIPアドレス
インターネットに接続されているホストには、必ずユ
ニークなIPアドレスを割り当てる
プライベートIPアドレス
• 外部と通信できないが私的なネットワーク内での利
用が可能
• アプリケーションゲートウェイやNAT(Network
Address Translator→5章)を利用すれば外部と通信
する事は可能
IPアドレスは誰が決める
IPアドレス決定機関
• ICANN
全世界的にIPアドレスやドメイン名を管理
• JPNIC
日本国内のIPアドレスやドメイン名を管理
• ISP
プロバイダ
IPアドレスは誰が決める(2)
IPアドレス申請の流れ
申請者
ISP
JPNIC非会員
JPNIC
ISP
JPNIC会員
IPアドレスの割り当て申請
特定のIPアドレスの割り当て処理を代行
4.4 経路制御(ルーティング)
4406069 浜田 祥太郎
38
パケットを配送するには
IPアドレスと経路制御表が必要である。
ダイナミックルーティング(動的経路制
御)
ルーターが他のルーターと情報を交換して
自動的に作成する方法
スタティックルーディング(静的経路制御)
管理者が事前に設定する方法
39
IPアドレスと経路制御(ルーティング)
IPパケットは、IPアドレスのネットワークを
利用して経路制御が行われる。
経路制御表には、ネットワークアドレスと次に配送
するべきルーターのアドレスが書かれてとおり、一
致するネットワークアドレスを検索し、次のルーター
に配送する。
40
デフォルトルート
・全てのネットワークやサブネットの組を
経路制御表に持つのは無駄が多い。
このためデフォルトルート(Default
Route) が利用されている。
・ 0.0.0.0/0または、defaultと記述する。
41
ホストルート
(HOST ROUTE)
・“IPアドレス/32”
例:192.232.153.15/32
・ IPすべてのビットを使って経路制御すること
・ネットワークアドレスによる経路制御
したくない場合に使われる。
42
ループバックアドレス
•
同じコンピューター内部のプログラム間で
通信したい→ループバックアドレス。
127.0.0.1というIPアドレスが使われ
る。
• パケットはネットワークに流れない。
43
経路制御表の集約
・経路制御表は小さくすることができる。
・経路制御情報の集約(Aggregate)という。
IPアドレス
次のルーター
192.168.1.0/25
ルーターA
192.168.1.128/25
ルーターA
192.168.2.0/26
ルーターB
192.168.2.64/26
ルーターB
192.168.2.128/26
ルーターB
192.168.2.192/26
ルーターB
⇒
IPアドレス
次のルーター
192.168.1.0/24
ルーターA
192.168.2.0/24
ルーターB
44
4.5 IPの分割処理
と
再構築処理
4406006
石田 真也
45
4.5.1
データリンクによってMTUは違う
MTUとは1回の転送で送信できるデータの最
大値を示す値。
• データリンクによってMTUの大きさが違う
• データリンクが目的ごとに作られており、それ
ぞれの目的にあったMTUの大きさが決めらた
から
• IPはデータリンクの上位層
46
4.5.2
IPデータグラムの分割処理と再構築処理
送信ホスト
受信ホスト
FDDI
MTU=4352
ルーター
イーサネット
MTU=1500
IPヘッダの識別
子にはユニーク
な数字を設定し
て送信する
UDP
UDP
データ ヘッダ ヘッダ
4324
8
UDP
IP
20
ルーター
で分割処
理が行わ
れる
UDP
IP
データ ヘッダ ヘッダ
1472
8
20
UDP
UDP
IP
データ ヘッダ ヘッダ
1480
UDP
8
UDP
20
IPヘッダ
の識別子
を参照し
再構築し
てから上
位部に
IP
データ ヘッダ ヘッダ
1372
8
20
47
4.5.2-2
IPデータグラムの分割処理と再構築処理
• 再構築の処理は、終点の宛先ホストだけで行われ
る。
• 途中で待っていてもパケットが届かないかもしれな
い
• 分割化された断片が途中で失われてしまい到着し
ないかもしれない。
• 途中で再構築しても、また別のルーターを通るとき
に分割処理をしなければならないかもしれない。
48
4.5.3 経路MTU探索
(Path MTU Discovery)
• 分割化の欠点
①.ルーターの処理が重くなる(ルーターがしなければ
ならない処理の増加による)
②.分割化された断片の1つが失われても、元のIP
データグラムのすべてが失われてしまう
• これらの弊害を避けるために経路MTU探索が提案
された
49
4.5.3-2 経路MTU探索(2)
• 経路MTUとは・・・宛先ホストまでパケットを送
信したときに分割化が必要にならない最大の
MTU
• 経路MTU探索とは・・・経路MTUを発見し、送
信元のホストで経路MTUの大きさにデータを
分割してから送信する方法
50
4.5.3-3 経路MTU探索の処理
①IPヘッダの分割禁止フラグの設定をして送信する。
ルーターでパケットは失われる。
②ICMPにより次のMTUの大きさを知る
③アプリケーションが次のデータを送信するときに、
分割処理を行い送信する。IPにとってはUDPヘッダとア
プリケーションのメッセージは区別されない。
④受信ホストにおいて、全ての断片がそろったら、IP層
で再構築してUDP層へ渡す。
51
4.5.3-3 経路MTU探索の処理
送信ホスト
受信ホスト
FDDI
MTU=4352
ルーター
イーサネット
MTU=1500
①
UDP
UDP
IP
データ ヘッダ ヘッダ
4324
②
③
8
UDP
ヘッダ
20
ICMP
UDP
UDP
IP
データ ヘッダ ヘッダ
1472
8
20
UDP
UDP
④
IP
データ ヘッダ ヘッダ
1480
UDP
8
UDP
20
IP
データ ヘッダ ヘッダ
1372
8
20
52
4.5.3-4 TCPの場合の経路MTU探索
経路MTCの大きさを基にして通信を行うデータ単位を
再計算し、その値を元に送信を行う
①②UDPの場合と共通
③TCPの再送処理によってデータが再送される。
このとき、TCPがIPで分割されない大きさに区切っ
てからIP層に渡す。IPでは分割処理は行われない。
④再構築は不要。データはそのままTCP層へ渡され
る。
53
4.6 ARP
4406009 伊藤 将章
ARPの概要
• ARP(Address Resolution Protocol)の略で
アドレス解決のためのプロトコル
• 宛先アドレスを基に、パケットを受信すべき機器の
MACアドレスを取得
• 宛先のホストが同一リンク上にない場合は、次に送
信すべきルーターのMACアドレスをARPで調べる
ARPの仕組み(1)
• ARPにはARP要求パケットとARP応答パ
ケットの2種類が存在
ARP要求パケット:IPアドレスからMACアドレスを知るために送信
ARP応答パケット:自分のMACアドレスを相手に教えるために返送
ARPの仕組み(2)
ARP要求パケットをブロードキャスト
すべてのホストが受信し、自分に該当するIP
アドレスが見つかると、MACアドレスを
埋めて返送
リンク内の通信可能
ARPの仕組み(3)
• アドレス解決は自動的に行われる
• MACアドレスは意識する必要はない
ARPの仕組み(4)
• 一度取得したMACアドレスはしばらく記憶さ
れる(キャッシュされる)
• ARPパケットがネット上に散乱することを防い
でいる
IP,MACアドレスは二つとも必
要?(1)
IP,MACアドレスは二つとも必要?
(2)
• 送信先がルーターを介して別のネットワークに存在
する場合、直接送信が不可能
• 別のデータリンクに送信するため、ルーターのMAC
アドレス宛に送信する
• どのルーターを経由するか、を表すためにMACアド
レスが必要
IP,MACアドレスは二つとも必要?
(3)
• 2段階の通信になるため、性能低下が考えら
れる
• キャッシュ機能(しばらくの間、アドレスを記憶
する機能)で解決
RARP(1)
• RARP(Reverse Address Resolution Pro
tocol)の略
• RARPというのはARPの逆で、MACアドレスか
らIPアドレスを知りたいときに利用
RARP(2)
• 通常のマシンにはIPアドレスは格納されて
いる。しかし・・・
• ディスクレスマシンには保存できず、IPアド
レスが分からない
• RARPリクエストを行うRARPサーバーが
必要
代理ARP(1)
• 代理ARP(Proxy ARP)
サブネットマスクを定義できない
コンピューターの接続時などに利用
• ルーターが「うそ」をつくことにより、別のサブ
ネットワークのホストと通信できる
代理ARP(2)
代理ARP(3)
• 代理ARPの設定は手作業
• 「IPパケットの配送先は経路制御表(ルーティ
ングテーブル)が決定」に反する
• 障害発生時の原因解決を複雑化
4.7 ICMP
(Internet Control Message Protocol)
4406011
IP protocol
岩瀬 彰宏
68
ICMPとは
◆IPのエラーメッセージや制御メッセージを
転送するプロトコル
◆ TCP/IPで接続されたコンピュータやネット
ワーク機器間で、互いの状態を確認する
ために用いられる
( ネットワーク診断プログラムpingが使う)
IP protocol
69
主なICMP
メッセージ
◆ICMPには大きく
分類すると2種類
のメッセージがある
– Errorメッセージ
– Queryメッセージ
70
ICMP到達不能メッセージ(タイプ3)
◆ICMP Destination Unreachable Message
◆IPルーターがIPデータグラムを宛先に配
送 できない場合、送信ホストに対して、
ICMP到達不能メッセージを送信します.
◆このメッセージはさらにどのような原因で
配送することが出来なかったかを示すよ
うになっています.
IP protocol
71
ホストA
ルーター1
ルーター2
ホストB
① パケット送信
② ルーター2はホストBのMACアドレスを
入手しようとARP発信
③ ARPリクエスト
④ ARPリクエスト(再送)
(しかしホストBは電源OFF)
⑤ 何度かリトライ(再送)する
⑥ ICMP Destination Unreachable
をホストAに返す
図. ICMP到達不能メッセージの流れ
72
表. ICMP到達不能メッセージ
73
ICMPリダイレクトメッセージ(タイプ5)
◆ ICMP Redirect Message
◆ルータが送信元ホストが最適でない経
路を使用しているのを検出した時、その
ホストに対して送信.
◆送信元ホストへよりよい経路を教える.
IP protocol
74
図. ICMPリダイレクトメッセージ
ホストB
192.168.1.1
192.168.1.0/24
ホストC
192.168.2.1
ルータ1の経路制御表
192.168.1.0/24ルータ1
192.168.2.0/24ルータ2
192.168.3.0/24ルータ3
192.168.2.0/24
ルータ2
ルータ1
②
192.168.3.0/24
①
③
④
ホストAの経路制御表
ホストA
192.168.3.1
0.0.0.0/0
ルータ1
192.168.3.0/24 ホストA
③で追加される経路
192.168.2.1/32 ルータ2
①.ホストAがホストCと通信しようとする場合、ホストAの経路制御表には
192.168.2.0/24の情報がないため、デフォルトルートのルータ1にパケットを送る
②.ルータ1は、192.168.2.0/24のサブネットがルータ2の先にあることを知っている
ので、パケットをルート2に転送する
③.192.168.2.1宛のパケットは直接ルータ2に送る方が効率が良いと考え、
ホストAにICMPリダイレクトメッセージを送る
④.ホストAの経路制御表に情報が追加され、次のパケットからはルータ2に送る
IP protocol
75
ICMP時間超過メッセージ(タイプ11)
◆ICMP Time Exceeded Message
◆TTL(Time To Live)がルータを1つ通過す
るたびに1ずつ減らし、0になるとIPデー
タグラムが破棄される
◆パケットが永久にネットワークを回り続け
る状態を防ぐため
IP protocol
76
ホストA
ルーター1
ルーター2
ルーター3
ルーター4
ホストB
TTLが0になると “ICMP Time Exceeded” を返す
図. ICMP時間超過メッセージ
IP protocol
77
ICMPエコーメッセージ(タイプ0,8)
◆ICMP Echo Message(タイプ8)
◆ICMP Echo Reply Message(タイプ0)
◆通信したいホストやルータなどに、IPパ
ケットが到達するかどうか確認する
(pingコマンドで使用されている)
IP protocol
78
ホストA
ルーター1
ルーター2
ルーター3
ホストB
① ICMP Echo Request
② ICMP Echo Reply
図. ICMPエコーメッセージ
IP protocol
79
ping コマンドの例
IP protocol
80
その他のICMPメッセージ
◆ICMP始点抑制メッセージ(タイプ4)
・低速回線上にあるルータのキューの残
りが0に
なった際、送信されるメッセージ
◆ICMPルータ選択メッセージ(タイプ9,10)
・自分がつながっているネットワークの
ルータを
見つけたい時に利用されるメッセージ
◆ICMPアドレスマスクメッセージ(タイプ17,18)
・サブネットマスクを調べたいホストや
ルータが
ある場合に利用されるメッセージ
IP protocol
81
IPヘッダ
4406042 杉山廣祐
バージョン
• IPヘッダのバージョン番号を示す。現在は4。
バージョン
略称
プロトコル
4
IP
Internet Protocol
5
ST
ST Datagram Mode
6
IPv6
Internet Protocol version 6
7
TP/IX
TP/IX: The Next Internet
8
PIP
The P Internet Protocol
9
TUBA
TUBA
ヘッダ長
• IPヘッダ自体の長さを表わす。
• 4ビット単位。
サービスタイプ
• サービスの品質を表わす。
• 8ビットで構成される。
• 値はアプリケーションに
よって指定されるが、現在
はほとんど無視されてい
る。
ビット
意味
012
優先度
3
最低限の遅延
4
最大限の
スループット
5
最大限の信頼
性
最小限の経費
6
(3~6)
最大限の
セキュリティ
7
未使用
DSCPフィールド、ECNフィールド
• TOSとして定義された部分。
• 品質を表わす。
• ECNフィールドは5.6節で詳しく
パケット長
• パケット全体の長さを表わす。
• 16ビット長で最大65535オクテット。
識別子
• 分割したデータ(フラグメント)を復元する際の
識別に使用。
フラグ
• パケットの分割に関する制御。
• 3ビットで構成。
ビット
意味
0
未使用。現在は0
1
分割してよいか指示
0: 可能 1: 不可能
2
分割された場合、最後のパケットか
否かを示す
0: 最後 1: 途中
フラグメントオフセット
• 分割されたフラグメントがオリジナルデータの
元の場所を表わす。
• 13ビットで構成。
生存時間 (TTL: Time To Live)
もとの意味:パケットがネットワークに存在してよ
い時間を秒単位で示したもの。
↓
実際のインターネット上では
何個のルーターを中継してもよいかという意味に。
• ルーターを通過するたびにTTLは1つずつ減らさ
れ、0になるとパケットは破棄される。
• これによりIPパケットが永遠にネットワーク内に
存在することを防ぐ。
プロトコル (Protocol)
8bitで構成され、上位層のプロトコル
が何であるかを示す
番号
略称
プロトコル名
1
ICMP
Internet Control Message Protocol
2
IGMP
Internet Group Management Protocol
4
IP
IP in IP (encapsulation)
6
TCP
Transmission Control Protocol
8
EGP
Exterior Gateway Protocol
17
UDP
User Datagram Protocol
41
IPv6
IPv6
ヘッダチェックサム
(Header Checksum)
• IPヘッダが壊れていないことを保証するため
のもの。
• 16ビットで構成されている。
• これによりデータが壊れていないかを判定。
送信元IPアドレス、宛先IPアドレス
• それぞれのIPアドレスを表示。
• 32ビットからなる。
オプション(Options)
• 可変長である。
• テストやデバックなどを行うとき使用される。
• 例) セキュリティラベル
ソースルート
ルートレコード
タイムスタンプ
パディング
• オプション使用時にヘッダが32ビットの整数
倍にならない時に使用。
• 32ビットになるように0を入れ調整する役割。
データ
• IPの上位層のヘッダも全てデータとして処理
される。