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 |
|---|---|---|
| 長さ | 32ビット | 128ビット |
| 区切り | 「.」で4つ | 「:」で8つ |
| 1区切りの書き方 | 10進数(0〜255) | 16進数4桁(0000〜ffff) |
| 省略 | できない | 先頭の0と、0の連続を省ける |
省略ルール1|各ブロックの先頭の0を省く
1つ目のルールでは、ブロックごとに先頭に並ぶ0を省けます。0だけのブロックは「0」1文字になります。
| 元のブロック | 省略した形 | 理由 |
|---|---|---|
| 0db8 | db8 | 先頭の0を1つ省く |
| 0001 | 1 | 先頭の0を3つ省く |
| 0000 | 0 | 全部0なら1文字残す |
| 00a0 | a0 | 先頭の0だけ省く |
| a000 | a000(変わらない) | 後ろの0は省けない |
| 1020 | 1020(変わらない) | 途中の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つに揃える推奨を決めました。
| ルール | 正しい例 | 推奨に合わない例 |
|---|---|---|
| 先頭の0は省く | 2001:db8::1 | 2001:0db8::0001 |
| 「::」はできるだけ長く使う | 2001:db8::1 | 2001:db8:0:0::1 |
| 0が1ブロックだけなら「::」にしない | 2001:db8:0:1:1:1:1:1 | 2001:db8::1:1:1:1:1 |
| 0の並びが複数あれば一番長い所を「::」に | 2001:0:0:1::1 | 2001::1:0:0:0:1 |
| 同じ長さなら前の所を「::」に | 2001:db8::1:0:0:1 | 2001:db8:0:0:1::1 |
| 英字は小文字で書く | 2001:db8::abcd | 2001:DB8::ABCD |
右の列の書き方も、アドレスとしては同じものを指しています。ただ、表記がばらばらだとログの検索や設定の照合で一致しません。自分で書くときは、左の推奨形に揃えるのが安全です。
省略したアドレスを元に戻す手順
省略形を元に戻すには、まず「::」の中に何ブロックの0が入っていたかを数えます。全体はいつも8ブロックなので、見えているブロックの数を8から引けば分かります。
- 「::」の前と後ろにあるブロックの数を数える
- 8から引いた数だけ、「::」の場所に0000のブロックを入れる
- 各ブロックの先頭に0を足して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の推奨の形にしてみてください。右が答えです。
| 元のアドレス | 推奨の省略形 |
|---|---|
| 2001:0db8:0000:0001:0000:0000:0000:0001 | 2001:db8:0:1::1 |
| 2001:0db8:0000:0000:0001:0000:0000:0001 | 2001:db8::1:0:0:1 |
| fe80:0000:0000:0000:0a1b:00ff:fe00:0001 | fe80::a1b:ff:fe00:1 |
| 2001:0db8:00a0:0000:0000:0000:0000:0000 | 2001:db8:a0:: |
| 2001:0db8:0001:0001:0001:0001:0000:0001 | 2001:db8:1:1:1:1:0:1 |
2問目は、0が2ブロック続く所が2か所あり、同じ長さなので前のほうを「::」にします。5問目は0が1ブロックだけなので、「::」は使いません。
よくある間違い
省略で間違えやすいのは、ほぼ次のパターンに集まっています。設定ファイルやファイアウォールのルールに書く前に、一度照らし合わせておくと安心です。
| 間違った書き方 | どこが誤りか | 正しい書き方の例 |
|---|---|---|
| 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:1 | 0の連続をまとめていない | 2001:db8:1::1 |
| 2001:db8::1:1:1:1:1 | 0が1ブロックだけなのに「::」(推奨に合わない) | 2001:db8:0:1:1:1:1:1 |
| 2001:db8::1:8080 | ポート番号と区別できない | [2001:db8::1]:8080 |
最後の行は、URLやログでポート番号と並べるときの書き方です。RFC 5952は、アドレスを「[ ]」で囲んでからポート番号を続ける形を勧めています。
実務でよく見る省略表記
コマンドの表示や設定では、省略された形のアドレスがそのまま出てきます。よく見るものは、形で覚えておくと読み取りが速くなるでしょう。
| 表記 | 意味 | 見かける場面 |
|---|---|---|
| ::1 | 自分自身(ループバック) | IPv4の127.0.0.1にあたる |
| :: | アドレス未設定 | 待ち受けの「全部のアドレス」の表示 |
| fe80::〜 | リンクローカルアドレス | IPv6を有効にしたインターフェースのipconfigやip addr |
| fe80::1%12 | 「%」の後ろは使うインターフェースの番号 | Windowsでpingするとき |
| ::ffff:192.0.2.1 | IPv4アドレスを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や機器のバージョン・環境によって変わる場合があります。業務で使う機器では、所属先の手順と各製品の最新資料をあわせてご確認ください。

