InfraAcademy

InfraAcademy Blog

IPv6の「::」は何回まで使える?CCNAのIPv6問題を、省略表記・アドレスの種類・EUI-64の練習問題8問で確かめる

著者: ryu | #CCNA #資格 #IPv6
講座一覧を見る

Linux・ネットワーク・AWSなど、学びたい分野の講座を探せます

この記事を共有

こんにちは、インフラエンジニアのryuです。

この記事は、CCNAの勉強をしていて、IPv6の問題になると長いアドレスを見ただけで手が止まってしまう人に向けて書いています。

IPv6のアドレスは128ビットあり、16進数で書いても32桁になります。IPv4に慣れていると、この長さだけで難しく感じますよね。

ただ、CCNAでIPv6が問われるところは、ある程度決まっています。省略表記のルール、アドレスの種類の見分け方、EUI-64の計算、そしてルーターの設定コマンドです。

そこでこの記事では、この4つを順番に整理してから、オリジナルの練習問題を8問解いてもらいます。

インターネットでIPv6がどれくらい使われているのかを先に知りたい人は、IPv6の利用が半分を超えた話の記事を読んでおくと、なぜCCNAでIPv6を学ぶのかがつかみやすくなります。CCNA全体の勉強の進め方は、CCNAの勉強方法の記事にまとめています。

CCNAでIPv6はどこまで問われる?

まずは試験の範囲を確認しておきます。CCNA(200-301)の出題範囲では、IPv6は主に「1.0 Network Fundamentals」の分野に入っています。この分野は試験全体の20%です。

項目としては、次の2つが書かれています。

項目 内容
1.8 Configure and verify IPv6 addressing and prefix(IPv6アドレスとプレフィックスを設定し、確認する)
1.9 Describe IPv6 address types(ユニキャスト〔グローバル・ユニークローカル・リンクローカル〕、エニーキャスト、マルチキャスト、modified EUI-64)

このほかに、「3.0 IP Connectivity」の分野でIPv4とIPv6のスタティックルートの設定も出てきます。つまり、IPv6は用語を覚えるだけでなく、ルーターに設定して確認するところまでが範囲です。

なお、現行の200-301 v1.1の最終受験日は2027年2月2日で、2027年2月3日からはv2.0に切り替わります。受験日が決まったら、Ciscoの公式ページで出題範囲をもう一度確認しておきましょう。

IPv6アドレスの省略表記のルールとは?

IPv6のアドレスは、16ビットずつ8つのブロックに分けて、コロンでつなげて書きます。1つのブロックは16進数の4桁です。

例えば、省略しないで書くと次のようになります。

2001:0db8:0000:0000:0000:ff00:0042:8329

このままだと長すぎるので、2つのルールで短く書けるようになっています。

ルール1:各ブロックの先頭の0は省略できる

1つ目のルールは、ブロックの先頭に並んだ0を省略できるというものです。0db8 は db8、0042 は 42、0000 は 0 と書けます。

注意したいのは、省略できるのは先頭の0だけということです。ff00 の末尾の0は省略できません。ff00 を ff と書くと、別の値になってしまいます。

ルール2:0だけのブロックが続くところは「::」にできる

2つ目のルールは、0だけのブロックが連続しているところを :: にまとめられるというものです。上の例は、次のように短くなります。

2001:db8::ff00:42:8329

ここで大事なのが、:: は1つのアドレスの中で1回しか使えないというルールです。2回使うと、それぞれの :: に0のブロックがいくつ入るのかが決まらなくなるからです。

RFC 5952では、表記を1つにそろえるために、さらに細かい決まりが書かれています。要点をまとめると次のとおりです。

「::」は、0のブロックが続くところをできるだけ長くまとめるために使う。0のブロックが1つだけのところには使わない。同じ長さの候補が2か所あるときは、前にあるほうをまとめる。16進数のアルファベットは小文字で書く。

例えば 2001:db8:0:0:1:0:0:1 は、0が2つ続くところが前と後ろに1か所ずつあります。同じ長さなので、前のほうをまとめて 2001:db8::1:0:0:1 と書きます。

CCNAの問題では、「正しい省略表記はどれか」「省略を元に戻すとどうなるか」の両方の向きで出てきます。元に戻すときは、:: の部分に、足りないブロックの数だけ 0000 を入れればよいです。

IPv6アドレスの種類の見分け方

次は、アドレスの種類です。IPv6にはブロードキャストがありません。その代わりに、マルチキャストが同じ役割を受け持っています。

種類は、アドレスの先頭(プレフィックス)を見れば見分けられます。CCNAで覚えておきたいものを表にまとめました。

