IPv6アドレスの省略ルール|「::」の使い方と戻し方

IPv6アドレスの省略ルール

IPv6アドレスの省略ルールは2つです。各ブロックの先頭の0は省けて、0だけのブロックが続く部分は1か所だけ「::」にまとめられます。たとえば2001:0db8:0000:0000:0000:0000:0000:0001を省略すると、2001:db8::1です。推奨の形はRFC 5952で決められています。

この記事でわかること

  • IPv6アドレスの8ブロックの書き方の基本
  • 先頭の0の省略と、「::」でまとめるルール
  • RFC 5952が決めた推奨の書き方(小文字・一番長い0の並び)
  • 省略形を元の8ブロックに戻す手順と練習問題
  • ::1やfe80::など、実務でよく見る省略表記

一次情報: RFC 4291「IP Version 6 Addressing Architecture」(参照)/RFC 5952「A Recommendation for IPv6 Address Text Representation」(参照)/RFC 3849「IPv6 Address Prefix Reserved for Documentation」(参照)※2026年10月時点

IPv6の表記は、ITの基礎を問う試験でも扱われる内容です。基本情報技術者試験の合格率や科目ごとの勉強法は、別の記事にまとめました。

目次

IPv6アドレスの書き方の基本|16進数の8ブロック

IPv6アドレスは128ビットの長さがあり、16ビットずつ8つのブロックに分けて書きます。各ブロックは4桁の16進数(0〜9とa〜f)で、ブロックの間の区切りは「:」です。

2001:0db8:0000:0000:0000:0000:0000:0001

このままでは長くて読み書きしにくいため、RFC 4291で省略のしかたが決められています。なお、この記事で例に使う2001:db8で始まるアドレスは、RFC 3849で説明用に予約された範囲です。

IPv4とIPv6の書き方の違い
項目IPv4IPv6
長さ32ビット128ビット
区切り「.」で4つ「:」で8つ
1区切りの書き方10進数(0〜255)16進数4桁(0000〜ffff)
省略できない先頭の0と、0の連続を省ける

省略ルール1|各ブロックの先頭の0を省く

1つ目のルールでは、ブロックごとに先頭に並ぶ0を省けます。0だけのブロックは「0」1文字になります。

先頭の0の省き方
元のブロック省略した形理由
0db8db8先頭の0を1つ省く
00011先頭の0を3つ省く
00000全部0なら1文字残す
00a0a0先頭の0だけ省く
a000a000(変わらない)後ろの0は省けない
10201020(変わらない)途中の0も省けない

省けるのは「先頭」の0だけです。後ろや途中の0まで消すと、別のアドレスになってしまいます。

省略ルール2|0のブロックの連続を「::」にまとめる

2つ目のルールは、0だけのブロックが続く部分を「::」にまとめる書き方です。RFC 4291には、「::」は1つのアドレスの中で1回しか使えないと書かれています。

2001:db8:0:0:0:0:0:1   →   2001:db8::1
0:0:0:0:0:0:0:1        →   ::1
0:0:0:0:0:0:0:0        →   ::

「::」は先頭や末尾にも使えます。1回に限られるのは、2か所で使うと、それぞれに何ブロックの0が入っていたのかが分からなくなるためです。

RFC 5952が決めた推奨の書き方

RFC 4291の省略ルールでは、同じアドレスを何通りにも書けます。そこでRFC 5952は、機械やログで扱いやすいよう、書き方を1つに揃える推奨を決めました。

RFC 5952の推奨ルールと例
ルール正しい例推奨に合わない例
先頭の0は省く2001:db8::12001:0db8::0001
「::」はできるだけ長く使う2001:db8::12001:db8:0:0::1
0が1ブロックだけなら「::」にしない2001:db8:0:1:1:1:1:12001:db8::1:1:1:1:1
0の並びが複数あれば一番長い所を「::」に2001:0:0:1::12001::1:0:0:0:1
同じ長さなら前の所を「::」に2001:db8::1:0:0:12001:db8:0:0:1::1
英字は小文字で書く2001:db8::abcd2001:DB8::ABCD

右の列の書き方も、アドレスとしては同じものを指しています。ただ、表記がばらばらだとログの検索や設定の照合で一致しません。自分で書くときは、左の推奨形に揃えるのが安全です。

省略したアドレスを元に戻す手順

省略形を元に戻すには、まず「::」の中に何ブロックの0が入っていたかを数えます。全体はいつも8ブロックなので、見えているブロックの数を8から引けば分かります。

  1. 「::」の前と後ろにあるブロックの数を数える
  2. 8から引いた数だけ、「::」の場所に0000のブロックを入れる
  3. 各ブロックの先頭に0を足して4桁にそろえる
  4. 最後に、「:」で区切られた数が8つあるかを確かめる

2001:db8:0:1::a を元に戻す

  • 「::」の前は4ブロック(2001・db8・0・1)、後ろは1ブロック(a)
  • 1見えているのは4+1=5ブロック8−5=3なので、「::」の中は0000が3つ
  • 22001:db8:0:1:0000:0000:0000:a「::」の場所に3ブロックを入れる
  • 32001:0db8:0000:0001:0000:0000:0000:000a各ブロックを4桁にそろえて完成

8から引く数を間違えないことが、戻すときの一番のポイント。

図:「::」の中身は、8から見えているブロック数を引いて求める

練習:推奨の形に省略してみる

左の元のアドレスを、RFC 5952の推奨の形にしてみてください。右が答えです。

