メインコンテンツへ
ネットワークネットワーク実践

IPv6アドレスの省略表記に関するルールとして、最も適切なものはどれか。

ア.各グループの先頭の0は省略できるが、後続の0は省略できない。例えば「0012」は「12」と書ける。
イ.すべての0グループが連続する最長の箇所を「::」で置き換えることができ、「::」は1アドレス中に2か所以上使用することもできる。
ウ.先頭の0の省略(例:0001→1)と、連続する0グループの「::」による省略が使えるが、「::」は1アドレス中に1か所のみ使用できる。正解
エ.IPv6アドレスは32桁の16進数をコロンで8グループに分け、各グループを2桁で表記する。

解説

IPv6の省略はパズルのような2つのルールの組み合わせ。「先頭ゼロ削り」と「連続ゼログループまとめ」の2技を使えますが、まとめ技(::)は1回しか使えないのがポイント。2回使うと「どこに何個の0があったか」がわからなくなります。

なぜ ウ が正解か

ウが正解。IPv6の省略規則(RFC 5952)は2つ。①各グループ内の先頭の0は省略可能(0001→1、0a00→a00)。②連続する全てが0のグループは「::」に置き換え可能だが、アドレス中に「::」は1か所のみ(複数使用すると展開が一意に定まらないため)。例:2001:0db8:0000:0000:0000:0000:0000:0001→2001:db8::1

なぜ ア は間違いか

先頭の0は省略できる(0012→12)という部分は正しい。しかし「後続の0は省略できない」は連続ゼログループの「::」省略を無視した不完全な説明。連続する全0グループは「::」で省略できる。

なぜ イ は間違いか

「::」を1アドレス中に2か所以上使用できるという記述が誤り。「2001::db8::1」のような表記では「::」がそれぞれ何個の0を表すか一意に解釈できないため、RFC 5952では「::」は1か所のみと定められている。

なぜ エ は間違いか

IPv6アドレスは128ビットを16進数4桁×8グループで表記する。各グループは「4桁(最大)」であり「2桁で表記」は誤り。また32桁の16進数×4bit=128bitが正しいが、各グループの桁数は4桁が正確。

出典: AI生成問題(学習用)