試験項目 1.4 · CCNA-024
IPv6 Address Assignment
Static / SLAAC / Stateless DHCPv6 / Stateful DHCPv6 / RS・RA / A・M・O flags / autoconfig / autoconfig default
このページのゴール
IPv6 Addressと関連情報がどの割り当て方式から得られるかを識別し、RA・DHCPv6・Cisco IOS Client Configurationが期待方式と整合しているか判断できるようにする。
このページで学ぶこと
- 割り当て方式の識別
- SLAACのRS / RAフロー
- RA Prefix Informationの解釈
- SLAAC /64要件
- A flag
- O flag / Stateless DHCPv6
- M flag / Stateful DHCPv6
- Stateless DHCPv6のAddress / 追加情報取得元
- Stateful DHCPv6のAddress取得元
- DHCPv6とDefault Routerの境界
- Cisco IOS ipv6 address autoconfig
- Cisco IOS autoconfig default
- Cisco IOS SLAACとEUI-64の境界
ページ022では静的IPv6設定、ページ023ではModified EUI-64を確認しました。
ページ024では、
静的
SLAAC
ステートレスDHCPv6
ステートフルDHCPv6
というIPv6アドレス割り当て方式を識別し、
IPv6アドレス
プレフィックス
追加情報
デフォルトルーター
が、
RA
DHCPv6
静的設定
のどこから得られるのかを判断します。
例えば、
アドレス
→ SLAAC
DNS
→ DHCPv6
デフォルトルーター
→ RA
という組み合わせがあります。
一方、
アドレス
→ DHCPv6
DNS
→ DHCPv6
デフォルトルーター
→ RA
という構成もあります。
ページ024では、
期待する割り当て方式
↓
RA
↓
プレフィックス情報
↓
A/M/Oフラグ
↓
アドレス取得元
↓
追加情報取得元
↓
デフォルトルーター取得元
↓
Cisco IOSクライアント設定
↓
割り当て確認結果
の順に判断できるようにします。
1. IPv6アドレス割り当てを4方式で整理する
ページ024では、次の4方式を区別します。
静的
SLAAC
ステートレスDHCPv6
ステートフルDHCPv6
大きな違いは、
IPv6アドレスを
誰が決めるか
です。
整理すると、
| 方式 | IPv6アドレス | 追加情報 | デフォルトルーター |
|---|---|---|---|
| 静的 | 手動設定 | 設定依存 | 設定/RA等に依存 |
| SLAAC | RAプレフィックス + ホスト生成インターフェース識別子 | RA等 | RA |
| ステートレスDHCPv6 | SLAAC | DHCPv6 | RA |
| ステートフルDHCPv6 | DHCPv6 | DHCPv6 | RA |
この表はページ024の基本です。
2. 静的割り当て
静的では、
IPv6アドレス
+
プレフィックス長
を明示的に設定します。
Cisco IOSであればページ022で確認した、
ipv6 address 2001:db8:10:20::1/64
のような設定です。
ページ024では静的設定構文を再講義しません。
重要なのは、
アドレス取得元
→ 手動/静的
と識別できることです。
3. SLAAC
SLAACは、
ステートレスアドレス自動設定
です。
ホストはルーター広告からプレフィックス情報を受け取り、そのプレフィックスとインターフェース識別子を組み合わせてIPv6アドレスを形成します。
基本流れ:
ホスト
↓
ルーター要請
ルーター
↓
ルーター広告
ホスト
↓
プレフィックス情報を処理
ホスト
↓
インターフェース識別子を用意
ホスト
↓
IPv6アドレスを形成
です。
4. RSはRAを早く取得するために使う
ルーター広告はルーターから定期的に送信されます。
しかしホストはリンクへ接続した直後などに、
ルーター要請
RS
を送信することで、RAを早く取得できます。
流れ:
ホスト
-- RS -->
ルーター
ホスト
<-- RA --
ルーター
です。
したがって、
SLAAC
=
RAを待つだけ
と限定しません。
ホストはRSを使用してRA送信を促すことができます。
5. RSがIPv6アドレスを配布するわけではない
RSは、
IPv6アドレスをください
というDHCP要求ではありません。
RSの役割は、
ルーター広告を
早く送信してもらう
ことです。
アドレス形成に利用するプレフィックス情報は、
RA
側から得ます。
6. RAには複数種類の情報がある
ルーター広告には、アドレス割り当てに関係する複数の情報があります。
ページ024で重要なのは、
デフォルトルーターに関する情報
Mフラグ
Oフラグ
プレフィックス情報オプション
です。
そしてプレフィックス情報オプション側には、
プレフィックス
プレフィックス長
Aフラグ
などがあります。
重要なのは、
A/M/O
を全部同じ場所のフラグとして扱わないことです。
7. M/OはRAヘッダー側
RAヘッダーには、
M
管理対象アドレス設定
O
その他設定
があります。
概念的には、
RAヘッダー
M = ?
O = ?
として読みます。
8. Aフラグはプレフィックス情報オプション側
Aフラグは、
自律アドレス設定フラグ
です。
これはRAヘッダー全体ではなく、
プレフィックス情報オプション
ごとに存在します。
例えば、
RAヘッダー
M=0
O=1
PIO 1
2001:db8:10:1::/64
A=1
PIO 2
2001:db8:20:1::/64
A=0
という状態も構造上考えられます。
したがって、
Aフラグ
=
RA全体に1つだけ
とは考えません。
9. A=1はそのプレフィックスをSLAACに利用できることを示す
プレフィックス情報オプションで、
A=1
なら、そのプレフィックスはステートレスアドレス自動設定に利用できます。
例えば、
プレフィックス
2001:db8:10:20::/64
A=1
なら、ホストはこのプレフィックスをSLAACアドレス形成へ利用できます。
一方、
A=0
なら、そのPIOをSLAACアドレス形成には使用しません。
10. Aフラグだけではアドレス完成まで分からない
A=1だからといって、
完成IPv6アドレス
がRA内にそのまま入っているわけではありません。
RAが提供するのは、
プレフィックス情報
です。
ホスト側で、
プレフィックス
+
インターフェース識別子
を組み合わせます。
したがって、
A=1
=
RAが完成アドレスを配布
ではありません。
11. SLAACではプレフィックス長との整合が必要
ページ020で確認したとおり、自律アドレス設定では、
プレフィックス長
+
インターフェース識別子長さ
=
128
となる必要があります。
CCNAで扱う一般的な64ビットインターフェース識別子のリンクでは、
プレフィックス
64ビット
インターフェース識別子
64ビット
です。
したがって、
/64
が重要です。
12. A=1でもプレフィックス長が不整合ならSLAACに使えない場合がある
例えば、
プレフィックス
2001:db8:10:20::/60
A=1
だったとします。
CCNAで扱う一般的な64ビットインターフェース識別子を使用するリンクで、
60 + 64
=
124
なので128ビットになりません。
したがって、
A=1だから
必ずSLAAC成功
とは判断しません。
ページ024では、
Aフラグ
+
プレフィックス長
をセットで確認します。
13. SLAACアドレスのインターフェース識別子は一般にはEUI-64固定ではない
ページ023ではModified EUI-64を学習しました。
しかし一般的なSLAACについて、
SLAAC
=
必ずModified EUI-64
とは判断しません。
ホストのインターフェース識別子生成方法は実装によって異なる場合があります。
したがって、
RAプレフィックス
+
ホストが生成したインターフェース識別子
という表現を基本にします。
14. ステートレスDHCPv6
ステートレスDHCPv6では、
IPv6アドレス
→ SLAAC
追加情報
→ DHCPv6
という役割分担になります。
代表的な追加情報は、
DNSサーバー情報
などです。
つまり、
DHCPv6を使う
=
DHCPv6からIPv6アドレスを取得
とは限りません。
15. ステートレスDHCPv6の典型フラグ
CCNAで扱う典型的なステートレスDHCPv6構成では、
A=1
M=0
O=1
として整理できます。
意味は、
A=1
→ SLAACアドレス形成
M=0
→ DHCPv6による管理対象アドレスを要求する意図ではない
O=1
→ その他情報をDHCPv6から取得
です。
結果として、
アドレス
→ SLAAC
DNS等
→ DHCPv6
デフォルトルーター
→ RA
となります。
16. Oフラグ
Oは、
その他設定フラグ
です。
O=1は、
アドレス以外の設定情報が
DHCPv6で利用可能
であることをホストへ示します。
例えば、
DNSサーバー
などです。
CCNA問題では、
O=1
+
M=0
+
A=1
を見たら、
ステートレスDHCPv6
を重要な候補にします。
17. O=1はアドレスをDHCPv6から取得する意味ではない
これは重要です。
O=1
だけから、
IPv6アドレス
→ DHCPv6
とは判断しません。
ステートレスDHCPv6では、
アドレス
→ SLAAC
追加情報
→ DHCPv6
です。
したがって、
O
=
その他
という役割を区別します。
18. ステートフルDHCPv6
ステートフルDHCPv6では、
IPv6アドレス
→ DHCPv6
です。
さらに、
DNS等の追加情報
もDHCPv6から取得できます。
CCNAでは、
DHCPv6サーバーが
クライアントへアドレスを割り当てる
方式として識別します。
19. Mフラグ
Mは、
管理対象アドレス設定フラグ
です。
M=1は、
DHCPv6から
アドレス設定を取得できる
ことを示します。
CCNA問題では、
M=1
を、
ステートフルDHCPv6
の重要な手掛かりとして扱います。
20. M=1ならOの情報もDHCPv6から取得できる
RFC 4861では、
M=1
の場合、
Oフラグは冗長
として扱えます。
なぜなら、ステートフルDHCPv6でアドレスを取得する場合、DHCPv6から利用可能な追加設定も取得できるためです。
したがって、
M=1
O=0
だから、
DNS等をDHCPv6から取得できない
と単純判断しません。
21. A/M/Oは排他的な3択ではない
次のように、
A=1
M=1
が同時に存在することも可能です。
その場合、
SLAACアドレス
と、
DHCPv6アドレス
の両方が利用される構成も考えられます。
したがって、
A=1なら
Mは必ず0
ではありません。
また、
M=1なら
Aは必ず0
でもありません。
22. CCNAではフラグを「設計意図の手掛かり」として読む
RAのM/Oフラグは、ホストへDHCPv6利用に関する情報を伝えます。
ただしプロトコル全体としては、
M=0
=
ホストがDHCPv6を絶対に開始できない
という禁止規則ではありません。
ページ024ではプロトコル実装差へ深く入りません。
CCNAトラブルシューティングでは、
期待する割り当て方式
と、
RAで広告されている
A/M/O
が整合しているかを判断します。
23. ステートフルDHCPv6でもデフォルトルーターはRA
これはページ024で非常に重要です。
ステートフルDHCPv6を使用しても、
デフォルトルーター
をDHCPv6から取得すると考えません。
IPv6では、
デフォルトルーター
→ ルーター広告
です。
整理すると、
ステートフルDHCPv6
IPv6アドレス
→ DHCPv6
DNS等
→ DHCPv6
デフォルトルーター
→ RA
です。
24. DHCPv6には標準デフォルトゲートウェイオプションがない
IPv4 DHCPでは、
デフォルトゲートウェイ
をDHCPで受け取るイメージがあります。
しかしIPv6では同じ考え方をそのまま適用しません。
標準DHCPv6には、
デフォルトルーターを通知する
ゲートウェイオプション
が定義されていません。
そのため、
DHCPv6アドレス取得済み
↓
デフォルトルーターもDHCPv6取得済み
とは判断しません。
デフォルトルーターの情報源はRAです。
25. ステートレスDHCPv6でもデフォルトルーターはRA
ステートレスDHCPv6でも同じです。
アドレス
→ SLAAC
DNS等
→ DHCPv6
デフォルトルーター
→ RA
です。
つまり、
ステートレス
ステートフル
のどちらでも、
デフォルトルーター
→ RA
という境界は共通です。
26. RAのルーター有効期間がデフォルトルーター判断に関係する
ルーター広告には、
ルーター有効期間
があります。
ルーターが、
デフォルトルーターとして使用可能
であることをホストへ知らせる情報の一部です。
ルーター有効期間が、
0
なら、そのルーターをデフォルトルーターとして使用することを広告していません。
ページ024ではデフォルトルーター情報源がRAであることを中心に扱い、詳細なルーター選択アルゴリズムまでは扱いません。
27. Cisco IOS ipv6 address autoconfig
Cisco IOSクライアントインターフェースでは、
ipv6 address autoconfig
を使用できます。
例えば、
interface GigabitEthernet0/0
ipv6 address autoconfig
です。
このコマンドは、
RAを利用した
ステートレス自動設定
をインターフェースで有効化します。
28. Cisco IOS autoconfigはRAプレフィックスからアドレスを生成する
Cisco IOSの、
ipv6 address autoconfig
は、RAで学習したプレフィックスを利用してIPv6アドレスを追加します。
したがって、
静的完成アドレス
を直接入力する設定ではありません。
概念的には、
RAプレフィックス
+
インターフェース識別子
↓
IPv6アドレス
です。
29. Cisco IOS autoconfigはEUI-64ベースのアドレスを生成する
ここは一般SLAACとの重要な境界です。
一般的なSLAACでは、
インターフェース識別子
=
必ずModified EUI-64
ではありません。
一方、Cisco IOSの、
ipv6 address autoconfig
は、受信RAのプレフィックスに対して、
EUI-64ベースのアドレス
を生成します。
したがって、
一般的なSLAAC
と、
Cisco IOS autoconfig
を同一のインターフェース識別子生成規則で一般化しません。
30. EUI-64計算そのものはページ023の既習事項
ページ024では、
Cisco IOS autoconfig
→ EUI-64ベースのアドレス
という関係を扱います。
しかし、
MAC分割
FFFE挿入
U/Lビット反転
を再講義しません。
実際のModified EUI-64計算が必要なら、ページ023の知識を使用します。
31. autoconfigだけではCisco IOSデフォルトルートを自動登録しない
次の設定:
interface GigabitEthernet0/0
ipv6 address autoconfig
では、RAプレフィックスからSLAACアドレスを構成します。
しかし、
RAでデフォルトルーターを認識した
↓
必ずCisco IOSルーティング表へ
デフォルトルートを登録する
とは、このコマンドだけでは扱いません。
Cisco IOSでそのデフォルトルート登録まで要求する場合、
default
キーワードが重要です。
32. ipv6 address autoconfig default
Cisco IOSでは、
ipv6 address autoconfig default
を使用できます。
例えば、
interface GigabitEthernet0/0
ipv6 address autoconfig default
です。
これは、
SLAACアドレス生成
に加えて、
このインターフェースで
デフォルトルーターが選択された場合
そのデフォルトルーターを使う
デフォルトルートを登録
します。
33. autoconfigとautoconfig defaultを区別する
整理すると、
ipv6 address autoconfig
は、
SLAACアドレス
を構成します。
一方、
ipv6 address autoconfig default
は、
SLAACアドレス
+
選択されたデフォルトルーターを使う
デフォルトルート
です。
したがって、
アドレスは正しい
デフォルトルートがない
というCisco IOSクライアントの問題では、
autoconfig
と、
autoconfig default
の違いが確認結果になる場合があります。
34. defaultキーワードはアドレス生成方法を変えるわけではない
autoconfig
と、
autoconfig default
で、SLAACアドレス自体の生成原理が別物になるわけではありません。
defaultキーワードで追加される主な意味は、
デフォルトルート登録
です。
したがって、
default
=
別のIPv6アドレス割り当て方式
ではありません。
35. ケース 1:SLAACのみ
期待値:
IPv6アドレス
→ SLAAC
追加情報
→ RA等
デフォルトルーター
→ RA
RA:
M=0
O=0
PIO
プレフィックス = 2001:db8:10:1::/64
A=1
なら、
A=1
→ SLAAC可能
M=0
→ DHCPv6アドレスを示していない
O=0
→ DHCPv6のその他情報を示していない
という、典型的なSLAACのみ構成として整合します。
36. ケース 2:ステートレスDHCPv6
期待値:
アドレス
→ SLAAC
DNS
→ DHCPv6
デフォルトルーター
→ RA
RA:
M=0
O=1
PIO
2001:db8:10:20::/64
A=1
なら、
A=1
→ SLAACアドレス
O=1
→ その他情報をDHCPv6
M=0
→ 管理対象アドレス設定を広告していない
です。
典型的なステートレスDHCPv6構成と整合します。
37. ケース 3:ステートフルDHCPv6
期待値:
アドレス
→ DHCPv6
DNS
→ DHCPv6
デフォルトルーター
→ RA
RA:
M=1
なら、
管理対象アドレス設定
が広告されています。
したがって、ステートフルDHCPv6を重要な候補として判断します。
ここでも、
デフォルトルーター
→ DHCPv6
とはしません。
38. ケース 4:期待する方式がステートレスDHCPv6なのにM=1
期待値:
SLAACアドレス
DHCPv6はDNS等だけ
実際のRA:
M=1
O=1
なら、
期待値
ステートレスDHCPv6
実際に広告された意図
管理対象アドレス設定あり
です。
したがって、
RAフラグ/割り当て方式不整合
を疑います。
39. ケース 5:Aフラグが0
期待値:
SLAAC
実際のPIO:
プレフィックス
2001:db8:10:20::/64
A=0
なら、そのPIOはSLAACアドレス形成に使用しません。
したがって、
期待値
SLAAC
実際値
A=0
確認結果
自律フラグ不整合
です。
40. ケース 6:A=1だがプレフィックスが/60
期待値:
一般的な64ビットインターフェース識別子を使用する
SLAACを使用するLAN
実際値:
PIO
2001:db8:10:20::/60
A=1
なら、
Aフラグ
→ SLAAC利用を広告
プレフィックス長
→ /60
です。
この条件では64ビットインターフェース識別子と組み合わせて128ビットにならないため、
SLAACプレフィックス長不整合
を疑います。
41. ケース 7:ステートフルDHCPv6アドレスはあるがデフォルトルーターがない
期待値:
ステートフルDHCPv6
ホストはDHCPv6からアドレスを取得できています。
しかし、
デフォルトルーターがない
とします。
この場合、
DHCPv6サーバーから
デフォルトゲートウェイが来ていない
こと自体を異常とはしません。
確認すべきなのは、
RAを受信しているか
RAがデフォルトルーターを広告しているか
です。
42. ケース 8:Cisco IOS autoconfig
設定:
interface GigabitEthernet0/0
ipv6 address autoconfig
RA:
プレフィックス
2001:db8:10:20::/64
A=1
なら、Cisco IOSはそのプレフィックスを利用してEUI-64ベースのSLAACアドレスを生成できます。
ここで、
一般的なSLAACホストも
必ず同じEUI-64アドレスになる
とは判断しません。
43. ケース 9:Cisco IOSデフォルトルートも必要
期待値:
SLAACアドレス
RAルーターを使う
デフォルトルートも登録
実際値:
ipv6 address autoconfig
だけなら、
SLAACアドレス
→ 期待値と整合
Cisco IOSデフォルトルート登録
→ defaultキーワードなし
です。
期待値設定が、
ipv6 address autoconfig default
なら、その差分が確認結果になります。
44. よくある誤判断
誤り1:SLAACではRAが完成アドレスを配布する
RAが提供する中心情報はプレフィックスです。
ホストがインターフェース識別子を組み合わせます。
誤り2:A/M/Oは全部RAヘッダーにある
AはPIO側です。
M/OはRAヘッダー側です。
誤り3:A=1ならMとOは必ず0
フラグは排他的な3択ではありません。
誤り4:O=1ならアドレスもDHCPv6
ステートレスDHCPv6ではアドレスはSLAACです。
誤り5:M=1ならデフォルトルーターもDHCPv6
デフォルトルーターはRAです。
誤り6:ステートフルDHCPv6ならRA不要
デフォルトルーター取得などでRAが重要です。
誤り7:A=1ならどんなプレフィックス長でもSLAAC可能
インターフェース識別子長さとの整合が必要です。
誤り8:SLAACなら必ずModified EUI-64
一般SLAACのインターフェース識別子生成方法はEUI-64固定ではありません。
誤り9:Cisco autoconfigも一般ホストと同じインターフェース識別子アルゴリズムとは限らない
Cisco IOS autoconfigはEUI-64ベースのアドレスを生成します。
誤り10:autoconfigとautoconfig defaultは同じ
defaultはデフォルトルート登録に関係します。
誤り11:M=0ならプロトコル上DHCPv6を絶対に使えない
ページ024ではM/OをRAが示す割り当て意図として読みます。
M=0をDHCPv6プロトコル自体の禁止と解釈しません。
45. IPv6アドレス割り当てトラブルシューティングの流れ
1. 期待する割り当て方式を確認
↓
2. 静的/SLAAC/
ステートレスDHCPv6/
ステートフルDHCPv6を識別
↓
3. RA受信が前提なら
RS/RAの流れを確認
↓
4. PIOプレフィックスを確認
↓
5. プレフィックス長を確認
↓
6. Aフラグを確認
↓
7. RAヘッダーの
M/Oフラグを確認
↓
8. アドレス取得元を確認
↓
9. 追加情報取得元を確認
↓
10. デフォルトルーター取得元を確認
↓
11. Cisco IOSなら
autoconfig/autoconfig defaultを確認
↓
12. 期待値と実際値の
割り当て方式を比較
↓
13. 割り当て確認結果を特定
46. 最終的に判断できるようにすること
ページ024では最終的に、
静的
SLAAC
ステートレスDHCPv6
ステートフルDHCPv6
を識別できる
RS/RAの基本流れを説明できる
SLAACでプレフィックス情報を
RAから得ると判断できる
Aフラグが
PIO単位であると判断できる
A=1の意味を判断できる
M/Oが
RAヘッダー側であると判断できる
O=1を
その他設定と判断できる
M=1を
管理対象アドレス設定の
手掛かりとして判断できる
ステートレスDHCPv6では
アドレスはSLAAC
追加情報はDHCPv6
と判断できる
ステートフルDHCPv6では
アドレスをDHCPv6から得ると判断できる
ステートフルDHCPv6でも
デフォルトルーターはRAと判断できる
SLAAC用途で
プレフィックス長とインターフェース識別子長さの
整合を確認できる
一般SLAACを
Modified EUI-64へ固定しない
Cisco IOS
ipv6 address autoconfig
を読める
Cisco IOS autoconfigが
EUI-64ベースのアドレスを生成すると判断できる
ipv6 address autoconfig default
のデフォルトルート登録を判断できる
期待する割り当て方式と
実際のRA/設定の
不一致を識別できる
必要があります。
まとめ
IPv6アドレス割り当ては、
静的
SLAAC
ステートレスDHCPv6
ステートフルDHCPv6
へ整理できます。
SLAACでは、
ホスト
-- RS -->
ルーター
ホスト
<-- RA --
ルーター
という流れを利用し、
RAプレフィックス
+
ホスト生成インターフェース識別子
からIPv6アドレスを形成します。
RAでは、
M/O
→ RAヘッダー
A
→ プレフィックス情報オプション
と場所を分けて読みます。
A=1
なら、そのPIOプレフィックスを自律アドレス設定に利用できます。
CCNAで扱う一般的な64ビットインターフェース識別子のリンクでは、
/64プレフィックス
+
64ビットインターフェース識別子
=
128ビットIPv6アドレス
となります。
ステートレスDHCPv6では、
アドレス
→ SLAAC
DNS等
→ DHCPv6
デフォルトルーター
→ RA
です。
典型的には、
A=1
M=0
O=1
として整理できます。
ステートフルDHCPv6では、
アドレス
→ DHCPv6
追加情報
→ DHCPv6
デフォルトルーター
→ RA
です。
M=1
は管理対象アドレス設定の重要な手掛かりです。
ただし、
A/M/O
は排他的な3択ではありません。
また、
M=0
=
DHCPv6をプロトコル上禁止
とも考えません。
トラブルシューティングでは、RAフラグを期待する割り当て方式との整合判断に使用します。
Cisco IOSでは、
ipv6 address autoconfig
によってRAプレフィックスからEUI-64ベースのSLAACアドレスを生成します。
これは、
一般SLAAC
=
必ずEUI-64
という意味ではありません。
さらに、
ipv6 address autoconfig default
では、SLAACアドレス生成に加えて、
選択されたデフォルトルーターを使う
デフォルトルート
を登録します。
ページ024での最終流れは、
期待値割り当て
↓
RS/RA
↓
PIOプレフィックス
↓
Aフラグ
↓
M/Oフラグ
↓
アドレス取得元
↓
追加情報取得元
↓
デフォルトルーター取得元
↓
Cisco IOSクライアント設定
↓
割り当て方式確認結果
です。
次のページ025では、ここまでの設定や割り当て方式を前提に、
show ipv6 interface brief
show ipv6 interface
show running-config interface
show ipv6 dhcp interface
show ipv6 routers
などを使い、実稼働状態を確認します。
理解確認
このページの内容を15問で確認します。
理解確認15問へ →