第1回 IPv6セミナー「IPv6の技術解説 -基礎編-」

2002年9月26日
株式会社インターネット総合研究所
江面 祥行 / ezura@iri.co.jp

1

目次• IPv6の世界• IPv6アドレスとは？
• 単純なヘッダ構成、細分化の防止• セキュリティやリアルタイム性確保などの機能の標準実装• IPv6アドレス自動設定機能• ユニキャストアドレス• マルチキャストアドレス• 参考資料2

IPv6の世界

3現在のインターネット（IPv4）•••

米国 国防総省関連（DARPA）がきっかけでルールが作られ、米国はもとより世界に普及
人口60億人に対し、グローバルアドレス43億個⇒ NAT(Network Address Translator の導入・普及)
IPv4のインターネットが普及した一要因– コンセンサスのとれたモデル（社内のPCから、NATを介してインターネット上のサーバにアクセス）– このモデルに添った、装置開発、ビジネス開発（統一化されたルータ機能、ホスティング事業の普及）•IPv4における問題点– 情報家電、携帯電話等の非PCへの導入拡大に不向き– NATを介した柔軟なEnd-to-End通信の設定が困難

IPv4

×

NAT

プライベートアドレス

4

IPv6とは• インターネットの爆発的な普及 ⇒ アドレスが枯渇する• 次世代インターネットとしてIPv6が開発された。
– 無尽蔵に使えるグローバルアドレス（携帯、家電、ビル内設備）– 世界共通のセキュリティ仕様＆品質管理仕様（EC、映像配信）– 家電でも簡単設定、プラグ＆プレイ機能。
– その他豊富な機能：マルチキャスト 等。

家電
ゲーム
ﾎｰﾑｾｷｭﾘﾃｨ

IPv6ネットワーク

モバイル
携帯電話

オフィス機器ビル内設備
セキュリティ
EC

各種店舗
5

IPv6が創造する新しいインターネットビジネス
グローバルアドレスの範囲

モバイル端末リアルタイム配信

×

IPv4

携帯電話網
端末間でのEnd-to-Endセキュア通信

リモート
コントロール

NAT

IPv4 : 片方向の通信
Client & Server以外のモデルへの適用にはいろいろと制限が発生する。

IPv6

LAN

データ交換

プライベートアドレス

リモート
メンテナンス

ホームネットワーク

情報家電

OA機器

IPv6：双方向の通信
IPv4の制限がとれ、オープンな通信ができることにより・新しい領域が開かれ、業態が一挙に変わる・ネットビジネスとして認識されなかった人が参入する6

IPv6とは何か
IPv6 = IP Version 6
次世代インターネットプロトコル•目的
IPv4における様々な制約/限界の解消
アドレス長の限界ヘッダ処理の複雑さの解消
などなど…

•対象
現在IPv4を利用しているすべての人々
現在インターネットを利用していない全ての人々
7

IPv6の狙い

IPv6– 基本設計思想
・新時代のIPプロトコル
・アドレス不足に対応を・セキュリティーへの考慮
IP技術のある意味で『仕切り直し』『新しいプロトコルへの移行』という新しいチャレンジも8社会基盤形成のために不可欠なIPv6
21世紀情報社会にインターネットは不可欠
誰でも何でも何時でも何処でも使える社会基盤とするためには、IPv4に限界

IPv6
量の問題

→340澗(かん)個の量は無限大に近く、ほぼ全てがインターネットを使える安全の問題→当初からセキュリティ対応がなされ、安く簡単に実現できる魅力の問題→QoS等、動画配信のためのしくみが組み込まれている構成の問題→大規模でグローバルなネットワークを想定している技術開発と社会合意の両面で「民間の力を結集」して取り組むことが重要
9

IPv6技術・普及状況
・標準化作業

・機器okok- 端末- ルータ- ゲートウェイ- 相互接続性・社会基盤- アドレス割り当てok- DNS update
課題- IPv6 ネットワーク運用 課題10

IPv6アドレスとは？

11