種類 プレフィックス 先頭の見え方 使いどころ
グローバルユニキャスト 2000::/3 2 か 3 で始まる インターネットで使う、世界で一意のアドレス
ユニークローカル fc00::/7 実際には fd で始まるものを使う 組織の中だけで使うアドレス。IPv4のプライベートアドレスに近い
リンクローカル fe80::/10 fe80 で始まる 同じリンク(セグメント)の中だけで使う。ルーターを越えない
マルチキャスト ff00::/8 ff で始まる グループ宛ての通信。ff02::1 は全ノード、ff02::2 は全ルーター
ループバック ::1/128 ::1 自分自身。IPv4の 127.0.0.1 にあたる
未指定 ::/128 :: アドレスがまだ決まっていない状態を表す

この中で、IPv4に無い考え方がリンクローカルアドレスです。IPv6を有効にしたインターフェースには、リンクローカルアドレスが自動で付きます。ルーター同士の経路のやり取りや、次に送る先(ネクストホップ)の指定にも使われます。

エニーキャストはどう見分ける?

エニーキャストは、同じアドレスを複数の機器に設定しておき、その中でいちばん近い機器に届ける使い方です。

ここで間違えやすいのが、エニーキャスト専用のプレフィックスは無いという点です。RFC 4291では、エニーキャストアドレスはユニキャストのアドレス空間から割り当てられ、見た目ではユニキャストと区別できないとされています。

なので、「ff で始まるのはエニーキャスト」のような選択肢が出てきたら誤りです。ff で始まるのはマルチキャストです。

EUI-64でインターフェースIDを作る手順

IPv6のアドレスは、前半64ビットのプレフィックス(ネットワークを表す部分)と、後半64ビットのインターフェースID(機器を表す部分)に分けて考えるのが一般的です。

modified EUI-64は、MACアドレス(48ビット)から、この64ビットのインターフェースIDを作る方法です。手順は3つです。

  1. MACアドレスを前半24ビットと後半24ビットに分ける
  2. 真ん中に fffe を入れて64ビットにする
  3. 先頭から7ビット目(U/Lビット)を反転させる

MACアドレス 00:1a:2b:3c:4d:5e で計算してみます。

MACアドレス           00 1a 2b | 3c 4d 5e
fffe を入れる         00 1a 2b ff fe 3c 4d 5e
先頭の1バイト 00 を2進数にする    0000 0000
7ビット目を反転する                0000 0010  → 02
インターフェースID    021a:2bff:fe3c:4d5e

先頭の0を省略すると、21a:2bff:fe3c:4d5e になります。プレフィックスが 2001:db8:1:1::/64 なら、アドレスは 2001:db8:1:1:21a:2bff:fe3c:4d5e です。

計算で迷いやすいのは3つ目の手順です。7ビット目は、先頭の1バイトの中で値が 2 にあたるビットです。なので、先頭のバイトの2文字目の16進数を見て、2 のビットが0なら 2 を足し、1なら 2 を引く、と考えると早く計算できます。00 なら 02、0c なら 0e、02 なら 00 になります。

Ciscoルーターで設定してみよう

ここからは、Ciscoルーターでの設定コマンドを確認します。最初に覚えておきたいのは、ルーターでIPv6のパケットを転送させるには、グローバルコンフィギュレーションモードで次のコマンドが必要ということです。

R1(config)# ipv6 unicast-routing

IPv4のルーティングは最初から有効ですが、IPv6のルーティングは既定では有効になっていません。インターフェースにアドレスを付けても、このコマンドが無いとルーターとしてIPv6を転送しません。

インターフェースへのアドレスの付け方は、次の3通りを押さえておけば十分です。

R1(config)# interface GigabitEthernet0/0
R1(config-if)# ipv6 address 2001:db8:1:1::1/64
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ipv6 address 2001:db8:1:2::/64 eui-64
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/2
R1(config-if)# ipv6 address fe80::1 link-local

1つ目は、アドレスをすべて手で指定する書き方です。2つ目は、プレフィックスだけを指定し、インターフェースIDはEUI-64で作らせる書き方です。3つ目は、自動で付くリンクローカルアドレスの代わりに、覚えやすい値を手で付ける書き方です。

確認には、次のコマンドを使います。

コマンド 分かること
show ipv6 interface brief インターフェースごとの状態と、付いているリンクローカルアドレス・グローバルアドレスの一覧
show ipv6 interface GigabitEthernet0/0 1つのインターフェースの詳しい情報。参加しているマルチキャストグループも表示される
show ipv6 route IPv6のルーティングテーブル