IPv6の省略の練習問題と答え
元のアドレス推奨の省略形
2001:0db8:0000:0001:0000:0000:0000:00012001:db8:0:1::1
2001:0db8:0000:0000:0001:0000:0000:00012001:db8::1:0:0:1
fe80:0000:0000:0000:0a1b:00ff:fe00:0001fe80::a1b:ff:fe00:1
2001:0db8:00a0:0000:0000:0000:0000:00002001:db8:a0::
2001:0db8:0001:0001:0001:0001:0000:00012001:db8:1:1:1:1:0:1

2問目は、0が2ブロック続く所が2か所あり、同じ長さなので前のほうを「::」にします。5問目は0が1ブロックだけなので、「::」は使いません。

よくある間違い

省略で間違えやすいのは、ほぼ次のパターンに集まっています。設定ファイルやファイアウォールのルールに書く前に、一度照らし合わせておくと安心です。

IPv6の省略でよくある間違い
間違った書き方どこが誤りか正しい書き方の例
2001:db8::1::1「::」を2回使っている2001:db8:0:0:1::1 など
2001:db8:a::(元は00a0)後ろの0まで消した2001:db8:a0::
2001:db8:1:0:0:0:0:10の連続をまとめていない2001:db8:1::1
2001:db8::1:1:1:1:10が1ブロックだけなのに「::」(推奨に合わない)2001:db8:0:1:1:1:1:1
2001:db8::1:8080ポート番号と区別できない[2001:db8::1]:8080

最後の行は、URLやログでポート番号と並べるときの書き方です。RFC 5952は、アドレスを「[ ]」で囲んでからポート番号を続ける形を勧めています。

実務でよく見る省略表記

コマンドの表示や設定では、省略された形のアドレスがそのまま出てきます。よく見るものは、形で覚えておくと読み取りが速くなるでしょう。

実務でよく見るIPv6の表記
表記意味見かける場面
::1自分自身(ループバック)IPv4の127.0.0.1にあたる
::アドレス未設定待ち受けの「全部のアドレス」の表示
fe80::〜リンクローカルアドレスIPv6を有効にしたインターフェースのipconfigやip addr
fe80::1%12「%」の後ろは使うインターフェースの番号Windowsでpingするとき
::ffff:192.0.2.1IPv4アドレスをIPv6の形で表したものサーバーのログ
2001:db8::/32説明用のアドレス範囲教材や資料の例

「::ffff:192.0.2.1」のように、最後の32ビットだけをIPv4の書き方にする形も、RFC 4291で決められた書き方です。ネットワーク部分の長さは、IPv4と同じく「/64」のように後ろに付けて表します。

よくある質問

「::」を2回使ってはいけないのはなぜですか?

それぞれの「::」に何ブロックの0が入っていたのか、決められなくなるためです。たとえば2001::1::1は、2つの「::」の中身が「1と4」「2と3」など何通りにも読めます。RFC 4291でも、使えるのは1つのアドレスで1回だけです。

先頭の0は省かなくても間違いではないですか?

アドレスとしては同じものを指すので、機器は正しく読み取ります。ただRFC 5952の推奨では、先頭の0は省くと決められています。ログの検索や設定の照合で一致させるためにも、省いた形で書くのが無難です。

大文字で書いてもいいですか?

16進数のa〜fは、大文字でも小文字でも同じ値として扱われます。RFC 5952では小文字に揃える推奨になっていて、多くのOSや機器の表示も小文字です。

0が1ブロックだけのとき、「::」にしてもつながりますか?

機器は読み取れるので、通信はできます。RFC 4291の省略ルールでは許される書き方だからです。ただ、RFC 5952の推奨では1ブロックだけの0には「::」を使わず、「0」と書く形に揃えます。

ipconfigに表示されるfe80で始まるアドレスは何ですか?

同じネットワークの中だけで使うリンクローカルアドレスです。IPv6を有効にしたインターフェースには、自動で割り当てられます。後ろの「%」と数字は、どのインターフェースのアドレスかを表す番号です。

まとめ

  • IPv6は16進数4桁×8ブロック。省略ルールは「先頭の0を省く」「0の連続を::に1回だけ」の2つ
  • 省けるのは先頭の0だけ。後ろや途中の0は残す
  • 推奨の形はRFC 5952。小文字、一番長い0の並びを::、同じ長さなら前、1ブロックだけには使わない
  • 元に戻すときは、8から見えているブロック数を引いて::の中身を決める
  • ポート番号と並べるときは[2001:db8::1]:8080のように角かっこで囲む

IPv6の表記に慣れると、ipconfigやルーターの表示、ファイアウォールのルールを読むのがぐっと楽になります。省略形をすぐ8ブロックに戻せるようにしておくと、設定の照合での見落としも減らせるはずです。

IPv4とIPv6のアドレスを読み書きできることは、ネットワークエンジニアを目指すときの土台になります。未経験から内定までの進め方を、CCNAの取得を軸に5つの段階で整理した記事です。

未経験からネットワークエンジニアになる方法を見る


免責事項

※本記事はRFCなどの公開情報をもとに整理したものです。アドレスの表示は、OSや機器のバージョン・環境によって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Tanabeです。新卒でSIerに入り、ネットワークの設計から構築、運用保守、クラウド移行まで10年やってきました。その間に転職を3回、CCNPも取りました。

正直に言うと、資格を取っても年収はすぐには上がりませんでした。1回目の転職は失敗、2回目でようやく150万円上がり、3回目で今の事業会社に落ち着いた。動いてみて分かったのは、資格の有無より「現場で何を任されてきたか」で評価が決まる、ということです。

エージェントの言葉を鵜呑みにして、危うく後悔しかけた経験もあります。だからこそ、自分がやらかした失敗をそのまま書いて、同じ回り道をしなくて済むように残しています。転職を考え始めた人が、条件で損をしないための材料にしてもらえたら嬉しいです。

目次