IP Next Generation• １９９１年７月– IPアドレスが足りなくなる、という研究を受けてIETFが調査開始• １９９２年１１月– RFC1380 アドレスの先行き調査結果– 次世代のインターネットプロトコル検討開始• １９９３年１２月– RFC1550 IPngへの機能要求

12

IPv6への道• １９９５年１月– RFC1752 SIPPをベースにアドレスを128bit化– IPng(next generation)から IPv6 (IP version 6)へと正式に改名• １９９５年１２月– RFC1884 IPv6 Addressing Architecture• １９９８年７月に RFC2373 として改定• １９９８年末 IPv6関係RFC大改定– RFC2460 IPv6 Specification, etc…
13

IPv6 のアドレス空間• アドレスの長さは128ビット– IPv4 の4倍の長さ– IPv4 の296倍のアドレス数• 2128個のアドレス数– だいたい 3.4×1038 個– ばら撒いても陸地 1cm2あたり 2.2×1020個• とにかく想像できないくらいたくさん！

14

経路情報の集約• 経路情報を集約するためには…
– クラスレスなアドレス構造– ネットワークの構造に応じた割り振り– 同じネットワークには連続したアドレスブロックを割り振る• IPv6 は IPv4 での経験を元に集約可能(Aggregatable)なアドレス構造となっている。

15

IPv6のアドレス構造• 「集約可能グローバルユニキャストアドレス」• ネットワークトポロジに応じた階層構造を持つアドレス
3

13

8

24

1664FP
ID
ビットのインタフェース
ID
１２８ビットのIPv6アドレス
NLA１２８ID SLA
FPTLA
TLAID
ID 予約SLAIDIDIPv6 アドレス
インタフェースID
予約 NLA
パブリックトポロジサイト
トポロジ

FPFormatFP
FormatPrefix
Prefix[001][001]
TLA
Top
TLAID
ID
TopLevel
LevelAggregation
AggregationID
ID
NLA
Next
NLAID
ID
NextLevel
LevelAggregation
AggregationID
ID
SLA
Site
SLAID
ID
SiteLevel
LevelAggregation
AggregationID
ID
インターフェース
ID Interface
インターフェースID
InterfaceIDID
16

階層的な割り振り

バックボーン
バックボーン
プロバイダ
プロバイダ

ISP
ISP

ISP
ISP

ISP
ISP

エンド
エンド
ユーザ
ユーザ

エンド
エンド
ユーザ
ユーザ

エンド
エンド
ユーザ
ユーザ

17

アドレス割り振りの例
3

824

16

FP TLA ID

予約
予約

NLA
NLAID
ID

SLA
SLAID
ID

ﾊﾞｯｸﾎﾞｰﾝ
FP TLA ID
ﾌﾟﾛﾊﾞｲﾀﾞ

予約

TLA

13

NLA
NLAID
ID SLA
SLAID
ID

96bits/32/48×65,536

ISP FP TLA ID

予約

SLA
SLAID
ID

/40
エンド FP TLA ID
ユーザ

88bits/48×256

予約

NLA ID

SLA
SLAID
ID

/48

80bits/64×65,536

サブネット FP TLA ID

予約

NLA ID/64

SLA ID

64bits18

IPv6 アドレスの種類• アドレス形式プリフィクス– IPv6 アドレスの種類を指定
プリフィクス
プリフィクスn ビット
0011111 1110 101111 1110 111111 1111
プリフィクス以外がall 0

128ビット
アドレス
アドレス
128-n ビット

集約可能なグローバルユニキャストアドレス
リンクローカルユニキャストアドレス
サイトローカルユニキャストアドレス
マルチキャストアドレス
エニキャストアドレス

19

IPv6のアドレスタイプ

アドレスタイプ

アドレス設定対
象

通信形態

通信対象

利用方法

ユニキャストノード(インタフェース)1対1

1

ホスト‐ルータ
間通信

マルチキャスト

グループ

1対多

多

ストリーミング

エニーキャスト機能(サービス)

1対1多(最適なDNS
Discovery1つ選択)

20

