pcnwbt/tcpip/doc/L3

ネットワーク層
TCP/IPプロトコルスイート
ネットワーク層プロトコル
• IP IPアドレス と マスク
ルーティング
• ARP
• ICMP
– PING・Traceroute
トランスポート層プロトコル
• TCP
• UDP
ICMP(Internet Control Message Protocol)
•
•
•
•
システムの状態情報とエラー情報
上位レベルのプロトコルが伝送に関する問題の修復に利用
ネットワーク上のトラブルの検出に利用
ICMPを利用した代表的なアプリケーション
– ping(ICMP ECHO Request/ECHO Reply)
IPホストの接続確認
– traceroute (ICMP ECHO Request/ECHO Reply)
宛先までの経路確認・接続確認
Microsoft OSの場合tracert
メッセージの主な種類
•
•
•
•
•
宛先到達不能
エコー要求/応答
リダイレクト(経路変更)
時間超過
ルータアドバタイズ/ルータ要求
• 要求/応答メッセージとエラーメッセージに大別する
宛先到達不能
• ルータが最終宛先にパケットを届けられないこと
• ルータはオリジナルのパケットを廃棄
• 宛先到達不能メッセージの基本4タイプ(全16タイプ)
– ネットワーク到達不能network unreachable
• ルーティングあるいはパケットのアドレッシング障害発生
– ホスト到達不能host unreachable
• 間違ったサブネットマスクを指定したなど、配信障害
– プロトコル到達不能protocol unreachable
• パケットに指定されている上位層プロトコルが宛先でサポートされていない
– ポート到達不能port unreachable
• TCP/UDPポートが使用できない
リダイレクト
送信元
R1
通信相手
R2
リダイレクト
送信元
R1
通信相手
R2
リダイレクト
送信元
R1
通信相手
R2
ping
C:\>ping www.none.net
Pinging www.none.net [192.168.5.60] with 32 bytes of data:
Reply from 192.168.2.2: TTL expired in transit.
(以下略)
C:\>ping www.none.net
Pinging www.none.net [192.168.2.60] with 32 bytes of data:
Request timed out.
(以下略)
tracert
C:\>tracert -d www.axisnet.co.jp
Tracing route to axisnet.co.jp [203.138.214.11]
over a maximum of 30 hops:
1 <10 ms <10 ms <10 ms 192.168.0.250
2 1 ms 1 ms <10 ms 192.168.2.2
3 5 ms 4 ms 3 ms 218.227.247.11
(中略)
8 7 ms 6 ms 4 ms 202.239.114.209
9 6 ms 6 ms 8 ms 202.239.114.79
10 6 ms 5 ms 7 ms 202.239.114.7
11 *
*
* Request timed out.
12 *
*
* Request timed out.
traceroute
[root@200L root]# traceroute -I www.axisnet.co.jp
traceroute to axisnet.co.jp (203.138.214.11), 30 hops max, 38 byte
packets
1 p200.axisnet.net (192.168.0.250) 0.402 ms 0.337 ms 0.401 ms
2 gw02. axisnet.net (192.168.2.2) 1.368 ms 0.958 ms 0.948 ms
3 218.227.247.11 (218.227.247.11) 5.937 ms 4.450 ms 3.597 ms
(中略)
10 g0-11-kanda-arena-gw26.sphere.ad.jp (202.239.114.7) 5.909 ms
8.118 ms 6.823 ms
11 * * *
• UNIX互換OSではデフォルトでUDPパケットを利用する。-Iオプ
ションでICMPを利用する
IP(Internet Protocol)
•
•
•
•
IPネットワークではデータは「パケット」と呼ばれる単位に分割
IPヘッダには送信元と宛先を含む情報を格納
IPパケットはルータ経由して相手先ホストに送信
IPの通信は信頼性のない通信
– パケットの通信経路は不定
– 受信順序の無保証 追い越し可能(送信した順序で届かない事
もある)
– パケット消失の可能性
• パケットを確実に届けたい場合、上位層で対応
– TCPプロトコル
– アプリケーション
IP(Internet Protocol)
あ
い
う
え
お
IP(Internet Protocol)
あ
う
え
お
い
IP(Internet Protocol)
う
え
お
い
あ
IP(Internet Protocol)
あ
う
お
え
IP(Internet Protocol)
あ
う
え
お
IP(Internet Protocol)
あ
え
う
お
IP(Internet Protocol)
あ
え
う
お
ルーティング
• 任意のネットワークから別のネットワークへのパケット転送
• インターネット内では障害や遅延など回線状況は刻々と変化す
る
• パケットは、その回線状況に応じて別の回線に進むこともある
• 様々な経路を通じて最終的に相手に到着
ルータ
•
ルーティングを行う機器
•
複数のネットワークインターフェースを持つ
① それぞれのインターフェースに届くIPパケットのヘッダにある
宛先アドレスを見て、
② 自分の持っているルーティングテーブルに従い、
③ 適切なインターフェースにパケットを送出
ルーティングテーブル
•
別のネットワーク上のIPホストと通信する時に、自分がパケッ
トを転送する直接の転送先となるルータと宛先ネットワークを
対応させた一覧表
• IPネットワーク上のホストは全てルーティングテーブルを持つ
① 送信ホストは自分のルーティングテーブルを見て、「宛先が属
するネットワークはローカルネットワークなのか別ネットワーク
なのか」を判断
② 別ネットワークの場合、そのローカルネットワークから外部へ
の接続を持つルータへパケットを転送
ルーティングテーブル
① ルータは自分のルーティングテーブルと、受取ったパケットの
IPヘッダに記述された宛先IPアドレスを見て、適切な送出イン
ターフェースを決定
② ルータのインターフェースが属するネットワーク内のコン
ピュータが宛先であれば、直接転送
③ 宛先が別ネットワークならばその別ネットワークへの接続を
持つルータに転送
ルーティングテーブル
192.168.1.1
192.168.4.0へは
192.168.4.4から
192.168.1.0/24
192.168.3.0/24
192.168.1.0へは
192.168.1.1から
それ以外(0.0.0.0)
は192.168.1.20へ
それ以外(0.0.0.0)
192.168.2.0/24
は192.168.4.20へ
.20
.20
192.168.4.0へは
192.168.4.20から
192.168.1.0へは
192.168.1.20から
192.168.4.0/24
192.168.4.4
ルーティングテーブル
192.168.1.1
192.168.1.0/24
192.168.3.0/24
192.168.1.0へは
192.168.1.1から
.20
192.168.2.0/24
.20
192.168.4.0/24
それ以外(0.0.0.0)
は192.168.1.20へ
192.168.4.4
ルーティングテーブル
192.168.1.1
192.168.1.0/24
.20
192.168.2.0/24
192.168.3.0/24
.20
192.168.4.0へは
192.168.4.20から
192.168.1.0へは
192.168.1.20から
192.168.4.0/24
192.168.4.4
ルーティングテーブル
192.168.1.1
192.168.4.0へは
192.168.4.4から
192.168.1.0/24
それ以外(0.0.0.0)
192.168.2.0/24
は192.168.4.20へ
.20
192.168.3.0/24
.20
192.168.4.0/24
192.168.4.4
ルーティングテーブル
192.168.1.1
192.168.1.0/24
.20
192.168.2.0/24
192.168.3.0/24
.20
192.168.4.0へは
192.168.4.20から
192.168.1.0へは
192.168.1.20から
192.168.4.0/24
192.168.4.4
ルーティングテーブルの確認
C:\>route print
===============================================================
Active Routes:
Network Destination
Netmask
Gateway
Interface Metric
0.0.0.0
0.0.0.0
192.168.0.250
192.168.0.11
1
127.0.0.0
255.0.0.0
127.0.0.1
127.0.0.1
1
192.168.0.0
255.255.255.0
192.168.0.11
192.168.0.11
1
192.168.0.11
255.255.255.255 127.0.0.1
127.0.0.1
1
192.168.0.255
255.255.255.255 192.168.0.11
192.168.0.11
1
224.0.0.0
224.0.0.0
192.168.0.11
192.168.0.11
1
255.255.255.255
255.255.255.255 192.168.0.11
192.168.0.11
1
Default Gateway:
192.168.0.250
===============================================================
•
•
Microsoft OSの場合、netstat -rnでも表示可
IPv6ではnetsh int ipv sh routeでも表示可
IPアドレスとマスク
• IPv4アドレスは32ビット長
• IPv6アドレスは128ビット長
現在主流
次世代
• マスクはIPネットワークの区別に利用
• IPアドレスのネットワークアドレスとして利用している範
囲を指定
– 連続してビットが立っているとネットワーク部分を表す
• IPアドレスのネットワークアドレス部分が
– 同じだと同一ネットワーク
– 異なると別ネットワーク
IPv4アドレスの表記方法
• 32ビット(4バイト)を1バイトずつドットで区切る
– 例)172.16.0.254
– 1バイトずつの区切りをオクテットと呼ぶ
– 左の始まりが第1オクテット、右の終りが第4オクテット
• マスクの表記は2通り
– 例)255.255.255.128
– 例)/25
– 上記いずれも先頭から25ビット1が立っている
11111111.11111111.11111111.10000000
IPv4アドレスの表記方法
• 今回は第4オクテットのみを比較
172.16.0.60/25と
172.16.0.120/25と
172.16.0.129/25というIPホスト
• 172.16.0.60/25と
172.16.0.120/25が
172.16.0.0/25という
ネットワークに属する
10進数
60
120
129
2進数
00111100
01111000
10000001
• 172.16.0.129/25は
172.16.0.128/25という
ネットワークに属する
マスクビットと比較
00000000
00000000
10000000
10進数
0
0
128
IPv4アドレス
• 同一ネットワークに属するIPアドレスのうち、
– 先頭はネットワークアドレス
– 最後はブロードキャストアドレス
ホストでは使用不可
172.16.0.0/25
172.16.0.127/25
• 属するネットワークが異なるIPホスト同士の通信には、
ルータが必要
172.16.0.0/25
.60
.120
172.16.0.128/25
.129
IPv6アドレスの表記方法
• 128ビット(16バイト)を16ビット(2バイト)ずつコロン
で区切り、16進数で表す
–
–
–
–
例)2001:610:240:0:53::4
0の連続は一箇所のみ省略可
上位64ビットがネットワークアドレスを表す
下位64ビットがホストアドレスを表す
Prefixと呼ぶ
Interface IDと呼ぶ
• Prefix長の表記
– 例)/64
– 例)/48
通常、ISPはホストに対して/64でPrefixを払い出す
通常、ISPはネットワークに対して/48でPrefixを払
い出す。ローカルネットワークの管理者は16ビッ
トを補完して使用する。
インターネット上のIPv6対応状況