この記事は、 「ネットワーク中級編|構築・検証・障害切り分けを身につける」 の第19回です。
IPv4のルーティングを学んだ知識を土台に、IPv6アドレスの読み方、 アドレス種別、自動設定、近隣探索、確認コマンドを順番に学びます。
IPv6とは?アドレス表記・種類・SLAAC・NDP・設定確認を基礎から図解
IPv6は、128ビットのアドレスを使用する次世代のIPプロトコルです。 この記事では、長いIPv6アドレスを正しく読む方法、プレフィックス長、 グローバルユニキャストとリンクローカル、SLAAC・DHCPv6、NDP、 Cisco・Windows・Linuxでの確認方法まで、実務につながる形で解説します。
IPv6アドレスは、2001:db8:10:1::10のように長く見えるため、
最初は「どこから読めばよいのか分からない」と感じやすい技術です。
しかし、実務で最初に押さえるポイントは多くありません。 表記の省略ルール、プレフィックス、アドレス種別、NDPによる近隣探索を理解すれば、 設定やコマンド出力を読み始められます。
この記事を読み終えるとできること
- IPv6が128ビットで構成されることを説明できる
- IPv6アドレスを省略・復元できる
- 主要なIPv6アドレス種別を見分けられる
- プレフィックス長から同一ネットワークを判断できる
- SLAAC・DHCPv6・RAの役割を区別できる
- NDPとICMPv6が通信に必要な理由を説明できる
- Cisco・Windows・Linuxの確認コマンドを使える
- IPv6通信障害の確認順序を整理できる
IPv6とは何か
IPv6とは、128ビットのIPアドレスを使い、 ネットワーク上の機器を識別してパケットを届けるためのプロトコルです。
IPv6は「Internet Protocol Version 6」の略です。 IPv4と同じくネットワーク層で動作し、送信元アドレスと宛先アドレスを使ってパケットを転送します。
IPv4アドレスは32ビットですが、IPv6アドレスは128ビットです。 そのため、利用できるアドレス数が大幅に増えています。
IPv4とIPv6のアドレス長
IPv6が必要になった背景
インターネットへ接続する端末、スマートフォン、クラウド、IoT機器などが増え、 IPv4の約43億個というアドレス空間だけでは、世界中の需要を十分に満たしにくくなりました。
IPv4では、プライベートアドレスとNATを組み合わせてアドレスを節約しています。 IPv6は、より広いアドレス空間を利用し、ネットワークの拡張に対応するために設計されています。
IPv6が普及しても、IPv4が直ちに使えなくなるわけではありません。
実際のネットワークではIPv4とIPv6を同時に使うデュアルスタックなど、 段階的な移行方式が利用されています。共存方式は次の記事で詳しく解説します。
IPv4とIPv6の主な違い
| 比較項目 | IPv4 | IPv6 |
|---|---|---|
| アドレス長 | 32ビット | 128ビット |
| 表記例 | 192.0.2.10 |
2001:db8:10:1::10 |
| 区切り | ピリオド | コロン |
| ネットワーク部 | サブネットマスクまたはプレフィックス長 | プレフィックス長 |
| ブロードキャスト | あり | なし。主にマルチキャストを利用 |
| 近隣のアドレス解決 | ARP | NDPのNS・NA |
| 自動設定 | DHCPなど | SLAAC、DHCPv6、手動設定 |
| ループバック | 127.0.0.1 |
::1 |
| DNSレコード | Aレコード | AAAAレコード |
IPv6にはブロードキャストがない
IPv6では、IPv4のようなブロードキャストアドレスを使用しません。 特定の機能を持つ複数のノードへ通知するときは、マルチキャストを使用します。
たとえば、同一リンク上の全ノードを示す代表的なマルチキャストは
ff02::1、全ルーターを示すものはff02::2です。
IPv6では「ブロードキャストがマルチキャストへ置き換わった」と覚えるだけでなく、 必要な対象だけを示すマルチキャストグループを使うと理解しましょう。
IPv6アドレスの表記方法
IPv6アドレスは128ビットです。16ビットずつ8つのグループに分け、 各グループを4桁の16進数で表し、コロンで区切ります。
省略していないIPv6アドレス
1グループは16ビット。8グループで合計128ビットです。
省略ルール1:各グループ先頭の0を省略する
各グループの先頭に連続する0は省略できます。 ただし、グループ内の末尾にある0は省略できません。
| 元の表記 | 省略後 | 理由 |
|---|---|---|
0db8 |
db8 |
先頭の0を省略できる |
0000 |
0 |
すべて0でも1桁は残す |
0010 |
10 |
先頭の00を省略できる |
1200 |
1200 |
末尾の0は省略できない |
省略ルール2:連続する0のグループを「::」に置き換える
0だけで構成されるグループが連続している場合、そのまとまりを
::で省略できます。
::を1つのIPv6アドレス内で使用できるのは1回だけです。
2回使うと、それぞれが何個の0グループを省略しているのか判断できなくなるためです。
省略されたアドレスを元に戻す方法
2001:db8:10::25を、省略していない8グループへ戻してみます。
-
::以外のグループ数を数える2001、db8、10、25の4グループです。 -
8グループになるまで0を補う
8-4=4なので、
::は4つの0000を表します。 -
各グループを4桁にする
db8は0db8、10は0010、25は0025です。
復元結果:
2001:0db8:0010:0000:0000:0000:0000:0025
記事内の2001:db8::/32は、説明・ドキュメント用に予約されたプレフィックスです。
実際のインターネット接続や本番ネットワークへ、そのまま設定しないでください。
プレフィックス長の考え方
IPv6では、IPv4の255.255.255.0のような10進数のサブネットマスクではなく、
/64のようなプレフィックス長でネットワーク範囲を表します。
/64は、IPv6アドレスの先頭64ビットがネットワークを識別する部分であることを示します。
2001:db8:10:1::10/64のイメージ
同じ/64かを判断する
| 端末 | IPv6アドレス | 判定 |
|---|---|---|
| PC-A | 2001:db8:10:1::10/64 |
先頭64ビットが同じため、同一ネットワーク |
| PC-B | 2001:db8:10:1::20/64 |
|
| PC-C | 2001:db8:10:2::30/64 |
4番目のグループが異なるため、別ネットワーク |
なぜ/64をよく使うのか
一般的なIPv6のLANでは/64が標準的に使われます。
SLAACでアドレスを生成する場合も、通常は64ビットのプレフィックスと
64ビットのインターフェース識別部を組み合わせます。
すべてのIPv6用途が必ず/64という意味ではありません。
ルータ間リンクやループバック、経路集約などでは、設計に応じて別のプレフィックス長も使用されます。
まずは「端末が接続される一般的なLANでは/64」と理解してください。
IPv6アドレスの種類
IPv6では、アドレスの先頭部分を見ることで、おおまかな用途を判断できます。 実務で最初に覚えたい代表的なアドレスを確認します。
グローバルユニキャスト
インターネット上で一意に使用するアドレスです。 IPv4のグローバルアドレスに相当します。
リンクローカル
同一リンク内だけで使用します。IPv6インターフェースでは重要な基本アドレスです。
ユニークローカル
組織内部などで利用するアドレスです。ローカル生成では通常fd00::/8側を使用します。
マルチキャスト
特定のグループに所属する複数ノードへパケットを届けます。
ループバック
自分自身を示すアドレスです。IPv4の127.0.0.1に相当します。
未指定アドレス
まだ自分のアドレスが決まっていない状態などで、送信元として一時的に使用されます。
リンクローカルアドレスは必ず確認する
リンクローカルアドレスは、同一リンク内の通信、ルーター探索、NDP、 動的ルーティングプロトコルのネクストホップなどで利用されます。
ルーターのインターフェースへグローバルユニキャストアドレスを設定していても、 リンクローカルアドレスが併せて存在します。
リンクローカルアドレスは複数インターフェースで同じ値が存在する可能性があります。
PCからfe80::宛てに通信するときは、
fe80::1%12のようにインターフェースを識別するゾーンIDが必要になることがあります。
Anycastは専用の見た目ではない
Anycastは、同じユニキャストアドレスを複数ノードへ設定し、 ルーティング上もっとも近いノードへパケットを届ける使い方です。 グローバルユニキャストやユニークローカルと見た目だけで区別できる専用プレフィックスではありません。
IPv6アドレスの設定方法
IPv6アドレスは、手動設定、SLAAC、DHCPv6などの方法で設定できます。 端末がどの情報をどこから受け取るのかを区別することが重要です。
手動設定
管理者がIPv6アドレスとプレフィックス長を設定します。 ルーターやサーバーなど、固定値が必要な機器で利用します。
SLAAC
端末がルーター広告を受信し、通知されたプレフィックスを使って自分のアドレスを生成します。
DHCPv6
DHCPv6サーバーからアドレスやDNSサーバー情報などを受け取ります。 ステートフルとステートレスがあります。
SLAACの基本的な流れ
RAが持つ重要な役割
ルーターはRouter Advertisement(RA)を送信し、 端末へプレフィックス、デフォルトルーター、アドレス設定方法に関する情報を通知します。
DHCPv6を使用する構成でも、一般にデフォルトルーターの発見はRAで行います。 「DHCPv6を使えば、IPv4のDHCPと同じようにすべてが配布される」とは限りません。
| 方式 | IPv6アドレス | DNSなどの追加情報 | デフォルトルーター |
|---|---|---|---|
| 手動設定 | 管理者が設定 | 管理者が設定 | 手動またはRA |
| SLAAC | 端末がRAのプレフィックスから生成 | RAまたは別方式 | RAで学習 |
| ステートレスDHCPv6 | 主にSLAACで生成 | DHCPv6から取得 | RAで学習 |
| ステートフルDHCPv6 | DHCPv6から取得 | DHCPv6から取得 | RAで学習 |
NDPとICMPv6の役割
IPv6では、Neighbor Discovery Protocol(NDP)が近隣ノードやルーターを発見します。 NDPはICMPv6メッセージを使って動作します。
NDPは、IPv4のARPだけでなく、ルーター探索、プレフィックス通知、重複アドレス検出なども担当します。
端末がルーター広告を要求
ルーターが情報を広告
近隣のリンク層情報などを問い合わせ
問い合わせへ応答
NS・NAはARPに似ている
同一リンク内の宛先へパケットを送るには、宛先IPv6アドレスに対応する Ethernet上のMACアドレスを把握する必要があります。
送信元はNeighbor Solicitation(NS)を送信し、対象ノードがNeighbor Advertisement(NA)で応答します。 この結果は近隣キャッシュへ保存されます。
DADでアドレス重複を確認する
IPv6アドレスを使用開始する前に、同一リンク上で同じアドレスが使われていないかを確認します。 この処理をDuplicate Address Detection(DAD)と呼びます。
ICMPv6を一律に遮断してはいけません。
ICMPv6はpingだけではなく、NDP、ルーター探索、エラー通知、 Path MTU DiscoveryなどIPv6の基本動作に関係します。 ファイアウォールでは、必要なICMPv6タイプを理解して制御する必要があります。
IPv6通信の流れ
同一ネットワーク内へ通信する場合
PC-Aから同じ2001:db8:10:1::/64に所属するPC-Bへ通信する流れを確認します。
異なるネットワークへ通信する場合
宛先が別プレフィックスに所属する場合、端末はデフォルトルーターへパケットを送ります。 Ethernetフレームの宛先MACアドレスはルーターですが、IPv6ヘッダーの宛先アドレスは最終宛先のままです。
異なるIPv6ネットワーク間の通信
2001:db8:10:1::10/64
2001:db8:20:1::20/64
IPv6でも、経路選択の基本はIPv4と同じです。 ルーターは宛先IPv6アドレスをルーティングテーブルと比較し、 最長一致する経路を選択します。
Cisco IOSのIPv6設定例
次の構成を想定し、ルーターの2つのインターフェースへIPv6アドレスを設定します。
| 機器・インターフェース | IPv6アドレス | 用途 |
|---|---|---|
| R1 GigabitEthernet0/0 | 2001:db8:10:1::1/64 |
PC側ネットワーク |
| R1 GigabitEthernet0/1 | 2001:db8:20:1::1/64 |
サーバー側ネットワーク |
IPv6ルーティングを有効化する
R1# configure terminal
R1(config)# ipv6 unicast-routing
ipv6 unicast-routingは、ルーターがIPv6パケットをインターフェース間で転送し、
RAを送信するための基本設定です。
インターフェースへIPv6アドレスを設定する
R1(config)# interface GigabitEthernet0/0
R1(config-if)# description PC-LAN
R1(config-if)# ipv6 address 2001:DB8:10:1::1/64
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/1
R1(config-if)# description SERVER-LAN
R1(config-if)# ipv6 address 2001:DB8:20:1::1/64
R1(config-if)# no shutdown
R1(config-if)# end
グローバルユニキャストアドレスを設定すると、通常はインターフェースにリンクローカルアドレスも生成されます。
必要に応じてipv6 address fe80::1 link-localのように手動設定することもあります。
設定と状態を確認する
R1# show ipv6 interface brief
GigabitEthernet0/0 [up/up]
FE80::A8BB:CCFF:FE00:100
2001:DB8:10:1::1
GigabitEthernet0/1 [up/up]
FE80::A8BB:CCFF:FE00:101
2001:DB8:20:1::1
R1# show ipv6 route
IPv6 Routing Table - default - 5 entries
C 2001:DB8:10:1::/64 [0/0]
via GigabitEthernet0/0, directly connected
L 2001:DB8:10:1::1/128 [0/0]
via GigabitEthernet0/0, receive
C 2001:DB8:20:1::/64 [0/0]
via GigabitEthernet0/1, directly connected
L 2001:DB8:20:1::1/128 [0/0]
via GigabitEthernet0/1, receive
Cは直接接続ネットワーク、Lはルーター自身のインターフェースアドレスを示します。
近隣キャッシュを確認する
R1# show ipv6 neighbors
IPv6 Address Age Link-layer Addr State Interface
2001:DB8:10:1::10 3 0011.2233.4455 REACH Gi0/0
FE80::211:22FF:FE33:4455 3 0011.2233.4455 REACH Gi0/0
show ipv6 neighborsでは、IPv6アドレス、MACアドレス、近隣状態、
学習したインターフェースを確認できます。IPv4のARPテーブルに近い確認項目です。
疎通を確認する
R1# ping ipv6 2001:DB8:20:1::20
R1# traceroute ipv6 2001:DB8:20:1::20
コマンド構文や表示形式は、機種・OS・バージョンによって異なります。 本番環境で設定する前に、対象機器の公式ドキュメントと現行コンフィグを確認してください。
Windows・Linuxの確認コマンド
Windows
ipconfig /all
ping -6 2001:db8:10:1::1
tracert -6 2001:db8:20:1::20
netsh interface ipv6 show addresses
netsh interface ipv6 show route
netsh interface ipv6 show neighbors
PowerShell
Get-NetIPAddress -AddressFamily IPv6
Get-NetRoute -AddressFamily IPv6
Get-NetNeighbor -AddressFamily IPv6
Test-NetConnection -ComputerName example.com
Linux
ip -6 address show
ip -6 route show
ip -6 neigh show
ping -6 2001:db8:10:1::1
traceroute -6 2001:db8:20:1::20
DNS確認
# Windows
nslookup -type=AAAA example.com
# Linux
host -t AAAA example.com
dig AAAA example.com
端末で確認する情報
| 確認項目 | 見るポイント |
|---|---|
| グローバルユニキャストアドレス | 想定したプレフィックスとプレフィックス長か |
| リンクローカルアドレス | fe80::/10のアドレスが存在するか |
| デフォルトルート | ::/0が存在し、適切なルーターを向いているか |
| 近隣キャッシュ | ルーターや宛先のMACアドレスを学習できているか |
| DNS | AAAAレコードを名前解決できるか |
IPv6障害の切り分け
IPv6通信ができないときは、IPv4と同様に下位層から確認します。 ただし、IPv6ではRA、NDP、ICMPv6、複数アドレスの存在を意識する必要があります。
- 物理・データリンク層を確認する インターフェースがupか、VLANやトランク設定が正しいかを確認します。
-
IPv6アドレスとプレフィックス長を確認する
想定した
/64に所属しているか、誤ったプレフィックスを設定していないかを確認します。 - リンクローカルアドレスを確認する 端末・ルーター双方にリンクローカルアドレスが存在するか確認します。
-
デフォルトルートとRAを確認する
端末に
::/0が存在するか、ルーターがRAを送信できているか確認します。 - 近隣キャッシュを確認する NS・NAの交換が成功し、宛先またはデフォルトルーターのMACアドレスを学習できているか確認します。
- ルーターのIPv6ルーティングテーブルを確認する 宛先プレフィックスへの経路と戻り経路が存在するか確認します。
- ACL・ファイアウォール・ICMPv6制御を確認する 必要なICMPv6や業務通信を誤って遮断していないか確認します。
- DNSのAAAAレコードを確認する IPv6アドレスへ直接pingできるが名前で接続できない場合は、DNSを切り分けます。
症状から確認場所を絞る
リンクローカルへもpingできない
- 物理リンク・VLAN
- インターフェース指定
- NDP・ICMPv6制御
- 端末側ファイアウォール
同一/64内だけ通信できる
- デフォルトルート
- RA
- ルーターの
ipv6 unicast-routing - ルーティングテーブル
IPv6アドレス直打ちは成功する
- AAAAレコード
- DNSサーバー設定
- 名前解決の優先順位
- アプリケーションのIPv6対応
小さいpingは成功するが通信が不安定
- Path MTU Discovery
- Packet Too Bigの遮断
- トンネル区間のMTU
- フラグメント設計
調査結果を報告するときは、「IPv6が通らない」だけではなく、 リンクローカル・同一セグメント・デフォルトルーター・遠隔宛先・名前解決の どこまで成功したかを分けて伝えましょう。
IPv6に関するよくある勘違い
::は何回使ってもよい
1つのIPv6アドレスで::を使えるのは1回だけです。
複数回使うと、省略した0グループの数を一意に復元できません。
リンクローカルはNDP、ルーター探索、ネクストホップなどで重要です。 グローバルユニキャストだけを見て障害を判断しないようにします。
ICMPv6はNDPやエラー通知、Path MTU Discoveryに利用されます。 一律遮断は通信障害の原因になります。
NATの有無とセキュリティは別の問題です。 IPv6でもファイアウォール、ACL、最小権限、ログ監視などが必要です。
どちらも一般的なLANでよく見ますが、アドレス長や設計思想が異なります。 数字だけを置き換えて考えないようにします。
1つのインターフェースにリンクローカル、グローバルユニキャスト、 一時アドレスなど複数のIPv6アドレスが存在することがあります。
理解度チェック
次の問題に答え、IPv6アドレスと基本動作を理解できているか確認してください。
問題1.IPv6アドレスの長さは何ビットですか。
- 32ビット
- 48ビット
- 64ビット
- 128ビット
解答を見る
IPv6アドレスは128ビットで、16ビットずつ8つのグループに分けて16進数で表します。
問題2.次のIPv6アドレスを省略してください。
2001:0db8:0000:0001:0000:0000:0000:0020
解答を見る
2001:db8:0:1::20
各グループ先頭の0を削除し、後半の連続する0グループを::へ置き換えます。
問題3.fe80::/10のIPv6アドレスは何と呼ばれますか。
- グローバルユニキャスト
- リンクローカル
- マルチキャスト
- ループバック
解答を見る
リンクローカルアドレスは同一リンク内で使用し、NDPやルーター探索などに利用されます。
問題4.IPv6端末がデフォルトルーターを学習するときに重要なメッセージはどれですか。
- ARP Reply
- DHCP Discover
- Router Advertisement
- OSPF Hello
解答を見る
RAはプレフィックスやデフォルトルーターなどの情報を端末へ通知します。
問題5.次の2台は同じネットワークに所属しますか。
- PC-A:
2001:db8:100:10::5/64 - PC-B:
2001:db8:100:11::5/64
解答を見る
/64では先頭4グループがプレフィックスです。
4番目のグループが10と11で異なります。
問題6.IPv6でICMPv6を一律遮断すると、どのような問題が起こる可能性がありますか。
解答を見る
NDP、ルーター探索、エラー通知、Path MTU Discoveryなどが動作せず、 近隣通信や遠隔通信が失敗・不安定になる可能性があります。
実践演習:IPv6の設定ミスを切り分ける
次の構成で、PC-AからR1のLAN側インターフェースへIPv6通信できません。 設定値と確認結果から原因を考えてください。
| 機器 | IPv6アドレス | プレフィックス長 |
|---|---|---|
| PC-A | 2001:db8:10:1::10 |
/64 |
| R1 Gi0/0 | 2001:db8:10:2::1 |
/64 |
C:\> ping -6 2001:db8:10:2::1
2001:db8:10:2::1 に ping を送信しています 32 バイトのデータ:
宛先ホストに到達できません。
宛先ホストに到達できません。
課題1.原因を特定する
PC-AとR1は同じLANへ接続されています。設定上の問題は何でしょうか。
課題1の解答を見る
PC-Aは2001:db8:10:1::/64、R1は2001:db8:10:2::/64に所属しており、
同じ物理LAN上にいるのにIPv6プレフィックスが異なっています。
PC-AはR1を同一リンク上の宛先ではなく、別ネットワークの宛先として判断します。
課題2.修正案を考える
R1のアドレスを修正する場合、どのような値にすればよいでしょうか。
課題2の解答を見る
例:2001:db8:10:1::1/64
PC-Aと同じ2001:db8:10:1::/64へ合わせます。
課題3.修正後に確認するコマンドを整理する
ルーター側:________________
課題3の解答例を見る
PC側
ipconfig /allでIPv6アドレスとプレフィックスを確認ping -6 2001:db8:10:1::1で疎通確認netsh interface ipv6 show neighborsで近隣キャッシュを確認
ルーター側
show ipv6 interface briefでアドレスとup/upを確認show ipv6 routeで接続経路を確認show ipv6 neighborsでPC-Aを学習できているか確認
課題4.調査結果を報告する
原因・影響・対応・確認結果を、上司や顧客へ伝える形でまとめてください。
影響:________________
対応:________________
確認結果:________________
報告例を見る
PC-AとルーターのLAN側インターフェースに異なる/64プレフィックスが設定されていたため、 PC-Aがルーターを同一リンク上の通信相手として認識できず、IPv6通信に失敗していました。
ルーターのアドレスを2001:db8:10:1::1/64へ修正し、
双方のアドレス、近隣キャッシュ、ping疎通を確認した結果、正常に通信できることを確認しました。
自分の言葉で説明する課題
IPv6を知らない後輩から「IPv6では、IPv4と何が変わるのですか」と質問されました。 1分程度で説明してください。
説明例を見る
IPv6は、128ビットのアドレスを使って機器を識別し、パケットを届ける仕組みです。 IPv4よりアドレス空間が大きく、アドレスは16進数をコロンで区切って表します。 同一リンクの相手を探すときはARPではなくNDPを使い、 端末はRAを受信してデフォルトルーターやプレフィックスを学習できます。 実務では、グローバルユニキャストだけでなくリンクローカル、 プレフィックス長、ICMPv6の動作も確認することが重要です。
まとめ
- IPv6は128ビットのIPアドレスを使用する
- IPv6アドレスは16ビットずつ8グループに分け、16進数とコロンで表す
- 各グループ先頭の0を省略でき、連続する0グループは
::で1回だけ省略できる - 一般的な端末LANでは
/64がよく使われる - 主要なアドレスはグローバルユニキャスト、リンクローカル、ユニークローカル、マルチキャスト
- IPv6にはブロードキャストがなく、必要に応じてマルチキャストを利用する
- 端末の設定方法には手動、SLAAC、DHCPv6がある
- RAはプレフィックスやデフォルトルーターの学習に重要
- NDPはNS・NAによる近隣探索、ルーター探索、DADなどを担当する
- ICMPv6を一律遮断すると、IPv6の基本動作を壊す可能性がある
- 障害時はアドレス、/64、リンクローカル、RA、近隣キャッシュ、経路、DNSの順に確認する
IPv6を理解する第一歩は、長いアドレスを暗記することではなく、 プレフィックスとアドレス種別を見分け、RA・NDPを含む通信の流れを追えるようになることです。
参考資料
- RFC 8200:Internet Protocol, Version 6(IPv6)Specification
- RFC 4291:IP Version 6 Addressing Architecture
- RFC 4861:Neighbor Discovery for IP version 6
- RFC 4862:IPv6 Stateless Address Autoconfiguration
- RFC 8415:Dynamic Host Configuration Protocol for IPv6
- RFC 3849:IPv6 Address Prefix Reserved for Documentation
実機のコマンド、初期値、対応機能は、機種・OS・ライセンス・ソフトウェアバージョンによって異なります。 本番環境へ設定する前に、対象製品の公式ドキュメントと現行コンフィグを確認してください。

コメント