CCNA試験のIPv6問題、桁数が多くてパッと見で難しそうに感じる人、多いと思う。実はアドレス圧縮のルールとEUI-64の手順さえ頭に入れば、本番でも30秒くらいで解けるようになる。この記事では、私がCCNA 200-301を受験したときに実際に使ったIPv6アドレスの読み方・圧縮・EUI-64計算を、具体例とセットでまとめた。ちなみに、試験当日は電卓が使えないから、本当に暗算で解けるパターンを覚えるのが最短ルート。

IPv6アドレスの基本構造(16進数×8ブロック)

IPv6アドレスは128ビット。これを16ビットずつ8ブロックに区切って、各ブロックを16進数で表記する。たとえば2001:0db8:0000:0000:0000:0000:0000:0001という具合。

で、この時点で「長すぎる」と感じた人、安心してほしい。IPv6には正式な省略ルールがあって、それに従って書き換えれば体感1/3くらいの長さになる。RFC 5952でも推奨表記が決まっているので、CCNA試験もこのルールに沿って出題される。

アドレス圧縮ルール|「::」の使い方をマスターする

CCNA試験で一番よく問われるのが、この圧縮表記。覚えるルールは基本3つだけ。

  • 各ブロックの先頭ゼロは省略できる(例:0db8db8
  • 連続するゼロブロックは::で1回だけ省略できる
  • 1つのアドレス内で::は必ず1回のみ(2回以上は禁止)

実例で確認する。2001:0db8:0000:0000:0000:0000:0000:0001 を圧縮すると2001:db8::1。簡潔すぎて最初は怖いけど、正しい表記。

「::」は1回しか使えない罠

例えば2001:0:0:1:0:0:0:1というアドレス。::を2回使って2001::1::1と書きたくなるけど、これはNG。なぜなら::がどこを何ブロック分省略したか一意に決まらなくなるから。正しくは「長い方のゼロ連続」を優先して、2001:0:0:1::1と書く。ここ、意外と出題される。

ちなみに、私が受験したときに出た問題は、選択肢に2通りの書き方が並んでいて「どれが正しい圧縮表記か」という形式だった。RFC 5952では「最長の連続ゼロを省略する」「同じ長さなら最初のゼロ列を省略する」と決まっているので、これを基準に判断すると間違えない。

EUI-64を暗算で導き出す3ステップ

EUI-64はMACアドレス(48ビット)から64ビットのインターフェースIDを作る仕組み。CCNA試験では「このMACから生成されるEUI-64形式のインターフェースIDは?」という形で頻出。

手順は3つ。

  1. MACアドレスを前24ビット(OUI)と後24ビット(NIC固有部)に分割する
  2. 中央にFFFE(16ビット)を挿入して64ビットに拡張する
  3. 先頭オクテットの7ビット目(U/Lビット)を反転する

具体例で示す。MACアドレスが00:1A:2B:3C:4D:5Eの場合の変換手順はこんな感じ。

Step1 : 00:1A:2B | 3C:4D:5E
Step2 : 00:1A:2B:FF:FE:3C:4D:5E
Step3 : 先頭 00 → 02 (7ビット目反転)
結果  : 021A:2BFF:FE3C:4D5E

U/Lビット反転の覚え方

先頭オクテットの7ビット目を反転する、と言われてもイメージしづらい。実務的な覚え方としては「先頭16進1桁を見て、2進数の下2ビット目を反転する」だけ。

ぶっちゃけ試験で出るパターンは限られていて、00→0202→0004→06といった変換表を頭に入れておけば時間短縮になる。私は00↔02だけ覚えて、他は2進数に展開して解いた。

プレフィックス長と集約の考え方

CCNAではプレフィックス長の計算問題も出る。基本は「/64がサブネットの境界」「/48がサイトのプレフィックス」「/128がホストルート」くらいを覚えておけばいい。

プレフィックス長主な用途補足
/128ホスト固有アドレスループバック::1/128など
/127Point-to-PointリンクRFC 6164で推奨
/64通常のサブネットSLAAC/EUI-64の前提
/48サイトプレフィックス企業割当の標準サイズ
/32ISP向けRIRから配布される

で、集約問題は共通プレフィックスを2進数で見つけるのが基本。たとえば2001:db8:1::/482001:db8:2::/48を集約すると2001:db8::/46になる。001010は先頭2ビットが共通だから/46まで集約できる、という計算。

CCNAで頻出のIPv6アドレス種別

試験では「このアドレスはユニキャスト?リンクローカル?マルチキャスト?」と識別させる問題が出る。プレフィックスの頭を見れば一瞬で判別できる。

  • グローバルユニキャスト2000::/32または3で始まる)
  • リンクローカルFE80::/10FE80~FEBF
  • ユニークローカルFC00::/7FC00~FDFF、IPv4のプライベートに相当)
  • マルチキャストFF00::/8FFで始まる)
  • 未指定アドレス::/128
  • ループバック::1/128

