41
1 ネットワーク レイヤ - IP (Internet Protocol) - (1) IP (Internet Protocol) (2) Addressing (3) ARP (4) Routing (5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP (7) Multicast

ネットワークレイヤ - WIDE University · →0-7,8-15,16-23,24-31 の順序 ・TOSフィールド(8 bits ; 4bits ... • VLSM(Valiable Length Subnet Mask)

Embed Size (px)

Citation preview

1

ネットワーク レイヤ

- IP (Internet Protocol) -

(1) IP (Internet Protocol) (2) Addressing (3) ARP (4) Routing (5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP(7) Multicast

2

インターネットの階層モデル• IP層はバケツリレー(伝言ゲーム)

• IP層ではじめてエンドエンドの通信が確立

• IPの上位層はIPの機能をするために世界中のホストと通

信できる

Physical

NetworkInterface

IP

TCP

Application

Physical

NetworkInterface

IP

TCP

Application

Physical

NetworkInterface

IP

TCP

Application

Physical

NetworkInterface

IP

TCP

Application

3

ping telnet ftp X tftp bootp smtptraceroute NFS/RPC

TCP UDP

IP ICMP IGMP

Data-Link

FDDI SDH FR ATMEthernet

4

ネットワーク レイヤ

- IP (Internet Protocol) -

→ (1) IP (Internet Protocol)(2) Addressing (3) ARP (4) Routing (5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP

5

IP ; Internet Protocol ・ ベストエフォートでのデータグラム配送

- パケットの廃棄の可能性

・ Connectionlessデータグラム配送- 順序逆転の可能性

・ IPの機能- 「アドレス処理」、「フラグメント処理」

・ IP version 4 (IPv4) - RFC791: “Internet Protocol”, Sept. 1981.

・ IP version 6 (IPv6) - RFC1883: “Internet Protocol Version 6 (IPv6)

Specification”, Apr.1996.

6

IP version 4 (IPv4) Header Format 0 7 8 15 16 23 24 31

TOSversion headerlength

Total length (Bytes)

protocol-idflag(3)

TTL header checksum

datagram-id

source IP addressdestination IP address

01

options (if any)

TCP/UDP data

20 B

ytesFragment offset (13bits)

2

3

4

7

IP version 4 (IPv4) ・ ビット転送順序: “big endian” = “network byte order”

→ 0-7,8-15,16-23,24-31 の順序

・ TOSフィールド(8 bits ; 4bitsが有効) - 現在の実装では通常利用されていない。

→ Differentiated Serviceで利用が再検討中。・ Total Length(16 bits)

→ 最大MTU(Maximum Transfer Unit) ; 65,535 Bytes。→ Host Implementation Requirement ; 576 Bytes。→ Path MTU Discovery (ICMPエラーメッセージを利用)

・ TTL (8 bits) ; max. 256 (i) ループ時のパケット廃棄(ii) パケットの配送Scope

・ Checksum ;→ エラー検出の場合には、Silent discard(通知なし)

8

IPv6パケットヘッダ構成の特徴

・ アドレス長; 32 bits → 128 bits (2^76倍) ・ フラグメントは原則行わない(Option化)・ チェックサムの廃止・ オプションを TLV(Time Length Value)に

より表現(RFC1700) ・ フローラベルの導入

IP version 6 (IPv6) 基本Header Format 0 7 8 15 16 23 24 31

version Priority Flow Label

Next Header TypePayload Length

source IP address (128 bits)

destination IP address (128 bits)

0

234

options (if any)

TCP/UDP data

40 B

ytes

56789

1 Hop-Limit

10

IPv6パケットヘッダ構成IPパケット

IPv6ヘッダ

IPv6拡張ヘッダ

ペイロード

ホップバイホップ・オプション・ヘッダ*ルーティング・ヘッダ(Type0)フラグメント・ヘッダ終点オプション・ヘッダ**認証ヘッダカプセル化セキュリティ・ペイロード

*)すべての中継点で処理**)終点でのみ処理

11

IPv6拡張ヘッダのチェーン

IPヘッダNH=TCPヘッダ

TCP ヘッダ+

データ

IPヘッダNH=ルーテングヘッダ

ルーテングヘッダNH=TCPヘッダ

TCP ヘッダ+

データ

フラグメントヘッダNH= TCPヘッダ

ルーテングヘッダNH=フラグメントヘッダ

IPヘッダNH=ルーテングヘッダ

TCP ヘッダ+

データ

・ TLV (Type Length Value) 形式によるオプションヘッダフォーマット

12

TLV形式の可変長オプションの形式

• TLV(Type-Length-Value)エンコード

• 適当なアライメントを要求

Option Type Option Len Option Data

00-パケットを破棄せず、次のヘッダへ01-パケットを破棄10-破棄し,ICMPエラーを発信元へ11-破棄し,マルチキャストでない場合ICMPエラー発信元へ

0 - オプションデータは途中で変更しない1 - オプションデータは途中で途中で変更

オプション種別

Option Len オクテット

13

ネットワーク レイヤ

- IP (Internet Protocol) -

(1) IP (Internet Protocol)→ (2) Addressing

(3) ARP (4) Routing (5) Address Discovery (e.g., BOOTP) (6) ICMP/IGMP

14

(2) Addressing 1. IPv4 Addressing ; アドレス枯渇への対策

- Subnetting - CIDR(Classless Inter-Domain Routing)

- NAT (Network Address Translation)2. IPv6 Addressing

- Multi-layer3-protocol - Aggregatable Unicast Address - Well-Known Multicast / Anycast Address

15

ネットマスクとプレフィックス

• ネットワーク部は可変

• プレフィックス長によるネットワーク番号表記

net-id

1111..............11111

host-id

プレフィックス長

マスク 0000......0000

アドレス

例)133.201.2/24プレフィックス長

ネットワーク番号

16

CIDR• Classless Inter-Domain Routing (RFC1519)• 枯渇を防ぎながら経路表の増加を防ぐ

• 既存の環境との共存

– すべてをCIDRにする必要はない

• 可変長net-id/netmaskの導入

• Address Aggregation • Supernetting; best-matchテーブル検索

• 長期的な解決はIPv6

17

アグリケーション(集約)• 連続したネットワークのブロック化

ホスト00ネットワーク番号

24

ホスト01ネットワーク番号

ホスト10ネットワーク番号

ホスト11ネットワーク番号

C

C

C

C

プレフィックス

22

4C

- Address Aggregation- 4x(/24アドレス) → 1x(/22アドレス)

18

アグリゲーションの例192.24.0.0 - 192.24.7.0= 192.24.0.0/21

192.24.16.0 - 192.24.31.0= 192.24.16.0/20

192.24.8.0 - 192.24.11.0= 192.24.8.0/22

192.24.34.0 - 192.24.35.0= 192.24.34.0/23

192.32.0.0 - 192.32.15.0= 192.32.0.0/20

192.24.12.0 - 192.24.15.0= 192.24.12.0/22RA RB

192.24.32.0 - 192.24.33.0= 192.24.32.0/23

192.24.32.0/22192.24.0.0/19 192.32.0.0/20

192.24.32.0/22192.24.0.0/19192.32.0.0/20

19

0 1 2 3 12345678 90123456 78901234 56789012

[1] 192.32. 0.0/20 : 11000000.00100000.0000---- --------[2] 192.24.34.0/23 : 11000000.00011000.0010001- --------[3] 192.24.32.0/23 : 11000000.00011000.0010000- --------[4] 192.24.16.0/20 : 11000000.00011000.0001---- --------[5] 192.24. 0.0/21 : 11000000.00011000.00000--- --------[6] 192.24. 8.0/22 : 11000000.00011000.000010-- --------[7] 192.24.12.0/22 : 11000000.00011000.000011-- --------

Aggregate; [2] + [3] = [8] (.34/23 + .32/23)[6] + [7] = [9] (.8/22 + .12/22)

0 1 2 3 12345678 90123456 78901234 56789012

[1] 192.32. 0.0/20 : 11000000.00100000.0000---- --------[8] 192.24.32.0/22 : 11000000.00011000.001000-- --------[4] 192.24.16.0/20 : 11000000.00011000.0001---- --------[5] 192.24. 0.0/21 : 11000000.00011000.00000--- --------[9] 192.24. 8.0/21 : 11000000.00011000.00001--- --------

Aggregate; [5] + [9] = [10] (.0/21 + .8/21)

20

0 1 2 3 12345678 90123456 78901234 56789012

[1] 192.32. 0.0/20 : 11000000.00100000.0000---- --------[8] 192.24.32.0/22 : 11000000.00011000.001000-- --------[4] 192.24.16.0/20 : 11000000.00011000.0001---- --------[5] 192.24. 0.0/21 : 11000000.00011000.00000--- --------[9] 192.24. 8.0/21 : 11000000.00011000.00001--- --------

Aggregate; [5] + [9] = [10] (.0/21 + .8/21)

0 1 2 3 12345678 90123456 78901234 56789012

[1] 192.32. 0.0/20 : 11000000.00100000.0000---- --------[8] 192.24.32.0/22 : 11000000.00011000.000110-- --------[4] 192.24.16.0/20 : 11000000.00011000.0001---- --------[10] 192.24. 0.0/20 : 11000000.00011000.0000---- --------

Aggregate; [4] + [10] = [11] (.16/20 + .0/20)

0 1 2 3 12345678 90123456 78901234 56789012

[1] 192.32. 0.0/20 : 11000000.00100000.0000---- --------[8] 192.24.32.0/22 : 11000000.00011000.000110-- --------[11] 192.24. 0.0/19 : 11000000.00011000.000----- --------

21

可変長サブネットとSupernetting

• VLSM(Valiable Length Subnet Mask)• スーパネット (RFC1518, 1519)• 経路情報

<ネットワーク番号,プレフィックス長,転送ノード>

– 最長一致 (best-match / longest-match)

22

Supernettingの例

192.24.0.0/20

192.24.0.0/20

192.24.0.0/23 192.24.0.0/23

192.24.0.0/23

192.24.0.0/20

0 1 2 3 Next-hop 12345678 90123456 78901234 56789012

192.24.0.0/20 : 11000000.00011000.0000---- -------- R1192.24.0.0/23 : 11000000.00011000.0000000- -------- R2

: : : :: : : :

R1

R2 R3

<< Routing table in R3 >>

Destination next-hop(1) 192.24.1.122 : R2 (2) 192.24.8.36 : R1

23

その他のアドレス倹約策

• Private IP Address • NAT(Network Address Translation )

24

プライベートネットワーク用アドレス

• 組織のホストを次の3つのカテゴリに分類

– 他組織にアクセスする必要のないホスト

– 外部にメイルやTELNETなど限られたサービ

スのみ必要

– IPにより外部とネットワーク層での通信が必要

なホスト

• 外部にIPレベルでアクセスする必要のな

いホスト用

– 業務システム

– ファイアウオールの内側のホスト

25

プライベートネットワーク用アドレス

• IANAにより予約(RFC1918) – 他の組織には割り当てられない

→ しかし、同じアドレスがインターネットの中には存在する。

10.0.0.0 - 10.255.255.255

172.16.0.0 - 172.31.255.255

192.168.0.0 - 192.168.255.255

26

NAT(Network Address Translation)・ 受信パケットのIPアドレス(src_IP)およびポート番号

の(src_port)変換テーブルを持ちIPヘッダの変換。(RFC1631) (1) Private → Global

- DNS : NATルータのIPアドレスが解決される。- 受信パケット(dst_IP)

→ 送信パケットの(src_IP, src_port)の書換え

(2) Global → Private - 受信パケット(src_IP, src_port)

→ 送信パケットの(dst_IP)の書換え

(*) ポート番号(src_port)の機能(i) src_IPの多重化(ii) dst_IPのマッピング

27

NAT

入力 出力アドレス ポート アドレス ポート送信 宛先 送信 宛先 送信 宛先 送信 宛先A ー ー ー

ー ー ーN

NAT CA

CA送信アドレス

A→Nに変換

CN

A C N C宛先アドレス

N→Aに変換

28

Traditional NAT組織内 インターネット

NAT CA

AC

宛先アドレス

100200

宛先ポート番号CA

200100

に変換送信ポート番号 送信アドレス A→N

100200

NC

Basic NAT

CN

200100

N→Aに変換

AC

宛先アドレス

100200

送信ポート番号

宛先ポート番号

CN

150200

200150

NC

CA

200100

A→N、100→150に変換

N→A150→100に変換

送信アドレス

NAPT

29

Bi-directional NAT

組織内 インターネット

NAT CA

AC

宛先アドレス

100200

宛先ポート番号

A→Nに変換

CA

200100

CN

200100

送信アドレス送信ポート番号

100200

NC

N→Aに変換

(1) ホストAのアドレスは?(2)アドレスはNDNS

(3)

(4)

30

Twice NAT

組織内 インターネット

NAT CA

ANl1

(1)ホストC のアドレスは?(2)アドレスは Nl1

A→NgNl1→Cに変換

宛先アドレス

DNS送信アドレス

Ng1C

(3)

Nl1A

CNg1

(4)

Ng→AC→Nl1に変換

31

ネットワーク レイヤ

- IP (Internet Protocol) -(1) IP (Internet Protocol) (2) Addressing

→ (3) ARP(4) Routing (5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP

32

ARP(Address Resolution Protocol)RARP(Reverse ARP)

32 bit Internet Address 32 bit Internet Address : 192.220.20.161

48-bit Ethernet Address 48-bit Ethernet Address

ARP(RFC826)

RARP(RFC903)

: 18:0:20:3:F6:42

(*) IPv6 では、Neighbor Discovery Protocol が提供

33

ARP when we use ftp host_name

host_name

resolver FTP (1)(1) resolve destination IP address(2) establish TCP session(3) send IP datagram to IP module(4) send IP datagram to ARP module(5) send ARP request to Ether driver(6) send ARP request to Ethernet(7) ARP reply from destination host(8) send IP datagram to dst_tcp_module

IP_addr (2)TCP

(3)IP (4)

ARP (5)

Ethernet driver

ARP

Ethernet driver

Ethernet driver

ARP IP

FTP

ARP_request (6)

(7) (8)

34

ARP Cache・ Chaching を行いARPメッセージの不必要な送信を減らす。

- Aging ; 20 分(default) - Chache内容のチェック;

bsdi% arp -a sun (140.252.13.33) at 8:0:20:3:F6:42svr4 (140.252.13.34) at 0:0:C0:C2:9B:26

- Gratuitous ARP ; ARP cacheのFlush/Refresh (*) 通常、bootstrap手続き中に行われる

- ARP Command ; arp表示 ; arp -a消去 ; arp -d追加 ; arp -s host_name, Ethernet_address, [temp]

35

ネットワーク レイヤ

- IP (Internet Protocol) -(1) IP (Internet Protocol) (2) Addressing(3) ARP

→ (4) Routing(5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP

36

インターネットの中での 小包配送

論理的な名前 (FQDN/URI) 宛先IPアドレス ZIPコードMACアドレス 具体的な道

(*) 具体的な道にはいろいろな種類があるZIPコードは、統一化されたもの人間は、番号では理解が難しい

37

Routing[Routingの種類]

(a) 静的ルーティング(static_routing, default_routing) (b) 動的ルーティング(dynamic_routing)

[Routing Process(Dynamic Routing)が行う仕事](i) 経路情報の広告(to 隣接ノード) (ii) 経路の計算(iii) パケットの送信・転送・受信

[パケットの受信時の手続き] (1) host_address の検索(2) network_address の検索(3) defaultエントリー の検索

38

routing daemon

routecommand

netstatcommand

ICMP

IP output: calculate next hop

router (if necessary)

Our packet (one ofour IP addresses or broardcast addrs) ?

Process IP options

IP input queueIP layer

routingtable

yes

noICMPredirect

sourcerouting

forwardpacket

routing protocol information

UDP TCP

network interface

<< Datagram processing in the node >>

39

IPIP経路経路((ルーティングルーティング))制御制御-- What a dynamic routing protocol does What a dynamic routing protocol does --

Webサーバ

R2

R1R3

R4

R5

R6

R7

R8

R9

133.196.16.19

202.249.10.122

A. 経路の計算(back-ground)1.Routing Domain内の全接続情報2. 接続されている全アドレス情報(輸出入)

(Routing Domain 内・外)

202.249.xxx.yyy → R4

202.249.xxx.yyy → R6202.249.xxx.yyy

→ R8

Import & Exportavailable networks

B. L3パケット転送制御(on-demand)→ 宛先=202.249.10.122 (ベストマッチ検索)→ Next Hop=“R2” for 202.249.xxx.yyy

From 133.196.16.19 to 202.249.10.122From 133.196.16.19 to 202.249.10.122

40

IGMP (RFC1112)Operation

MH3192.251.102.34

MH2192.251.102.18

TTL=1,IGMP group addr=0dest_IP_addr=224.0.0.1src_IP_addr=192.251.102.1

TTL=1,IGMP group addr=224.1.2.3dest_IP_addr=224.1.2.3src_IP_addr=192.251.102.18

IGMP reportの送信キャンセル

③192.251.39.11

UH1

UH3

MR1

MR2

192.251.39.1

To Multicast Source NodeUH2

MH1192.251.39.23 192.251.102.1

IGMP QueryIGMP Report

41

ネットワーク レイヤ

- IP (Internet Protocol) -

(1) IP (Internet Protocol) (2) Addressing (3) ARP (4) Routing (5) Address Discovery (e.g., DHCP) (6) ICMP/IGMP