1. IPv6 概要#
1.1 アドレス構造#
2001:4001:1234:0A00:0000:4567:9ABC:2340/64
この場合では、
2001:4001:1234:0A00はサブネットプレフィックス(IPV4のネットワーク部に該当)、
0000:4567:9ABC:2340はインターフェースID(IPV4のホスト部に該当)。
64はサブネットプレフィックスが64ビット、インターフェースIDが64ビットに分けると示す。
- 長さ:128ビット (16バイト)。
- 形式:
4桁の16進数を8グループに分け、コロンで区切る。
アドレス空間の分布
Prefix: 0000... 2000... fc00... fe80... ff00...
| | | | |
v v v v v
+-------+--------+--------+--------+--------+
|Special| GUA | ULA | LLA | Multi |
+-------+--------+--------+--------+--------+1.2 省略ルール#
1. 先頭のゼロ省略
各グループ先頭の 0 は省略可能。
0db8->db80001->10000->0
2. ダブルコロン圧縮 (::)
一回だけ連続する複数の 0 グループを :: で代用可能。
1234:0000:0000:0000:5678->1234::5678
1.3 なぜ GUA は 2000::/3 なのか?#
/3 は先頭3ビットが 001 で固定であることを意味する。
- 第4ビットが
0->0010(16進数の2) - 第4ビットが
1->0011(16進数の3) - したがって、
2または3で始まるものはすべて GUA である。
1.4 EUI-64 (インターフェースIDの生成)#
MACアドレス (48ビット) から インターフェースID (64ビット) を生成する。
- 分割:MACアドレスを真ん中で分割する。
- 00:23:45:67:89:AB -> 00:23:45:空き:空き:67:89:AB
- 挿入:中間に
FFFEを挿入する。- 00:23:45:空き:空き:67:89:AB -> 00:23:45:
FF:FE:67:89:AB
- 00:23:45:空き:空き:67:89:AB -> 00:23:45:
- 反転:第1バイトの第7ビットを反転させる (
0->1)。00(0000 0000) ->02(0000 0010)- 故に生成したインターフェイスIDは 02:23:45:
FF:FE:67:89:AB
2. IPv6 通信タイプ#
2.1 ユニキャスト (Unicast)#
一般的なユニキャストアドレスと設定:
GUA (Global Unicast Address):グローバルユニキャスト。
2001:db8::/32は文書などで例示する際のアドレスとして予約されてる。- 範囲:
2000::/3。インターネット上でルーティング可能。 - 設定:
ipv6 address 2001:db8::1/64 - EUI-64使用:
ipv6 address 2001:db8::/64 eui-64。2001:db8::/64のように、EUI-64使用する場合インターフェイスIDは不要。
- 範囲:
LLA (Link-Local Address):リンクローカル。
- 範囲:
FE80::/10。同一リンク内でのみ有効。 - 設定:
- 手動:
ipv6 address fe80::1 link-local - 自動:
ipv6 enable。この場合ではインターフェイスIDがEUI-64形式で自動生成されるから管理しづらい。例:fe80::4444:1989:0604:4444。
- 手動:
- 範囲:
ULA (Unique Local Address):ユニークローカル。
最初の7ビットは
1111 110、第8のビットの0が将来定義予定なので、FC00::/7と表示 (実際はFD00::/8を使用)。IPv4 のプライベートアドレスに相当。ループバックアドレス(Loopback):
0:0:0:0:0:0:0:1/128または::1/128。未指定アドレス (Unspecified):
::/128。
2.2 マルチキャスト (Multicast)#
1対多通信。プレフィックス:FF00::/8。
- 一般的なマルチキャストアドレス:
FF02::1:全ノード (All Nodes)。FF02::2:全ルータ (All Routers)。FF02::5 / FF02::6:OSPFv3。
- 要請ノードマルチキャストアドレス (Solicited-Node):
FF02::1:FF??:????+ ユニキャストの下位24ビット(例:2001:db8::AB:CDEFの時はAB:CDEF)。アドレス解決に使用。
2.3 エニーキャスト (Anycast)#
- 専用のプレフィックスはない(ユニキャストアドレス範囲を使用)。
- 複数のデバイスに同じIPを設定し、ルーティングコストが最小のデバイスが応答する。
3. IPv6 動的設定#
3.1 ルーティング機能の有効化#
ルータとして動作させる場合、グローバルで IPv6 転送機能を 有効化 する必要がある。そうしないと、インターフェースから RA (Router Advertisement) が送信されず、配下のホストが SLAAC 自動設定を行えない。
Router(config)# ipv6 unicast-routing3.2 NDP#
ICMPv6 ベースで実装され、IPv4 の ARP や ICMP Router Discovery などを代替する。
主要なメッセージタイプ:
| タイプ | 名称 | 役割 | IPv4 での相当 |
|---|---|---|---|
| 133 | RS (Router Solicitation) | ホストが起動時に「ルータはいますか?」と尋ねる。 | DHCP Discover (類似) |
| 134 | RA (Router Advertisement) | ルータが「私がルータだ。プレフィックスはこれだ」と応答/広告する。 | DHCP Offer (類似) |
| 135 | NS (Neighbor Solicitation) | ターゲットの MAC アドレスを要求 / アドレス重複検知。 | ARP Request |
| 136 | NA (Neighbor Advertisement) | NS に応答して自分の MAC アドレスを通知。 | ARP Reply |
重要なプロセス:
- アドレス解決 (Address Resolution):
- IP から MAC を知りたい場合。
- NS (相手の 要請ノードマルチキャストアドレス 宛) -> 相手が NA (ユニキャスト) で応答。
- DAD (Duplicate Address Detection / 重複アドレス検知):
- 新しい IP を設定する際、重複がないか確認する仕組み。
- 自分 の要請ノードマルチキャストアドレス宛に NS を送信。
- もし NA が返ってきたら、誰かが使っているため Duplicate (重複) エラーとなる。
3.3 アドレス割り当て方式 (SLAAC vs DHCPv6)#
PC がどのアドレス取得方式を使うかは、ルータが送信する RA パケット内のフラグ (Flags) に依存する。
3つのモード比較:
| モード | 説明 | RA フラグ設定 | クライアントの動作 | 設定コマンド (クライアント) |
|---|---|---|---|---|
| 1. SLAAC | ステートレス自動設定 (デフォルト) | A=1 (Auto) M=0, O=0 | RA のプレフィックス + EUI-64 で IP 生成。 DHCP には問い合わせない。 | ipv6 address autoconfig |
| 2. Stateless DHCPv6 | ステートレス DHCP | A=1 M=0, O=1 (Other) | IP は SLAAC で生成。 DNS 等の情報だけ DHCP に要求。 | ipv6 address autoconfig |
| 3. Stateful DHCPv6 | ステートフル DHCP | A=0 M=1 (Managed) | RA のプレフィックスを無視。 IP も DNS も全て DHCP から取得 (IPv4同様)。 | ipv6 address dhcp |
- A (Autonomous): クライアントがプレフィックスを使って IP を自動生成してよいか。
- M (Managed): IP を DHCPv6 から取得する必要があるか。
- O (Other): その他の情報 (DNS等) を DHCPv6 から取得する必要があるか。
3.4 よく使う確認コマンド#
# 1. インターフェースIPとマルチキャストグループ確認 (DAD用 FF02::1:FF... に参加しているか確認)
Router# show ipv6 interface <番号>
# 2. インターフェース概要 (Up/Up ?)
Router# show ipv6 interface brief
# 3. ネイバーテーブル確認 (IP <-> MAC マッピング、NDP キャッシュ)
Router# show ipv6 neighbors
# 4. ルーティングテーブル確認 (C:直結, L:ローカル, S:静的, O:OSPF)
Router# show ipv6 route4. IPv6 ルーティング設定#
4.1 スタティックルーティング (Static Routing)#
構文は IPv4 と非常に似ており、キーワードが ipv6 route に変わるだけである。
基本構文:
ipv6 route <宛先プレフィックス/長> <ネクストホップIP | 出力IF>
# 1. ネクストホップ IP 指定 (イーサネット環境で推奨)
Router(config)# ipv6 route 2001:db8:2::/64 2001:db8:12::2
# 2. 出力インターフェース指定 (シリアル等 Point-to-Point で推奨)
Router(config)# ipv6 route 2001:db8:2::/64 Serial0/0/0
# 3. デフォルトルート (Default Route)
# 宛先は ::/0 (IPv4 の 0.0.0.0/0 に相当)
Router(config)# ipv6 route ::/0 2001:db8:12::24.2 ダイナミックルーティング - OSPFv3#
OSPFv3 は IPv6 用に設計されたリンクステート型ルーティングプロトコル。
OSPFv2 (IPv4) との主な違い:
- リンクベースで動作:
networkコマンドでネットワークを指定するのではなく、インターフェース直下で有効化する。 - Router ID:依然として 32ビット の IPv4 形式 (例:
1.1.1.1)。IPv4 アドレスがない場合、RID を 手動指定 しないとプロセスが起動しない。 - マルチキャストアドレス:
FF02::5(全 OSPF ルータ) とFF02::6(DR/BDR) を使用。
設定手順:
# 1. OSPFv3 プロセスの起動
Router(config)# ipv6 router ospf 1
Router(config-rtr)# router-id 1.1.1.1 # RID の手動指定は必須
# 2. インターフェースでの有効化 (最も重要な違い)
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 ospf 1 area 05. IPv4 から IPv6 への移行技術#
IPv4 アドレス枯渇に伴い、ネットワークは徐々に移行する必要がある。主に3つの戦略がある。
5.1 デュアルスタック (Dual Stack)#
最も推奨され、一般的 な方法。
- 原理:ネットワーク機器とホストで IPv4 と IPv6 の両方のプロトコルスタックを同時に稼働させる。
- 動作:
- DNS が IPv4 アドレスを返せば -> IPv4 で通信。
- DNS が IPv6 アドレスを返せば -> IPv6 で通信 (通常 IPv6 が優先される)。
- 利点:ネイティブサポートであり、カプセル化が不要なためパフォーマンスが最良。
5.2 トンネリング技術 (Tunneling)#
IPv4 の海に浮かぶ孤立した IPv6 の島々を接続するために使用。IPv6 パケットを IPv4 ヘッダでカプセル化して転送する。
- 手動トンネル (Manual Tunnel / GRE):
- ポイントツーポイント。トンネルの送信元と宛先 IP を手動指定する必要がある。
- マルチキャスト対応 (OSPFv3 を通せる)。
- 設定:
tunnel mode ipv6ipまたはtunnel mode gre ipv6。
- 6to4 トンネル:
- 自動トンネル。
2002::/16プレフィックスを使用。 - IPv4 アドレスを IPv6 アドレスに埋め込むため、宛先の手動設定が不要。
- 自動トンネル。
- ISATAP:
- サイト内自動トンネル。キャンパス網内部の IPv6 ホストが IPv4 網を越えて通信するために使用。
5.3 変換技術 (Translation) - NAT64#
IPv6-Only のホストが旧来の IPv4 サーバにアクセスするために使用。
- 原理:NAT と同様に、ルータが IPv6 ヘッダを IPv4 ヘッダに(またはその逆)翻訳する。
- 適用:携帯キャリア網 (モバイルは IPv6 普及率が高い) から IPv4 サービスへアクセスするシナリオなど。