IP(Internet Protocol)
• OSI参照モデルの第3層,TCP/IPのインターネット層のプロトコル – エンドツーエンド通信のプロトコル (あるコンピュータから別のコンピュータへデータを転送)
4
大別 OSI参照モデルの名称 TCP/IPの名称
アプリケー ションの規約
第7層 アプリケーション層 アプリケーション層 第6層 プレゼンテーション層
第5層 セッション層
転送の規約 第4層 トランスポート層 トランスポート層 第3層 ネットワーク層 インターネット層
ネットワークア クセスの規約
第2層 データリンク層 リンク層
第1層 物理層
IPの役割と機能
• アドレッシング – IPアドレスによりネットワーク上のホストを一意に識別し,宛先や送信元を判断
– IPアドレス(IPv4) • IPプロトコルを利用したネットワークに接続されるすべてのコンピュータに割り当てられる論理アドレス
• XXX.XXX.XXX.XXX(10)で表記(8ビット × 4) • ネットワークアドレス部とホストアドレス部から構成
• ルーティング – 指定された宛先ネットワークまでデータを配送するために,パケットの送出方向を判断する機能
– ルータ:ルーティングを行う機器
5
IPアドレスの概要
• 通信相手を識別するために使用するアドレス – 各ホスト(コンピュータ)に割り当てられる – 送信元IPアドレスと宛先IPアドレスがIPヘッダ内に含まれる – IPv4の他にIPv6が存在
• 広く普及しているIPv4について解説 • IPv6は次世代ネットワーク用に開発されたプロトコル
6
IPアドレス
• アドレス長:32ビット(IPv4) – およそ42億通りのIPアドレスが定義可能 – IPv6の場合は128ビット(約340澗通り:340兆の1兆倍の1兆倍)
• ネットワークアドレス部 – ネットワークに対して割り当てられるアドレス
• ホストアドレス部 – ホスト(コンピュータ)に対して割り当てられるアドレス
7
IPアドレスの表記
• 一般に,8ビットずつピリオドで区切り,それぞれを10進数で表記
8
. . . 11000000 10101000 11001000 00000001
2進表記
. . . 192 168 200 1
10進表記
ネットワークアドレスとホストアドレス
• ネットワークアドレス部 – (サブ)ネットマスクで指定された部分がネットワークアドレス部
• ネットマスク: XXX.XXX.XXX.XXX/YY (上位YYビットがネットワークアドレス部)
もしくは XXX.XXX.XXX.XXX/ZZZ.ZZZ.ZZZ.ZZZ (ビットが1の桁がネットワークアドレス部)
• ホストアドレス部 – ネットワーク管理者がネットワーク内で唯一無二のアドレスを付与 – ネットワーク内の特定のホスト宛のユニキャストパケットを送出する際に利用
9
IPネットワークの例
• ネットワークアドレス:192.168.200.0/24 • ホスト:1から5
10
IPアドレス 192.168.200.1
IPアドレス 192.168.200.2
IPアドレス 192.168.200.3 IPアドレス
192.168.200.4
IPアドレス 192.168.200.5
IPアドレスの割当単位
• IP通信を行うインタフェースごとにIPアドレスが割り当てられる – コンピュータに有線LANと無線LANの2つのインタフェースがある場合,それぞれに1つずつIPアドレスが付与される
– ルータ(IPネットワークを接続する機器)は,ルータが持つインタフェースの数だけ複数のIPアドレスを割り当てる
11
5ポートハブ付き無線ルータ インタフェースは2つ (LAN側,WAN側)
ノート型PC インタフェースは2つ (有線,無線)
192.168.200.11
192.168.200.12
192.168.200.1
133.1.243のネットワーク
133.1.243.xxx
IPアドレスの例
• 192.168.200.1/24 または 192.168.200.1/255.255.255.0 の場合 – サブネットマスクは24(255.255.255.0) つまり上位24ビット(192.168.200. まで)がネットワークアドレス 残り下位8ビット(.1)がホストアドレス
• 特別なIPアドレス – ネットワークアドレス(ホストアドレス部がすべて0)
• ネットワークを指定する際に記述 • 例:192.168.200.0
– ブロードキャストアドレス(ホストアドレス部がすべて1) • ネットワーク内のコンピュータすべてに送信する際に利用 • 例:192.168.200.255
12
192.168.200.0/24 のネットワークで利用可能な コンピュータの最大台数は254台
IPアドレスのクラス
• IPアドレスの値によってクラスAからクラスEに分類
13 出典:http://www.atmarkit.co.jp/fwin2k/network/baswinlan008/baswinlan008_01.html
クラスA
• 先頭ビットが 0 から始まるアドレス空間 – 0.0.0.0 ~ 127.255.255.255
• RFC791において,ネットワークアドレス部は上位8ビットと規定 – 残り24ビットがホストアドレス(16777214通り)
14
���A
� ������ 0"������ ���
� 00000000"� 01111111
� ����8�������������
� ��24�������
0
8���
32���
24���
������ ���
クラスB
• 先頭ビットが 10 で始まるアドレス空間 – 128.0.0.0 ~ 191.255.255.255
• RFC791において,ネットワークアドレス部は上位16ビットと規定 – 残り16ビットがホストアドレス(65534通り)
15
���B
� ��2����10������ ���
� 10000000$� 10111111
� ����16�������������
� ��16�������
1
16���
32���
0
16���
������ ���
クラスC
• 先頭ビットが 110 で始まるアドレス空間 – 192.0.0.0 ~ 223.255.255.255
• RFC791において,ネットワークアドレス部は上位24ビットと規定 – 残り8ビットがホストアドレス(254通り)
16
���C
� ��3����110����� ���
� 11000000$� 11011111
� ����24�������������
� ��8�������
1
24���
32���
1 0
8���
������ ���
クラスD
• 先頭ビットが 1110 で始まるアドレス空間 – 224.0.0.0 ~ 239.255.255.255
• ネットワークアドレス部とホストアドレス部の区別なし • マルチキャスト通信の際にグループを表すアドレスとして用意されたアドレス
17
���D
� #/4����1110�'������*&
� 11100000$0 11101111
� ��� !�-����-%$��
� �������,".��!��+�����))(� �����
1
32���
1 1 0
クラスE
• 先頭ビットが 1111 で始まるアドレス空間 – 240.0.0.0 ~ 255.255.255.255
• 実験用アドレス – ホストの設定には利用不可
18
���E
� � 4����1111��� �����
� 11110000$" 11111111
� �!������� �����������������
1
32���
1 1 1
サブネット
• RFC791の方式では,ホストアドレスの割当数が,クラスAで約1677万,クラスBで約6万5千 – これほど膨大なホストを収容するネットワークは存在しない
àアドレスを無駄に消費
19
RFC950でサブネットを定義 ホストアドレスの一部をアドレスマスクを用いて分割する
ことで,ネットワークをさらに分割
プライベートIPアドレス
• 各組織内だけで利用することを前提に,ネットワーク管理者が自由に割当・使用することが許可されたIPアドレス(RFC1597) – ローカルなネットワークで利用 – インターネット上のアドレスとしては使用不可 – 10.0.0.0 ~ 10.255.255.255/8(クラスA) – 172.16.0.0 ~ 172.31.255.255/12(クラスB) – 192.168.0.0 ~ 192.168.255.255/16(クラスC)
• 上記のプライベートIPアドレス以外をグローバルIPアドレスと呼ぶ – 重複を避けるために公的機関が割当・管理(JPNIC等) – インターネット上のアドレスとして使用
20
その他の特殊なIPアドレス
• 0.0.0.0 – デフォルトゲートウェイ(宛先ネットワークが不明な場合のパケット送信先)を表すアドレス
– ルーティングの際に利用される
• 127.x.x.x – ループバックアドレス
• 自ホスト(そのコンピュータ自身)を指し示す
21
IPヘッダ
Version IHL Type of Service Total Length Identification Flags Fragment Offset
Time to Live Protocol Header Checksum Source Address
Destination Address Options Padding
IP data…
22
32ビット
NAT(Network Address Translation)
• プライベートIPアドレスが割り当てられたホストからNATルータを介してインターネットへアクセスさせる仕組み 1. NATルータでプライベートIPアドレスを持つホストから送信されたグローバルIPアドレス宛のパケットを捕捉
2. 送信元IPアドレスをNATルータのグローバル側インタフェースのグローバルIPアドレスに置換して送信
3. グローバル側インタフェースからNATルータのグローバルIPアドレス宛のパケットを捕捉
4. 宛先IPアドレスをもともと送信したホストのプライベートIPアドレスに置換して送信
23
NATの概略図
24
133.1.243のネットワーク
IPパケット
宛先:133.1.243.100 送信元:192.168.0.123
IPパケット
133.1.243.200 133.1.243.100
IPパケット
宛先:133.1.243.200 送信元:133.1.243.100
IPパケット
宛先:192.168.0.123 送信元:133.1.243.100
IPパケット 192.168.0.123
NATテーブル 送信元IPアドレス 宛先IPアドレス 192.168.0.123 133.1.243.100
IPパケット
宛先:133.1.243.100 送信元:133.1.243.200
NATの利点と欠点
• NATの利点 – プライベートIPアドレスを持つホストからインターネットへ接続可能
– インターネット側からはプライベートネットワークに新規接続不可(セキュア)
• NATの欠点 – インターネット側からはプライベートネットワークに新規接続不可(サーバをプライベートネットワーク内に設置できない)
– プライベートネットワークの複数のホストから同時に同じグローバルIPアドレスへ接続不可
25
1つのグローバルIPアドレスでプライベートIPアドレスを 持つ複数のホストがインターネットに接続できると便利
NAPT(Network Address Port Translation)
• 1つのグローバルIPアドレスを複数のホストで共有する技術 – 別名:IPマスカレード,NAT+ – NAPTサーバでは,送信元IPアドレスに加えてポート番号(第7週で説明)も置換し,NAPTテーブルに保存
• プライベートネットワークの複数のホストから同時に同じグローバルIPアドレスへ接続可能に
26
NAPTの概略図
27
133.1.243のネットワーク
IPパケット
宛先:133.1.243.100:80 送信元:192.168.0.123:12345
IPパケット
133.1.243.200 133.1.243.100
IPパケット
宛先:133.1.243.200:54321 送信元:133.1.243.100:80
IPパケット
宛先:192.168.0.123:12345 送信元:133.1.243.100:80
IPパケット 192.168.0.123
NAPTテーブル 送信元IPアドレス:ポート 宛先IPアドレス ポート 192.168.0.123:12345 133.1.243.100 54321
IPパケット
宛先:133.1.243.100:80 送信元:133.1.243.200:54321