アドレス構成
ユニキャスト
1個のインターフェイスを識別し、1対1の通信を行う。
エニーキャスト
複数のインターフェイスに割り当てられ、そのうちのどれか1つに対して配送されることを目的。

最適な1台に自動的に配送

マルチキャスト
複数のインターフェイスに対して割り当てられ、同一アドレスを持つ全てのインターフェイスに対して通信を行うためのもの
21

IPv6のアドレス表記• 128bitはとっても長い！
• IPv4と同じように書くと…
– 123.123.123.123.123.123.123.123.123.123.123.123.
123.123.123.123• 32桁の16進数で表し、4桁ずつ「：」で区切って書く。
例）21DA：90D3：0000：0000：0000：00FF：FE28：0C5A

22

IPv6 のアドレス省略表記
1）4桁（16ビット）ごとに区切った中での値のうち、先頭の0は省略可。

21DA：90D3：0：0：0：FF：FE28：C5A2）4桁（16ビット）ごとに区切ったなかの値が連続して、0である場合は、１度だけそれを「：：」で置き換え可能。

21DA：90D3：：FF：FE28：C5A3 ）プレフィックス長によるアドレス範囲の指定

21DA：90D3：：FF：FE28：C5A /64※「IPv4互換アドレス」（上位96bitが0）ではIPv4の記法を使うことができる。

23

単純なヘッダ構成、細分化の防止

24

IPv4 フォーマット
VersionVersion(4bit)(4bit)IHL
IHL(4bit)(4bit)

Type
TypeofofService(8bit)
Service(8bit)

Identification(16bit)
Identification(16bit)
Time
TimeToToLiveLive(8bit)(8bit)

Protocol(8bit)
Protocol(8bit)

Total
TotalLength
Length(16bit)(16bit)
Flags
Flags(3bit)(3bit)

Fragment
Fragment
Offset(13bit)
Offset(13bit)