show ipv6 interface brief を見ると、グローバルアドレスを1つしか設定していなくても、fe80 で始まるアドレスも一緒に表示されます。これが自動で付いたリンクローカルアドレスです。IPv6では、1つのインターフェースに複数のアドレスが付くのが普通だと覚えておきましょう。

ルーティングテーブルの読み方そのものは、IPv4のshow ip routeの記事と考え方は同じです。

CCNAのIPv6の練習問題8問

ここからはオリジナルの練習問題です。正解と解説は、それぞれの問題のすぐ下の引用ブロックにまとめています。先に自分で答えを決めてから読んでください。

問題1:正しい省略表記

2001:0db8:0000:0000:0000:0000:0000:0001 を、RFC 5952のルールに沿って省略したものはどれですか。

  • A. 2001:db8::1
  • B. 2001:db8:0::1
  • C. 2001:db8:::1
  • D. 2001:db8::0001

正解:A 0だけのブロックが続く部分をすべて :: にまとめ、残ったブロックの先頭の0も省略します。B は0のブロックを1つ残しているので最も短い形ではありません。C のようにコロンを3つ並べる書き方はできません。D は先頭の0が残っています。

問題2:使えない表記

IPv6アドレスの表記として正しくないものはどれですか。

  • A. 2001:db8::1:0:0:1
  • B. 2001:db8:0:0:1::1
  • C. 2001:db8::1::1
  • D. fe80::1

正解:C :: は1つのアドレスの中で1回しか使えません。C は2回使っているので、それぞれにいくつの0のブロックが入るのか決められません。B は省略のしかたとしては最適ではありませんが、アドレスとしては1つに決まる正しい表記です。

問題3:省略を元に戻す

2001:db8:a::1 を省略しない形に戻したものはどれですか。

  • A. 2001:0db8:000a:0000:0000:0000:0000:0001
  • B. 2001:0db8:a000:0000:0000:0000:0000:0001
  • C. 2001:0db8:000a:0000:0001
  • D. 2001:0db8:000a:0001:0000:0000:0000:0000

正解:A 書かれているブロックは4つなので、:: には0のブロックが4つ入ります。a は先頭の0を省略した形なので、元に戻すと 000a です。B のように後ろに0を足すと値が変わります。

問題4:リンクローカルアドレス

次のうち、リンクローカルアドレスはどれですか。

  • A. 2001:db8:1::1
  • B. fd12:3456:789a::1
  • C. fe80::21a:2bff:fe3c:4d5e
  • D. ff02::1

正解:C リンクローカルアドレスは fe80::/10 で、fe80 で始まります。A はグローバルユニキャスト(の範囲にある文書用のアドレス)、B はユニークローカル、D は全ノード宛てのマルチキャストです。

問題5:IPv4のプライベートアドレスに近いもの

組織の中だけで使い、インターネットには出さない前提のIPv6アドレスの種類はどれですか。

  • A. グローバルユニキャスト
  • B. ユニークローカル
  • C. マルチキャスト
  • D. エニーキャスト

正解:B ユニークローカルアドレス(fc00::/7)は、組織の中で使うためのアドレスで、IPv4のプライベートアドレスに近い役割です。リンクローカルと違い、組織の中であればルーターを越えて使えます。

問題6:EUI-64の計算

MACアドレスが 0c:ab:12:34:56:78 のインターフェースで、modified EUI-64を使ったときのインターフェースIDはどれですか。

  • A. 0cab:12ff:fe34:5678
  • B. 0eab:12ff:fe34:5678
  • C. 0eab:1234:fffe:5678
  • D. 0cab:12fe:ff34:5678

正解:B MACアドレスを前半と後半に分け、真ん中に fffe を入れると 0cab:12ff:fe34:5678 です。さらに先頭の1バイト 0c(0000 1100)の7ビット目を反転すると 0e(0000 1110)になります。A は7ビット目の反転を忘れた形です。

問題7:IPv6のパケットが転送されない

ルーターの2つのインターフェースにIPv6のグローバルアドレスを設定しました。それぞれのPCからルーターには ping が通りますが、PC同士の通信ができません。まず確認するべきものはどれですか。

  • A. ipv6 unicast-routing が設定されているか
  • B. インターフェースにリンクローカルアドレスが付いているか
  • C. ip routing が設定されているか
  • D. PCにIPv4のアドレスが付いているか

正解:A Ciscoルーターでは、IPv6のルーティングは既定で有効になっていません。インターフェースにアドレスがあれば自分宛ての ping には応答できますが、インターフェース間でIPv6のパケットを転送するには ipv6 unicast-routing が必要です。C はIPv4のルーティングのコマンドです。

