Comments
Description
Transcript
授業資料
第七講 インターネットアーキテクチャ 環境情報学部 湧川 隆次 2006年度秋学期 授業日程 (後半) 11/14 11/28 Internet Protocol version 6 移動体通信技術 (代講 三屋光史朗) 12/05 12/12 12/19 01/09 次世代トランスポート層技術 (代講 西田佳史) コネクションレス型の通信技術とサービス P2P通信技術 授業総括 Internet Protocol version 6 社会のインフラとして発達してきたインターネット Application WWW AAA IP Telephony: VoIP, SIP, ENUM VoIP Mail Internet Technology IP dynamic network: MANET IP Mobility: MIP, NEMO Cell Phone: W-CDMA, CDMA2000, 1x EVDO, HSDPA Fiber, Wireless and Cables Satellite IPTV WLAN: 802.11a/b/g WMAN: 802.16, 802.20 WPAN: 802.15.3, zigbee, bluetooth 来るべき未来に向けて 空気があるから声が伝わるし、光があるからものが見える。 コミュニケーションが生まれ、文化・政治・経済が生まれる。 インターネットは空気や光みたいなもの。 使う人々の創造性によって新しい未来が実現する。 人をどこでも支えられるように! VoIP Multimedia Applications MP3, video streaming Mobile Desktop email The Internet Internet ITS Inter-vehicle Robot Home Network PAN Wearable IPv4の問題点 IPアドレスの枯渇 NATの普及 IPv4のアドレス数約43億個(32bit)< 世界の人口 ネットワーク家電・自動車などの識別への要求 世界中のインフラとなるには量不足 end-to-end 通信と双方向性の阻害 実時間性を要求するアプリケーションの普及 インターネットライブ オンラインゲーム 映像・音声コミュニケーション IPv6とIPv4の違い アドレス空間の拡大 32bitから128bitへ 32bit 約20億∼40億 128bit 340,282,366,920,938,463,463,374,607,431,768,211,456 アドレスアーキテクチャ 階層的構造 スコープの導入 アドレス種別 IPv6とIPv4の違い (cont.) 高速化への対応 実時間性への対応 ヘッダフォーマットの簡易化 利用されていないフィールドを削除 固定長 チェックサムの廃止 経路上におけるパケット分割の廃止 フローラベル クラスフィールド セキュリティ IPsecを標準とする 新たなアドレス体系への期待 IPv4 の反省をいかして作り直そうという動き IP version 6 の登場 IPv4 からの改善点 アドレス空間の拡張 高速化への対応 フラグメントの廃止 ヘッダの簡素化 追加機能 プラグアンドプレイ IPsecの標準サポート 最大の利点 アドレス空間の大拡張 IPv4 – 32 bit バケツ一杯分の砂の数 長さで1mm IPv6 – 128 bit 太陽一個分(地球100万個分) の体積の砂の数 銀河系の直径の84,000倍 高速化への対応 中間ルータでのパケット分割の廃止 ルータへの負荷原因であるフラグメントを行わない 経路上での最小パケットサイズ(MTU)で送信する Path MTU Discoveryにより経路上の最小MTUを知る ヘッダフォーマットの簡易化 実質的に利用されていないフィールドの削除 固定長への変更 チェックサムの廃止 高速化への対応 Path MTU Discovery 経路上でのパケットの細分化をさけるため、あらかじめ経路上 の最小MTUを発見 中継ルータでのパケットの細分化のオーバーヘッドを軽減 データリンクの種類によってMTUのサイズは違う Ethernet IP over ATM PPPoE 1500 9180 1492 経路上の最小MTUを基準にしてパケットを細分化 1492バイト 1500 1492 9180 中継ルータはMTUを気にせず転送するため、処理負荷が低くなる IPv6 - インターネット本来の姿 アドレス空間の拡大 新たな要求に対応する機能 End-to-End モデルの復活 マルチキャスト IPsec Mobile IP 自動設定 アドレス自動設定機構の標準化 ネットワークのリナンバリング 高速化への対応 複雑IPv4ヘッダフォーマット 31 0 バージョ ン (4bit) ヘッダ長 (4bit) Time To Live (8bit) 全データ長(バイト単位) (16bit) サービスタイプ(TOS) (8bit) 識別子 (16bit) フラグ (3bit) プロトコル (8bit) フラグメントオフセット (13bit) ヘッダチェックサム (16bit) 発信元IPアドレス (32bit) 宛先IPアドレス (32bit) (オプション) (可変長) データ IPv6で削除または名称変更されたフィールド (パディング) 高速化への対応 簡素なIPv6ヘッダフォーマット 31 0 バージョ ン (3bit) 優先順位 (9bit) フローラベル (20bit) ペイロード長 (16bit) 次ヘッダ (8bit) 発信元IPアドレス (128bit) 宛先IPアドレス (128bit) 拡張ヘッダ (可変長) データ IPv4から名称変更されたフィールド Hop Limit (8bit) 高速化への対応 IPv4ヘッダ vs. IPv6ヘッダ IPv4ではヘッダ中に可変長のオプションフィールド オプション フィールド IPv4ヘッダ IPv6ではヘッダは固定長、オプションヘッダをヘッダ本体の後ろに追加す る(詳細は後述) 拡張 ヘッダ 固定長(40byte) 必須情報を格納 拡張 ヘッダ ・・・ 拡張 ヘッダ 可変長(0byte∼) オプションな情報 全てのノードで利用する情報は前方に 終点でのみ利用する情報は後方に。 拡張ヘッダ •ホップごとのオプションヘッダ IPv6 Header •終点オプションヘッダ TCP Header •ルーティングヘッダ Next Header = TCP •フラグメントヘッダ •認証ヘッダ IPv6 Header EXT Header Next Header Next Header = TCP = EXT TCP Header •暗号化ヘッダ •終点オプションヘッダ(最終) 拡張ヘッダ (cont.) 順序の推奨 すべてのノードで処理すべきものと分離 処理の効率化を期待 違う順序でも処理できなければいけない ホップ・バイ・ホップ・オプション 終点オプション 処理できないヘッダはICMPでエラー返送 もしくは無視 拡張ヘッダの長さは8オクテットの整数倍 各拡張ヘッダの概要 Hop-by-Hop Option Header Routing Header パスMTUより大きなパケットを送信する際に送信元がパケットをフラグメント化 するために利用 Destination Option Header 経由するルータを指定するために利用 Mobile IPv6でも利用される(次回) Fragment Header パケットサイズが64K以上のジャンボグラムやQoSに利用 各ルータで処理される パケットの終点ノードでのみ参照される Mobile IPv6で利用される(次回) Authentication Header, ESP header IPsecに利用される 次ヘッダフィールドと拡張ヘッダ バージョ ン (3bit) 優先順位 (9bit) フローラベル (20bit) ペイロード長 (16bit) 次ヘッダ (8bit) Hop Limit (8bit) 発信元IPアドレス (128bit) 宛先IPアドレス (128bit) 拡張 ヘッダ 拡張 ヘッダ ・・・ IPv6ヘッダ、拡張ヘッダはそれぞれ次ヘッダフィールドを持つ 拡張 ヘッダ IPv6における拡張ヘッダの配置 ()内はプロトコル番号:次ホップフィールドで指定 IPv6ヘッダ ペイロード Destination option header(60) ESP header(50) Authentication header(51) Fragment header(44) セキュリティ関連 の拡張ヘッダ Routing header(43) Destination option header(60) Hop-by-Hop option header(0) 拡張ヘッダには推奨される配置順がある オプションの形式 Option Len オクテット Option Type Option Len Option Data オプション種別 0 1 00 01 10 11 オプションデータは途中で変更しない オプションデータは途中で途中で変更 パケットを破棄せず、次のヘッダへ パケットを破棄 パケットを破棄し,ICMPエラーを発信元へ パケットを破棄し, マルチキャストでない場合ICMPエラー発信元へ ホップバイホップ・オプション・ヘッダ パス上のすべてのノードで処理するオプション 一つまたは複数のオプションを含む 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) IPv6ネットワーク全体 ユーザネットワーク サブネット1 グローバルルーティング プレフィックス 64bit サブネット2 サブネット ID サブネット3 インタフェース ID 64bit IPv6におけるアドレス表記 2001:0200:0000:8002 64bit ネットワークプレフィックス 64bit インタフェースID 可読性を高めるために連続する0は「::」で省略可能 0202:4755:5ea5:3085 2001 : 0200 : 0000 : 8002 : 0202 : 4755 : 5ea5 : 3085 2001 : 200 : 0000 : 8002 : 202 : 4755 : 5ea5 : 3085 2001 : 200 : : 8002 : 202 : 4755 : 5ea5 : 3085 省略は1度のみ可能 プレフィックス長は「/」で続ける 2001 : 200 : : 8002 : 202 : 4755 : 5ea5 : 3085/64 アドレス種別 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 FF02:0:0:0:0:0:0:1 FF01:0:0:0:0:0:0:2 FF02:0:0:0:0:0:0:2 FF02:0:0:0:0:0:0:C 予約 予約 予約 ノード内の全 IPv6 ノード リンク内の全 IPv6 ノード ノード内の全 IPv6 ルータ リンク内の全 IPv6 ルータ 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 lo リンク方法:イーサーネット ハードウェアアドレス 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 リンク方法:ローカルループバック 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アドレスの宛先指定方法による分類 ユニキャストアドレス 同じアドレスを持つ計算機が唯一 1対1通信に利用 マルチキャストアドレス (Multicast Address) (Unicast Address) 同じアドレスを持つノードが複数 1対多通信に利用 エニーキャストアドレス (Anycast Address) 同じアドレスを持つノードが複数 1対1通信に利用 通信開始時点の経路情報に基づき通信相手が決定される エニーキャスト Hong Kong San Jose London France ット 送 ケ パ き転 の づ 宛 基 X に X X X 経路 は れる さ 同じエニーキャストアドレス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) ステートフルアドレス自動生成 (1)アドレス要請 (2)アドレス情報+付加情報 ステートレスアドレス自動生成 ルータ要請 Router Solicitation インタフェースID xxxxx ルータ広告 Router Advertisement アドレス リスト DHCPv6サーバ ステートレスアドレス自動設定 ルータ要請 Router Solicitation インタフェースID xxxxx ルータ広告 Router Advertisement 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 Advertisement プリフィックス,アドレス設定情報,ホップリミット推奨値 Neighbor Solicitation ノードがルータに問い合わせ 問い合わせへの応答 Redirect よりよい経路への変更指示 ホスト自動設定 Stateless Address Auto Configuration アドレスと経路を自動設定 NDP として実装 EUI-64 を用いたアドレス Router RA プラグ&プレイ Host Host ステートレスアドレス自動設定 インタフェースIDの自動生成 (1/3) インタフェースIDの自動生成 MACアドレスを利用する方法が一般的 MACアドレスをEUI-48からEUI-64へ変換する 16進数表記 2進数表記 00:11:24:79:8e:82 00000000 00010001 00100100 01111001 OUI 10001110 10000010 ベンダーによる割当て ステートレスアドレス自動設定 インタフェース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 インタフェースID 0211:24ff:fe79:8e82 ルータ広告 Router Advertisement 2001:200:0:8803 グローバルユニキャストアドレスの出来上がり 2001:200:0:8803 : 0211:24ff:fe79:8e82 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) IPsecの機能 暗号や改ざん防止などのセキュリティ機能を提供 IPv4は拡張によりIPsecに対応可能、IPv6はIPsecに標準対応 機密性(confidentiality) 完全性(integrity) 認証(authentication) 否認防止(non-repudiation) アクセス制御(access control) リプレイ防御(anti-replay) IPを利用する全てのプロトコル・アプリケーションにおける安全性 を向上させることが可能! Authentication Header パケットの完全性を保証 31 0 次ヘッダ (8bit) ペイロード長 (8bit) Reserved (16bit) セキュリティパラメータインデックス(SPI) (32bit) シーケンス番号 (32bit) 認証データ:ICV(可変長) (32bit) 認証データ: 通信相手とあらかじめ決めておいた鍵によって生成したパケットの特殊な チェックサム(ICV: Integrity Check Value)を示す。 途中で改ざんされたパケットは、認証データフィールドを利用することで 検出可能となる。鍵が安全に通信相手と交換されている限り非常に安全! Encapsulating Security Payload (ESP) ペイロードの暗号化 0 31 セキュリティパラメータインデックス(SPI) (32bit) ESPヘッダ シーケンス番号 (32bit) 暗号化されたペイロードデータ (可変長) ペイロード パディング(0∼255バイト) パディング長 (8bit) 次ヘッダ (8bit) ESP認証 データ 認証データ:ICV (可変長) IPヘッダ ESP 暗号化ペイロード ESP トレーラ ESP トレーラ ESP 認証データ 暗号化ヘッダ(ESP) ESP ‐ Encapsulating Security Payload IPv6パケットの機密性を確保 ESP - トランスポートモード ペイロードを暗号化して,ESPに入れる ESP前 IP Hdr Ext Hdr TCP Data ESP後 IP Hdr Ext Hdr ESP TCP Data 暗号化 認証・完全性 ESP Auth トランスポートモード Internet IP Payload IP Payload IP ESP IP ESP ESP - トンネルモード IPデータグラム全体を暗号化して ESP前 IP Hdr Ext Hdr TCP Data ESP後 IP Hdr Ext Hdr ESP IP Hdr Ext Hdr TCP Data 暗号化 認証・完全性 ESP Auth トンネルモード Internet IPsec-GW IP1 IPsec-GW Payload IP2 IP1 IP1 ESP IP2 IP1 Payload ESP まとめ IPv6の最大のメリット 巨大なアドレス空間を利用可能 全ての人・モノ同士をつなぐインフラになり得る IPv6の設計方針 パケット転送の高速化 Path MTU Discovery IPv6ヘッダの簡素化 プラグアンドプレイ ステートフルアドレス自動設定 ステートレスアドレス自動設定 拡張ヘッダによるオプション IPsecを標準サポート(AH, ESP)