HeaderHeaderChecksum
Checksum(16bit)(16bit)SourceSourceAddress
Address(32bit)(32bit)Destination
DestinationAddress
Address(32bit)(32bit)Options
Options(可変長）(可変長）

Padding（可変長）Padding（可変長）

32ビット
25

IPv6 フォーマット

VersionVersion Traffic Class(8bit)
Traffic Class(8bit)(4bit)(4bit)
Payload
PayloadLength
Length(16bit)(16bit)Flow
FlowLabel(20bit)
Label(20bit)
Next
NextHeader
Header(8bit)(8bit) Hop
HopLimit
Limit(8bit)(8bit)

SourceSourceAddress
Address(128bit)(128bit)

Destination
DestinationAddress
Address(128bit)(128bit)

32ビット
26

いろんな機能はオプションで• IPv6 ヘッダは基本情報のみでサイズ固定• 拡張機能は独立ヘッダとして連結するIPv6IPv6TCP
アプリケーション
アプリケーション
アプリケーション
IPv6拡張IPv6 IPv6
IPv6拡張拡張
拡張拡張
拡張
TCPTCPTCPTCP
TCP
アプリケーション
アプリケーション
アプリケーション
データ
データ
データ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダ
ヘッダヘッダヘッダ
ヘッダヘッダヘッダ
ヘッダヘッダヘッダ データデータ
データ•基本ヘッダは固定長なので処理が単純•必要な機能情報だけを付加できる•将来的な拡張にも柔軟に対応可能

27

パスMTUディスカバリー（１）• フォワーディングパケット細分化によるパケット数増加は、ルータ負荷の原因
ネットワークにはMTU (Maximum TransmissionUnit)が存在する– 出力側I/FのMTUが入力側I/FのMTUより小さい時にフラグメント（パケット分割）が発生し、パケット数が増加する–

28

パスMTUディスカバリー（２）•IPv6 は経路上の最小MTUを探索する① 送信元のノードはデフォルトのMTUでパケットを送信(Ethernetの場合、1500)② 経路の途中でより小さなMTUが設定されていると、その直前のルータが送信元ノードへ「Packet Too Big Message」を送信③ 「 Packet Too Big Message 」を受け取った送信元ノードは、そのMTU値に合わせてパケットをフラグメント化し、再度パケットを送信(フラグメントオプションヘッダを付加)

送信元ノード①②

Packet Too Big

送信先ノード③29

セキュリティやリアルタイム性確保などの機能の標準実装

30

プロトコルレベルでの機能拡張• セキュリティ機能– 通信するホスト間の認証と機密性を保持– IPsec を標準装備（IPv4ではオプション）• 通信の優先度を指定可能– リアルタイム通信が必要なものには高い優先度を設定– 利用方法などはまだ研究段階

31

IPsec• 通信を行う相手が正しい相手であるかどうかの確認ができる。（認証）• 通信内容を経路途中で覗き見されないようにすることができる。（暗号化）• IPv6 の拡張ヘッダを用いて実装– ネットワーク間のIPsecから端末間でのIPsecへ

32

IPv6アドレス自動設定機能

33

ルータが教えてくれる• IPv6なら、ネットワークに接続するとルータが設定に必要な情報をインタフェースに教えてくれる• インタフェースはルータからのネットワーク情報と、自分のインタフェースIDでアドレスを生成

ネットワークID
ネットワークID

インタフェースID
インタフェースID

128ビットの IPv6 アドレス

34

アドレスの自動設定

IPv6アドレス自動設定には、• ステートレス・アドレス自動設定– ノードをネットワークにつなげるだけでアドレスの設定を行うことができる• ステートフル・アドレス自動設定– DHCPなどによるアドレス自動設定の2つの方法がある

35

プラグ&プレイとDHCP の違い• DHCP (Dynamic Host Configuration Protocol) はあらかじめプールされたアドレスの割り当てを受けるもの– DHCP 用アドレスを予約しておく必要がある– 毎回違うアドレスが割り当てられる可能性もある• IPv6 の自動設定はインタフェースが持つID にネットワーク情報を付加してアドレスを生成するもの– アドレスは最初からインタフェースが持っている– 同じネットワークならアドレスは変わらない36

ユニキャストアドレス

37

アドレススコープ• 「ノードに割り当てられているIPアドレスが、どの範囲で有効なのか」を意味する「スコープ」という概念が取り入れられた。
• IPv6アドレスは、その有効範囲をアドレス自身で決めることができる。

IPv6
IPv6Internet
Internet

RouterRouterHost A

Host B

Host C

Host D

Host E

Host Flink local

link local

site local
global38

ユニキャストアドレスの種類（１）• リンクローカルユニキャストアドレス
同一セグメント（ルータを超えない範囲）の端末と通信する場合に使用• サイトローカルユニキャストアドレス
異なるセグメント上にあるプライベートネットワーク端末と通信する場合に使用• グローバルユニキャストアドレス
インターネット上に存在する端末と通信する場合に使用

39ユニキャストアドレスの種類（２）インターネット

ルータ越え

リンクローカル・アドレス

××

サイトローカル・アドレス

×○

グローバル・ユニキャス
ト・アドレス○○40

ローカルユニキャストアドレス• ローカルなユニキャストアドレスは、NDP(Neighbor Discovery Protocol)やDHCPのようなリンク内でのノード管理のために使用。
– ルータからグローバルアドレスの割り当てを受ける際に使用される• インターネットに未接続のネットワークで、ローカルなユニキャストアドレスを割り当てておき、後でプリフィックスを置き換えるだけでインターネットに接続するという使い方もある。
41

ローカルユニキャストアドレスフォーマット
リンクローカルアドレス（fe80::で始まる）
10bit

54bit

64bit

1111111010
1111111010

0000……..00000000……..0000

Interface
InterfaceID
ID

サイトローカルアドレス（fec0::で始まる）
10bit
1111111011
1111111011

38bit

16bit

64bit

0000..0000
0000..0000

SubnetSubnetID
ID

Interface
InterfaceIDID

0:0:0:0:0:0:0

未指定アドレス

0:0:0:0:0:0:1

ループバックアドレス
42

リンクローカルアドレスの生成①リンクローカルプレフィックス(fe80::)とインターフェイス
識別子の組み合わせで仮アドレス生成②重複アドレス検出(Duplicate Address Detection)
1)仮アドレスの個別性を検証(近隣要請メッセージ)
2)近隣通知応答が返されてこなければ、仮アドレスは個別。

