# IPv6アドレス

> IPv6アドレスの基本的な仕様について説明します。
> 現在インターネットをはじめ、ネットワーク分野で広く利用されているIPv4の次期バージョンにあたるIPプロトコルです。IPv4と比較して128ビットの広大なアドレス空間を持つもつところです。さらに、ネットワークの自動設定やセキュリティといった技術を標準で実装しているという特徴も持っています。
> IPv6アドレスは、プレフィックスと呼ばれるネットワークを規定する番号と、インタフェースIDと呼ばれるホストを規定する番号で構成されます。
> IPv6ネットワークでは、プレフィックスが64bit／インタフェースIDが64bitの、128bitのアドレスを使用します。

## IPv6アドレスの種類

> IPv6アドレスには、以下の３種類があります。

> ユニキャストアドレス | 特定のノードのIPv6アドレス
> マルチキャストアドレス | グループの中のみんなを意味するアドレス。グループ全員に配信される。 IPv4のブロードキャストもしくはマルチキャストのようなもの
> エニーキャストアドレス | グループのうちの誰かを意味するアドレス。グループのうち最も近くにいるノードとなる。 IPv4ではこれに該当するアドレスはない。

> されにユニキャストアドレスは、使用する用途により、以下の3種類があります。

> グローバルアドレス | インターネット等、パブリックネットワークに接続できるアドレス体系
> リンクローカルアドレス | 同一サブネット内の通信のみに使用されるアドレス体系
> サイトローカルアドレス | サイト内の通信で使用されるアドレス体系。IPv4のローカルアドレスのようなもの

## プレフィックス

> プレフィックスは、各アドレス体系により異なります。

#### グローバルアドレスの場合

> グローバルアドレスのプレフィックスは、通常IPv6ルータから広告されるICMPv6のRA（Router Advertisement）をノードが受信し、取得します。
> RAでプレフィックスを広告する際、同時に、以下の情報も広告されます。
> ・LINK上に存在するプレフィックスかどうか
> ・このプレフィックスをノードが使用しても良いか
> ・このプレフィックスの使用が可能な時間（Valid Lifetime）
> ・このプレフィックスを率先して使用しても良い時間（Prefferd Lifetime）
> 各ノードは、この情報に基づいて、自身のインタフェースのアドレスのプレフィックスを定義することができます。
> この方式を、Stateless Address Autoconfigurationということが多いです。

#### リンクローカルアドレスの場合

> リンクローカルアドレスのプレフィックスは、fe80::/64であることが規定されています。

#### サイトローカルアドレスの場合

> サイトローカルアドレスは、各サイトで一意となるプレフィックス値を各ノードに設定します。サイトローカルアドレスは、fec0:で始まるプレフィックスであることが規定されています。

#### マルチキャストアドレスの場合

> マルチキャストアドレスの場合、プレフィックスはff02::/64となります。下位の64bitで、グループを表しています。
> 例）
> ff02::1：全てのIPv6ノード
> ff02::2：全てのIPv6ルータ
> ff02::9：RIPng
> ｆｆ02::1:ｆｆXX:XXXX：要請ノードマルチキャストアドレス　（XXXXXXは、MACアドレスを解決したいIPv6アドレスの下位３バイト）

#### エニーキャストアドレスの場合

> エニーキャストアドレスの場合、プレフィックスはユニキャスト宛と同様で、ホストID部が機能を示すIDとなります。

## インターフェースID

> ホストを規定する番号がインタフェースIDです。
> 通常のIPv6ノードは、インタフェースIDを、そのインタフェースのデータリンクアドレス（通常MACアドレス）から計算された値を使用します。この計算の方式には、EUI-64形式が利用されます。EUI-64形式は、以下のルールで決定されます。
> −MACアドレス6バイトの、上位3バイトと下位3バイトをわけ、間に"fffe"を入れる
> −上位1バイト目の下位2ビット目を"1"にする。
> 例えば、MACアドレスが"0080.bdcf.f100"だった場合、上位3バイト（"0080bd"）と下位3バイト（"cff100"）の間に"fffe"を入れた"0080bdfffecff100"の上位1バイト目の下位2ビット目を"1"にした、"0280bdfffecff100"がこのインタフェースのインタフェースIDとなります。

## IPv6アドレスの決定

> プレフィックスとインタフェースIDが決まると、IPv6アドレスが決定します。
> 例えば、ルータ以外のノードが、RAによりプレフィックス2002:901::/64を受信し、インタフェースIDをEUI-64形式で"0280bdfffecff100"と決まった場合、このインタフェースのIPv6アドレスは
> 2002:901::280:bdff:fecf:f100
> となります。
> したがって、このインタフェースのリンクローカルアドレスは、
> fe80::280:bdff:fecf:f100
> となります。

## グローバルアドレスに関する注意事項

> IPv4と異なり、IPv6アドレスは、インタフェースに複数のアドレスを割り当てることができます。
> RAで通知された各グローバルプレフィックスには、「使用可能時間（Valid Lifetime）」と「使用が望ましい時間（Prefferd Lifetime）」が指定されています。
> 通常は、「使用が望ましい時間」＜「使用可能時間」となっており、【使用が望ましい状態】から「使用が望ましい時間」経過すると【使用可能状態】となり、「使用可能時間」が経過すると【使用不可能状態】となります。
> インタフェースに複数のIPv6グローバルアドレスが割り振られており、それぞれ【使用が望ましい状態】【使用可能状態】【使用不可能状態】であった場合は、【使用が望ましい状態】のIPv6アドレスが、送信元アドレスとして採用されます。
> ただし、TCP等セッションが解放される前に、【使用が望ましい状態】→【使用可能状態】になった場合は、このアドレスを継続して採用します。

## 関連コマンド

### ipv6 address

> インタフェースのIPv6アドレス（グローバル・リンクローカル）を指定する際は、ipv6 addressコマンドを利用して設定します。

> Router(config)#interface lan 1 Router(config-if lan 1)#ipv6 address 2002:1004::/64 eui-64

トップページへ