Upload
trinhdat
View
227
Download
7
Embed Size (px)
Citation preview
第七講インターネットアーキテクチャ
環境情報学部
湧川 隆次
2006年度秋学期 授業日程 (後半)
11/14 Internet Protocol version 6
11/28 移動体通信技術 (代講 三屋光史朗)
12/05 次世代トランスポート層技術 (代講 西田佳史)
12/12 コネクションレス型の通信技術とサービス
12/19 P2P通信技術
01/09 授業総括
Internet Protocol version 6
Fiber, Wireless and Cables
Internet Technology
Application
Cell Phone: W-CDMA, CDMA2000, 1x EVDO, HSDPA
WLAN: 802.11a/b/gWMAN: 802.16, 802.20WPAN: 802.15.3, zigbee, bluetooth
IP Telephony: VoIP, SIP, ENUM
IP Mobility: MIP, NEMO
IP dynamic network: MANET
WWW AAA
Satellite
Mail VoIP IPTV
社会のインフラとして発達してきたインターネット
来るべき未来に向けて
空気があるから声が伝わるし、光があるからものが見える。コミュニケーションが生まれ、文化・政治・経済が生まれる。インターネットは空気や光みたいなもの。使う人々の創造性によって新しい未来が実現する。
人をどこでも支えられるように!
PAN
Internet ITS Inter-vehicle
VoIP
Multimedia ApplicationsMP3, video streamingMobile Desktop
Home Network
Wearable
Robot
The Internet
IPv4の問題点
IPアドレスの枯渇 IPv4のアドレス数約43億個(32bit)< 世界の人口
ネットワーク家電・自動車などの識別への要求
世界中のインフラとなるには量不足
NATの普及 end-to-end 通信と双方向性の阻害
実時間性を要求するアプリケーションの普及
インターネットライブ
オンラインゲーム
映像・音声コミュニケーション
IPv6とIPv4の違い
アドレス空間の拡大 32bitから128bitへ
32bit 約20億~40億
128bit340,282,366,920,938,463,463,374,607,431,768,211,456
アドレスアーキテクチャ 階層的構造
スコープの導入
アドレス種別
IPv6とIPv4の違い (cont.)
高速化への対応 ヘッダフォーマットの簡易化
利用されていないフィールドを削除
固定長
チェックサムの廃止
経路上におけるパケット分割の廃止
実時間性への対応 フローラベル
クラスフィールド
セキュリティ IPsecを標準とする
新たなアドレス体系への期待
IPv4 の反省をいかして作り直そうという動き IP version 6 の登場
IPv4 からの改善点
アドレス空間の拡張
高速化への対応
フラグメントの廃止
ヘッダの簡素化
追加機能
プラグアンドプレイ
IPsecの標準サポート
バケツ一杯分の砂の数 太陽一個分(地球100万個分) の体積の砂の数
長さで1mm 銀河系の直径の84,000倍
IPv4 – 32 bit IPv6 – 128 bit
最大の利点アドレス空間の大拡張
高速化への対応
中間ルータでのパケット分割の廃止 ルータへの負荷原因であるフラグメントを行わない
経路上での最小パケットサイズ(MTU)で送信する
Path MTU Discoveryにより経路上の最小MTUを知る
ヘッダフォーマットの簡易化
実質的に利用されていないフィールドの削除
固定長への変更
チェックサムの廃止
高速化への対応Path MTU Discovery
経路上でのパケットの細分化をさけるため、あらかじめ経路上の最小MTUを発見
中継ルータでのパケットの細分化のオーバーヘッドを軽減
データリンクの種類によってMTUのサイズは違う
Ethernet 1500
IP over ATM 9180
PPPoE 1492
1500 1492 9180
経路上の最小MTUを基準にしてパケットを細分化1492バイト
中継ルータはMTUを気にせず転送するため、処理負荷が低くなる
IPv6 - インターネット本来の姿
アドレス空間の拡大 End-to-End モデルの復活
新たな要求に対応する機能 マルチキャスト
IPsec
Mobile IP
自動設定 アドレス自動設定機構の標準化
ネットワークのリナンバリング
高速化への対応複雑IPv4ヘッダフォーマット
バージョン(4bit)
ヘッダ長(4bit)
サービスタイプ(TOS)(8bit)
全データ長(バイト単位)(16bit)
識別子(16bit)
フラグ(3bit)
フラグメントオフセット(13bit)
Time To Live(8bit)
プロトコル(8bit)
ヘッダチェックサム(16bit)
発信元IPアドレス(32bit)
宛先IPアドレス(32bit)
(オプション)(可変長) (パディング)
データ
0 31
IPv6で削除または名称変更されたフィールド
高速化への対応簡素なIPv6ヘッダフォーマット
バージョン(3bit)
優先順位(9bit)
フローラベル(20bit)
ペイロード長(16bit)
次ヘッダ(8bit)
Hop Limit(8bit)
データ
0 31
発信元IPアドレス(128bit)
宛先IPアドレス(128bit)
拡張ヘッダ(可変長)
IPv4から名称変更されたフィールド
高速化への対応IPv4ヘッダ vs. IPv6ヘッダ
IPv4ではヘッダ中に可変長のオプションフィールド
IPv6ではヘッダは固定長、オプションヘッダをヘッダ本体の後ろに追加する(詳細は後述)
オプションフィールド
拡張ヘッダ
IPv4ヘッダ
拡張ヘッダ
・・・拡張ヘッダ
固定長(40byte)必須情報を格納
可変長(0byte~)オプションな情報全てのノードで利用する情報は前方に終点でのみ利用する情報は後方に。
拡張ヘッダ
Next Header = TCP
Next Header = TCP
IPv6 Header TCP Header
IPv6 Header
Next Header = EXT
EXT Header TCP Header
•ホップごとのオプションヘッダ
•終点オプションヘッダ
•ルーティングヘッダ
•フラグメントヘッダ
•認証ヘッダ
•暗号化ヘッダ
•終点オプションヘッダ(最終)
拡張ヘッダ (cont.)
順序の推奨 処理の効率化を期待
違う順序でも処理できなければいけない
すべてのノードで処理すべきものと分離 ホップ・バイ・ホップ・オプション
終点オプション
処理できないヘッダはICMPでエラー返送もしくは無視
拡張ヘッダの長さは8オクテットの整数倍
各拡張ヘッダの概要
Hop-by-Hop Option Header パケットサイズが64K以上のジャンボグラムやQoSに利用 各ルータで処理される
Routing Header 経由するルータを指定するために利用 Mobile IPv6でも利用される(次回)
Fragment Header パスMTUより大きなパケットを送信する際に送信元がパケットをフラグメント化するために利用
Destination Option Header パケットの終点ノードでのみ参照される Mobile IPv6で利用される(次回)
Authentication Header, ESP header IPsecに利用される
次ヘッダフィールドと拡張ヘッダ
拡張ヘッダ
拡張ヘッダ
・・・拡張ヘッダ
バージョン(3bit)
優先順位(9bit)
フローラベル(20bit)
ペイロード長(16bit)
次ヘッダ(8bit)
Hop Limit(8bit)
発信元IPアドレス(128bit)
宛先IPアドレス(128bit)
IPv6ヘッダ、拡張ヘッダはそれぞれ次ヘッダフィールドを持つ
IPv6における拡張ヘッダの配置
IPv6ヘッダ ペイロード
Hop-by-Hop option header(0)
Destination option header(60)
Routing header(43)
Fragment header(44)
Authentication header(51)
ESP header(50)
Destination optionheader(60)
()内はプロトコル番号:次ホップフィールドで指定
セキュリティ関連の拡張ヘッダ
拡張ヘッダには推奨される配置順がある
オプションの形式
Option Type Option Len Option Data
00 パケットを破棄せず、次のヘッダへ01 パケットを破棄10 パケットを破棄し,ICMPエラーを発信元へ11 パケットを破棄し,
マルチキャストでない場合ICMPエラー発信元へ
0 オプションデータは途中で変更しない1 オプションデータは途中で途中で変更
オプション種別
Option Len オクテット
ホップバイホップ・オプション・ヘッダ
パス上のすべてのノードで処理するオプション
一つまたは複数のオプションを含む
Next Header Hdr Ext Len
Options
ルーティング・ヘッダ
途中経路を発信元が指定
現在 type 0 のみ規定
Next Header Hdr Ext Len Routing Type Segment Left
Reserved
Address[0]
Address[1]
Address[n]
終点オプション・ヘッダ
終点に通知するオプション情報を指定
Next Header Hdr Ext Len
Options
No Next Header
つぎに拡張ヘッダが続かないときのヘッダタイプ
ペイロードがないときのヘッダの終端
IPv6アドレス構造
アドレス構造と表記法
アドレス種類とスコープ
IPv6 アドレス表記
128bit を 16進数で表す
4桁ごとに 「 : 」 で区切る
3ffe:501:100c:e320:2e0:18ff:fe98:936d
連続する「0」は省略可能
3ffe:501:100c:e320:0:0:0:1 →3ffe:501:100c:e320::1
IPv6 アドレス構造
ネットワークプレフィクス とインタフェースID に分かれる
ネットワークプレフィクス (上位nbit) (64)
ホストID (下位“128-n”bit) (64)
EUI-64
Ethernet の場合,MAC アドレスを元に決定
IPv6アドレスの構造(RFC3587)
サブネット1 サブネット2 サブネット3
ユーザネットワーク
IPv6ネットワーク全体
グローバルルーティングプレフィックス
サブネットID
インタフェースID
64bit64bit
IPv6におけるアドレス表記
可読性を高めるために連続する0は「::」で省略可能 2001 : 0200 : 0000 : 8002 : 0202 : 4755 : 5ea5 : 3085
2001 : 200 : 0000 : 8002 : 202 : 4755 : 5ea5 : 30852001 : 200 : : 8002 : 202 : 4755 : 5ea5 : 3085
省略は1度のみ可能
プレフィックス長は「/」で続ける 2001 : 200 : : 8002 : 202 : 4755 : 5ea5 : 3085/64
2001:0200:0000:8002 0202:4755:5ea5:308564bit ネットワークプレフィックス 64bit インタフェースID
アドレス種別
Unicast Address 単一のインタフェースに対して割り当てられる
Anycast Address 複数のインタフェースに対して割り当てられ、そのうちのどれか1つに対して配送される
Multicast Address 複数のインタフェースに対して割り当てられ、それらすべてに配送される
スコープの概念
Global address インターネット全体において有効な,単一なアドレス
Link-Local address 同一リンク上のみ有効なアドレス
fe80::1
Site-Local address サイト内でのみ有効なアドレス
Unique Local Addressへ移行済み
fc00::1000:0:0:0:1
定義済みマルチキャストアドレス
FF00:0:0:0:0:0:0:0 予約FF01:0:0:0:0:0:0:0 予約
:FF0F:0:0:0:0:0:0:0 予約FF01:0:0:0:0:0:0:1 ノード内の全 IPv6 ノードFF02:0:0:0:0:0:0:1 リンク内の全 IPv6 ノードFF01:0:0:0:0:0:0:2 ノード内の全 IPv6 ルータFF02:0:0:0:0:0:0:2 リンク内の全 IPv6 ルータFF02:0:0:0:0:0:0:C DHCP サーバ/リレーエージェント
全 IPv6 ノードに対する通信例
% ping6 ff02::1%eth0
PING ff02::1(ff02::1) from fe80::2e0:18ff:fe98:936d eth0: 56 data bytes
64 bytes from ::1: icmp_seq=0 hops=64 time=1.2 ms
64 bytes from fe80::2d0:b7ff:fe9a:6f27: icmp_seq=0 hops=64 time=1.3 ms (DUP!)
64 bytes from fe80::2e0:18ff:fe01:81f7: icmp_seq=0 hops=64 time=1.4 ms (DUP!)
64 bytes from fe80::2d0:b7ff:fe9a:6b58: icmp_seq=0 hops=64 time=1.7 ms (DUP!)
64 bytes from fe80::2e0:18ff:fea8:c706: icmp_seq=0 hops=64 time=1.8 ms (DUP!)
64 bytes from fe80::240:26ff:fe66:a4: icmp_seq=0 hops=64 time=1.8 ms (DUP!)
64 bytes from fe80::200:86ff:fe42:55ff: icmp_seq=0 hops=64 time=1.9 ms (DUP!)
64 bytes from fe80::2e0:18ff:fea8:34c8: icmp_seq=0 hops=64 time=2.2 ms (DUP!)
64 bytes from fe80::210:4bff:fe92:cc93: icmp_seq=0 hops=64 time=2.2 ms (DUP!)
64 bytes from fe80::250:70ff:fe01:d2c8: icmp_seq=0 hops=64 time=2.3 ms (DUP!)
64 bytes from fe80::2a0:ccff:fe73:34f7: icmp_seq=0 hops=64 time=2.4 ms (DUP!)
64 bytes from fe80::2e0:18ff:fea8:4e0a: icmp_seq=0 hops=64 time=2.6 ms (DUP!)
ノードの持つアドレス例
各インタフェースごとのリンクローカルアドレス
Global Unicast アドレス
ループバックアドレス
全ノードマルチキャストアドレス
ノードの属するその他のマルチキャストアドレス
ノードの持つアドレス例 (cont.)
eth0 リンク方法:イーサーネット ハードウェアアドレス 00:E0:18:98:93:6D
inet6アドレス: fe80::2e0:18ff:fe98:936d/10 範囲:リンク
inet6アドレス: 3ffe:501:100c:d210:2e0:18ff:fe98:936d/64 範囲:グローバル
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXパケット:3333033 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:3459456 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:100
割り込み:11
lo リンク方法:ローカルループバック
inet6アドレス: ::1/128 範囲:ホスト
UP LOOPBACK RUNNING MTU:16144 Metric:1
RXパケット:3323249 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:3323249 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:0
IPv6アドレスの宛先指定方法による分類
ユニキャストアドレス (Unicast Address) 同じアドレスを持つ計算機が唯一
1対1通信に利用
マルチキャストアドレス (Multicast Address) 同じアドレスを持つノードが複数
1対多通信に利用
エニーキャストアドレス (Anycast Address) 同じアドレスを持つノードが複数
1対1通信に利用
通信開始時点の経路情報に基づき通信相手が決定される
エニーキャスト
London
France
Hong KongSan Jose
同じエニーキャストアドレスXXXXを持つホスト
XXXX宛のパケット
は経路に基づき転送
される
永続的なマルチキャストアドレス
全ノードマルチキャストアドレス FF01 : : 1 インタフェースローカルスコープ
FF02 : : 1 リンクローカルスコープ
全ルータマルチキャストアドレス FF01 : : 2 インタフェースローカルスコープ
FF02 : : 2 リンクローカルスコープ
FF03 : : 2 サイトローカルスコープ
要請ノードマルチキャストアドレス FF02 : : 1 : FF00 : 0000 ~ FF02 : : 1 : FFFF : FFFF(リンクローカルスコープ) 下位24ビット=インタフェースIDの下位24ビット
IPv4のブロードキャストアドレスはFF02::1をさす
リンクローカルスコープのマルチキャストアドレスの使い道
リンクローカル全ノードマルチキャスト
同リンクに接続する全ノードから情報取得する際に利用
例えばリンクローカルアドレスを知りたい場合に利用される
情報要請僕宛だ!
僕宛だ!僕宛だ!
リンクローカルスコープのマルチキャストアドレスの使い道
リンクローカル全ノードマルチキャスト
同リンクに接続する全ノードから情報取得する際に利用
例えばリンクローカルアドレスを知りたい場合に利用される
情報取得
返答 返答
返答
リンクローカルスコープのマルチキャストアドレスの使い道
リンクローカル全ルータマルチキャスト
リンク上の全てのルータとの通信に利用
非ルータは無駄なパケット処理をする必要はない
リンクローカル全ルータマルチキャストアドレス宛に情報要請
僕宛じゃないな
僕宛じゃないな僕宛だ!
リンクローカルスコープのマルチキャストアドレスの使い道
リンクローカル全ルータマルチキャスト
リンク上の全てのルータとの通信に利用
非ルータは無駄なパケット処理をする必要はない
情報取得
返答
リンクローカル全ルータマルチキャストはステートレスアドレス自動設定におけるルータ要請メッセージに利用される(後述)
エニーキャストアドレス
構造はユニキャストアドレスと同じ エニーキャストアドレスはユニキャストアドレスのために取得されたアドレス空間の一部を利用
ユニキャストアドレス同様3種類のスコープを持てる
エニーキャストアドレスの利点 特定のサービスを提供するホストがそれぞれ同じエニーキャストアドレスを持っている場合
サービスとアドレスのバインディングが可能
エニーキャストアドレス宛のパケットは経路に基づき転送される
プラグアンドプレイ
ステートフルアドレス自動設定
ステートレスアドレス自動設定
EUI-48 から EUI-64への変換方法
IPv6の持つアドレス自動生成方法(1/2)
ステートフルアドレス自動設定
DHCPv6サーバに問い合わせることで設定
自動設定される項目
グローバルユニキャストアドレス
デフォルトルート
DNSサーバ情報(RFC3646)
SIPサーバ情報(RFC3319)
ステートレスアドレス自動設定
ネットワークに接続するだけで自動的に設定される
自動設定される項目
グローバルユニキャストアドレス
デフォルトルート
IPv6の持つアドレス自動生成方法(2/2)
DHCPv6サーバ
アドレスリスト(1)アドレス要請
(2)アドレス情報+付加情報
ステートフルアドレス自動生成
ルータ要請Router Solicitation
ルータ広告Router AdvertisementインタフェースID
xxxxx
ステートレスアドレス自動生成
ステートレスアドレス自動設定
ルータ要請Router Solicitation
ルータ広告Router AdvertisementインタフェースID
xxxxx
ICMPv6
Internet Control Message Protocol for IPv6
IP における通信の制御
エラー通知
通信状況の通知
ICMP を使ったアプリケーション
ping, traceroute
NDP の機能
ARP(Address Resolution Protocol) からNDP(Neighbor Discovery Protocol)へ
ICMPとして実装
IP 層とリンク層の対応付けを解決 近隣ノードの発見
近隣ノード不到達性の検知
重複アドレスの検知
自動設定 ルータ発見
自動アドレス設定
リダイレクト
NDP メッセージタイプ
Router Solicitation ノードがルータに問い合わせ
Router Advertisement プリフィックス,アドレス設定情報,ホップリミット推奨値
Neighbor Solicitation リンク層アドレス問い合わせ,確認
Neighbor Advertisement 問い合わせへの応答
Redirect よりよい経路への変更指示
ホスト自動設定
Stateless Address Auto Configuration
アドレスと経路を自動設定
NDP として実装
EUI-64 を用いたアドレスRouter
Host Host
RA
プラグ&プレイ
ステートレスアドレス自動設定インタフェースIDの自動生成 (1/3)
インタフェースIDの自動生成
MACアドレスを利用する方法が一般的
MACアドレスをEUI-48からEUI-64へ変換する
00:11:24:79:8e:8200000000 00010001 00100100 01111001 10001110 10000010
16進数表記
2進数表記
OUI ベンダーによる割当て
ステートレスアドレス自動設定インタフェースIDの確認方法(Linux)
zux***.sfc.keio.ac.jpにログイン
/sbin/ifconfig eth0
MACアドレス 00:08:02:1F:02:17 インタフェースID 02:08:02:ff:fe:1f:02:17
MACアドレス
インタフェースID
ステートレスアドレス自動設定ルータ広告を基にしたグローバルアドレス生成
ルータ要請Router Solicitation
ルータ広告Router AdvertisementインタフェースID
0211:24ff:fe79:8e82 2001:200:0:8803
0211:24ff:fe79:8e822001:200:0:8803 :グローバルユニキャストアドレスの出来上がり
IPv6拡張ヘッダとIPsec
各種オプションヘッダ
IPsecとは
Authentication Header
Encapsulating Security Payload
IPsec の目標
機構はアルゴリムズに独立であり.取り替え可能であること
デフォルトアルゴリズムを指定
keyed MD5,DES CBC,…
3つの要求を充足
認証
改ざん防止
機密保護
2つのセキュリティ メカニズム
AH ‐ Authentication Header
認証と完全性を保証
ESP ‐ Encapsulating Security Payload
機密性を保証
IPsec
IPsec(RFC2401) 暗号や改ざん防止などのセキュリティ機能を提供
IPv4は拡張によりIPsecに対応可能、IPv6はIPsecに標準対応
IPsecの機能 機密性(confidentiality) 完全性(integrity) 認証(authentication) 否認防止(non-repudiation) アクセス制御(access control) リプレイ防御(anti-replay)
IPを利用する全てのプロトコル・アプリケーションにおける安全性を向上させることが可能!
Authentication Headerパケットの完全性を保証
ペイロード長(8bit)
Reserved(16bit)
認証データ:ICV(可変長)(32bit)
0 31
次ヘッダ(8bit)
セキュリティパラメータインデックス(SPI)(32bit)
シーケンス番号(32bit)
認証データ:通信相手とあらかじめ決めておいた鍵によって生成したパケットの特殊なチェックサム(ICV: Integrity Check Value)を示す。
途中で改ざんされたパケットは、認証データフィールドを利用することで検出可能となる。鍵が安全に通信相手と交換されている限り非常に安全!
Encapsulating Security Payload (ESP)ペイロードの暗号化
セキュリティパラメータインデックス(SPI)(32bit)
暗号化されたペイロードデータ(可変長)
0 31
シーケンス番号(32bit)
パディング長(8bit)
次ヘッダ(8bit)
パディング(0~255バイト)
認証データ:ICV(可変長)
ESPヘッダ
ペイロード
ESPトレーラ
ESP認証データ
暗号化ペイロードIPヘッダ ESPESP認証データ
ESPトレーラ
暗号化ヘッダ(ESP)
ESP ‐ Encapsulating Security Payload
IPv6パケットの機密性を確保
ESP - トランスポートモード
ペイロードを暗号化して,ESPに入れる
IP Hdr Ext Hdr TCP DataESP前
ESP後 IP Hdr Ext Hdr ESP TCP Data ESPAuth
暗号化
認証・完全性
トランスポートモード
Internet
IP Payload
IP ESP
IP Payload
IP ESP
ESP - トンネルモード
IPデータグラム全体を暗号化して
IP Hdr Ext Hdr TCP DataESP前
ESP後 IP Hdr Ext Hdr ESP TCP Data ESPAuthIP Hdr Ext Hdr
暗号化
認証・完全性
トンネルモード
Internet
IP1 Payload
IP2 IP1 ESP
IPsec-GW IPsec-GW
IP2 IP1 ESP
IP1 Payload
まとめ
IPv6の最大のメリット 巨大なアドレス空間を利用可能 全ての人・モノ同士をつなぐインフラになり得る
IPv6の設計方針 パケット転送の高速化
Path MTU Discovery IPv6ヘッダの簡素化
プラグアンドプレイ ステートフルアドレス自動設定 ステートレスアドレス自動設定
拡張ヘッダによるオプション IPsecを標準サポート(AH, ESP)