43

①EUI-64ベースのインタフェース識別子の生成•

0xFF（16進数FF）と0xFE（16進数FE）の16進値を持つ2オクテットを48ビットMACの中間に挿入し、EUI-64アドレス生成
ベンダー識別子（24bit）
ベンダー識別子（24bit）

ベンダー識別子（24bit）
ベンダー識別子（24bit）

製造識別子（24bit）
製造識別子（24bit）

fffe（16bit）
fffe（16bit）

製造識別子（24bit）
製造識別子（24bit）

48bit

64bit

44

②重複アドレス検出

ノードA

ノードB

ノードC

ノードD

ノードE

ノードF

ノードG ノードH

ノードI

Ⅰ
Ⅱ

要請マルチキャスト・アドレスX

要請マルチキャスト・アドレスY

要請マルチキャスト・アドレスZ（１）ノードAは自分のリンクローカルアドレスを計算。
（２）ノードAは近隣要請メッセージを送信。送信先は、自分の割り当てようとしているリンクローカルアドレスをもとに計算した要請マルチキャストアドレス。
始点アドレスは、未定義アドレス(::)。 ・・・Ⅰ
（３）ノードBとアドレスが重複していたら、ノードBは近隣通知メッセージ送信。
IPv6の全ノード・マルチキャスト･アドレス利用。 ・・・Ⅱ
45

グローバルアドレスの生成とデフォルト経路の設定• IPv6ルータは、定期的にアドレスの上位8バイトを通知している。
この8バイトは、｢リンクの番号｣と考えてよい。
• これは世界的に一意であり、経路制御の為に利用される。
• 上位8バイト(リンクの番号)とInterface ID(リンク内の番号)を連結して、IPv6グローバルアドレスが生成される。
• デフォルト経路を上位8バイトを通知したルータへ向ける。
08バイト
ルータからの通知

08バイト

16バイト

Interface ID
グローバルアドレス46

IPv4からの移行用アドレス

IPv4互換アドレス
2つのIPv6機器がIPv4で経路制御されたネットワークを通じて通信するためのアドレス

0000･････････0000
0000･････････0000
80ビット

0000
0000 IPv4アドレス
IPv4アドレス
1632

IPv4射影アドレス
IPv6をサポートしていないIPv4専用ノードで使用。IPv4しかサポートしていないホストとIPv6ホストが通信する場合、IPv6ホストはIPv4射影IPv6アドレスを使用する。
0000･････････0000
0000･････････0000
80ビット

FFFF
FFFF IPv4アドレス
IPv4アドレス
163247

マルチキャストアドレス48

マルチキャストアドレスフォーマット

8bit
11111111
11111111

4bit

4bit

flags
flags scope
scope

flags ( マルチキャストの性質決定)
0000 恒久的(定義済み)のアドレス
0001 一般的なアドレス

80bit

32bit