問題8:ブロードキャストの代わり

IPv6で、IPv4のブロードキャストの代わりに使われるものはどれですか。

  • A. エニーキャスト
  • B. マルチキャスト
  • C. リンクローカルユニキャスト
  • D. ループバック

正解:B IPv6にはブロードキャストがありません。同じリンク上のすべての機器に届けたいときは、全ノード宛てのマルチキャストアドレス ff02::1 を使います。エニーキャストは、複数の機器のうち近い1台に届ける使い方なので、すべての機器には届きません。

IPv6の問題で間違えたときの見直し方

8問のうち間違えた問題があれば、どこで迷ったのかを確認しておきましょう。次の表に当てはめると、見直す場所がはっきりします。

間違えた問題 見直すところ
問題1・2・3 省略の2つのルール。先頭の0だけを省略し、:: は1回だけ
問題4・5 アドレスの種類の表。先頭が 2・fd・fe80・ff のどれかで見分ける
問題6 EUI-64の3つの手順。fffe を入れたあと、7ビット目の反転を忘れない
問題7 ipv6 unicast-routing が既定では無いこと
問題8 ブロードキャストが無く、マルチキャストが代わりになること

IPv6は、アドレスを何度か自分で書いて省略してみると、長さに対する苦手意識がかなり減ります。

今日やる練習とInfraAcademyで続ける方法

今日の練習として、次の3つをやってみてください。どれも紙とペンだけでできます。

  1. 2001:0db8:0000:0001:0000:0000:0000:00ff を、RFC 5952のルールで省略してみる
  2. 自分のPCのMACアドレスを調べて、EUI-64のインターフェースIDを計算してみる
  3. 問題7のルーターに足りない1行を書き、グローバルコンフィギュレーションモードで入力する形で書き出す

1つ目の答えは 2001:db8:0:1::ff です。0が1つだけのブロックは :: にしないので、3つ目のブロックは 0 のまま残ります。

2つ目は、WindowsならコマンドプロンプトでIPv4の確認と同じく ipconfig /all、Linuxなら ip link でMACアドレスを確認できます。最近のOSは、プライバシーのためにMACアドレスを使わないインターフェースIDを作ることが多いので、PCに付いているIPv6アドレスと計算結果が一致しなくても問題ありません。

実際にルーターを組んで疎通を確かめたい人は、CCNAのハンズオン課題の記事も参考にしてください。IPv4のサブネット計算に不安が残っている人は、CCNAのサブネットの練習問題で先に確認しておくと安心です。

InfraAcademy のネットワークの講座では、講座の中のシミュレーターでルーターやスイッチを設定して、ping で疎通を確認できます。学ぶ順番はネットワークのロードマップで確認できます。

問題演習を続けたい人は、トップページのInfraAcademy の資格模擬問題から「CCNA模擬試験200問」を解けます。Network Fundamentalsの分野で間違えた問題があれば、この記事のアドレスの種類の表に戻って、どこで取り違えたのかを確認してみてください。

経路の選び方の問題は、CCNAのルーティングの練習問題で別にまとめています。

まとめ

CCNAのIPv6の問題で、押さえておきたいところを振り返ります。

  • 省略できるのはブロックの先頭の0だけで、:: は1つのアドレスで1回しか使えない
  • :: は0のブロックが2つ以上続くところに使い、同じ長さなら前のほうをまとめる
  • 先頭が 2 か 3 ならグローバルユニキャスト、fd ならユニークローカル、fe80 ならリンクローカル、ff ならマルチキャスト
  • エニーキャストには専用のプレフィックスが無く、IPv6にはブロードキャストも無い
  • EUI-64は、MACアドレスの真ん中に fffe を入れ、7ビット目を反転して作る
  • ルーターでIPv6を転送するには ipv6 unicast-routing が必要

IPv6の問題は、省略のルールとアドレスの先頭の見分け方の2つで、半分以上が解けます。

長いアドレスも、ルールが分かれば読むのに時間はかかりません。今日の練習を一度やってから、模擬問題で確かめてみてください。合格に向けて、一緒に進んでいきましょう。

参考

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

株式会社InfraAcademy 代表 / エンジニア

大手メーカーでインフラエンジニアとして勤務した後、ベンチャー企業・スタートアップでフルスタックエンジニアを経験。その後、起業し学習サービス「InfraAcademy」を運営しています。
保有資格:ネットワークスペシャリストなど 運営会社:株式会社InfraAcademy

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る