個人的には、この6個だけ覚えておけばアドレス種別の問題は全部解ける。正直この判別は暗記ゲーなので、試験前日に詰め込むのがコスパ良い。

リンクローカルの現場での使い道

余談だけど、リンクローカルは現場でも普通に使う。OSPFv3のネイバーはリンクローカルアドレスで組まれるし、Ciscoルータでshow ipv6 interface briefを叩くと必ずFE80::で始まるアドレスが出てくる。試験のためだけでなく実務でも触るので、理屈を理解しておくと後が楽。

R1# show ipv6 interface brief
GigabitEthernet0/0     [up/up]
    FE80::21A:2BFF:FE3C:4D5E
    2001:DB8:1::1

本番で使える練習問題

簡単な練習問題を2問。まずは自力で考えてみてほしい。

Q1. 以下のIPv6アドレスを最短形式で表記せよ
    2001:0db8:0000:0000:0123:0000:0000:0001

Q2. MACアドレス「2C:54:91:88:C9:E3」から生成される
    EUI-64形式のインターフェースIDを答えよ

解答を書く。

A1. 2001:db8::123:0:0:1
    (長い方のゼロ連続を::で省略する)

A2. 2E54:91FF:FE88:C9E3
    Step1: 2C:54:91 | 88:C9:E3
    Step2: 2C:54:91:FF:FE:88:C9:E3
    Step3: 2C → 2E(7ビット目反転)

ちなみに、Q1でつまずいた人は「長い方のゼロ連続を優先する」を確認してほしい。Q2は2C(2進数0010 1100)の7ビット目が0なので、反転して1になると0010 1110=2E、という計算。手を動かすと一発で覚えられる。

よくある質問

Q. IPv6のサブネットは必ず/64にしないといけない?

原則は/64。SLAACやEUI-64が64ビットのインターフェースIDを前提にしているため。ただし、Point-to-Pointリンクは/127、ループバックは/128など、例外もある。CCNA的には「SLAAC使う≒/64」と覚えておけばOK。

Q. EUI-64とSLAACの違いは?

EUI-64はインターフェースIDを「MACアドレスから機械的に作る方法」。SLAACは「RAを受信してアドレス全体を自動構成する仕組み」。EUI-64はSLAACの中で使われるインターフェースID生成手段の一つ、という関係。

Q. CCNAのIPv6問題、何問くらい出る?

私が受けたときは5〜6問くらい出た気がする。全問解けるようになる必要はないけど、アドレス圧縮・アドレス種別・EUI-64の3つは必ず押さえたい。この3つで半分は取れる。

まとめ

CCNAのIPv6は「圧縮ルール」「EUI-64」「アドレス種別」の3本柱を押さえれば十分得点できる。丸暗記ではなく手順で解くのがコツ。本番の時間節約には練習問題を何度か解いて、手を慣らしておくのがおすすめ。

次に読むなら、同じく計算問題のコツをまとめたサブネット計算を30秒で解く方法もあわせてどうぞ。