Group未使用)
GroupID(ID(未使用)GroupGroupIDID

scope ( マルチキャストの通信決定)
0 予約
1 node-local scope
2 link-local scope
5 site-local scope
8 organization-local scope
E global scope
F 予約49

定義済みのマルチキャストアドレス

アドレス機能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

ノード内の全てのIPルータ

FF02:0:0:0:0:0:0:2

リンク内の全てのIPルータ

FF02:0:0:0:0:0:0:C

DHCPサーバ/リレーエージェント

FF02:0:0:0:0:1:x:x

要請ノードアドレス50

要請マルチキャスト・アドレスとは？
• IPv6の機能をもつノードは、各インタ−フェイスのIPv6アドレスをもとに、“要請マルチキャスト・アドレス”と呼ばれるマルチキャスト・アドレスを生成。
• 各ノードは、自分のIPv6アドレスから要請マルチキャスト・アドレスを作成し、そのアドレス宛に送信されたパケットを受信しなければならない。
• 要請マルチキャスト・アドレスはIPv6アドレスを複数のグループにまとめる役割を果たす。
51

要請マルチキャストアドレスの生成

104bit（固定）

24bit

ff0
2 0000ff0200000000
00000000
00000000
00000001
0001ffff

Interfaceの下位InterfaceID
IDの下位• 要請マルチキャストアドレスは、IPv6アドレスを複数のグループにまとめる役割を果たす。
• scopeが2なので、同一リンク上でのみ有効52データリンク層アドレス解決■近隣探索プロトコル(Neighbor DiscoveryProtocol)が役割を担っている。
• それ自体がIPv6の上位プロトコルとして設計されている。

53

データリンク層アドレス解決の仕組み

ノードA

ノードB

ノードC

ノードD

ノードE

ノードF

ノードG ノードH

ノードI

Ⅰ
Ⅱ

要請マルチキャスト・アドレスX

要請マルチキャスト・アドレスY

要請マルチキャスト・アドレスZ（１）要請マルチキャスト・アドレス計算(X)（２）Xに近隣要請をノードBのIPv6アドレスと共に送信 ・・・Ⅰ
（３）ノードBは、近隣通知パケットをノードAに返送 ・・・Ⅱ
54アドレス自動設定機能の比較

IPv6

IPv4

近隣探索プロトコル(NDP)

アドレス解決プロトコル(ARP)

LANプロトコル

ICMP

ARP

発信元アドレス

リンクローカル・
ユニキャストアドレス

MACアドレス

宛先アドレス

リンクローカル・マルチキャストアドレス

通信時に利用するアドレス

利用するパケット

LANプロトコルのブロードキャスト・アドレス

55

アドレス自動設定機能の比較• 耐障害性の向上• アドレス不足の問題がない• 弱点としては、DNSサーバのIPv6アドレスを入手する方法が、まだ仕様策定中であること。

56

到達不能検知○リンク上のノードと通信不能になったことを検知する機能• 近隣探索プロトコルの一部として規定されている。
• IPv6では、データリンク層アドレスのキャッシュが状態を持っている。
• 近隣探索プロトコルの近隣要請と近隣通知を利用。

57

向け直し

• ルータが、同一リンク上のホストから他のルータへ送られるべきパケットを受信した場合に行われる。
• IPv4でも実現していたが、IPv6では近隣探索プロトコルの一部として実現されている。

58

向け直しの仕組み
ノードB
サイトA

サイトB

ルータA

ルータB
②
③

①

④

ホストA

デフォルトルータ：ルータA①ノードB宛のパケットを送る。
②ノードB宛のパケット送る。
③同時に向け直しパケットを送信。
④以後、ホストAはノードB宛のパケットを正しくルータBに送ることができるようになる。
59

IPv4ネットワークとIPv6ネットワーク

60

参考資料

61

参考（関連 RFC）

• RFC2373: IPv6 Addressing Architecture• RFC2374: An IPv6 Aggregatable Global UnicastAddress Format• RFC2401: Security Architecture for the InternetProtocol• RFC2460: IPv6 Specification• RFC2461: Neighbor Discovery for IPv6
• RFC2462: IPv6 Stateless Address Autoconfiguration• RFC2463: ICMPv6 for IPv6

62

参考ＵＲＬIPv6普及・高度化推進協議会
http://www.v6pc.jp
WIDE project (IPv6)
http://www.wide.ad.jp/wg/ipv6/index.html
日本ネットワークインフォメーションセンター
http://www.nic.ad.jp
IETF (Internet Engineering Task Force)http://www.ietf.org/
IETF IPng working grouphttp://playground.sun.com/pub/ipng/html/ip
ng-main.html
6bone
http://www.6bone.net/

6bone-jp
http://www.v6.sfc.wide.ad.jp/
IANA
http://www.iana.org/
ICANN
http://www.icann.org/
APNIC
http://www.apnic.net/
JPNIC
http://www.nic.ad.jp/

63