クイックダウンロード:
IPv6アドレスは128ビットで非常に長いことで知られていますが、3つの簡単な圧縮ルールを適用することで、一目で解析できる形式に変換できます。
-
ルール1:各16ビットワードの先頭のゼロをすべて削除します。「0978」を「978」にすることで、視覚的な煩雑さをすぐに軽減できます。
-
ルール 2: 連続するすべてのゼロの単語のシーケンスを「::」に置き換えて、FE80:0:0:0:74C8:CB1:8ED5:2C を FE80::74C8:CB1:8ED5:2C に変換します。
-
ルール3:アドレスごとに「::」は一度だけ使用してください。二度使用すると、各二重コロンがいくつのゼロを表しているかが曖昧になります。
-
ループバックアドレス(::1)やマルチキャストアドレス(FF02::1)といった特殊なアドレスは、圧縮のために存在します。ルールを理解すれば、一見難解に見えるこれらのアドレスの意味がすぐにわかるでしょう。
IPv6圧縮ルールに関する無料ガイド
インターネットの世界が IPv4 から IPv6 に移行した主な理由は、比較的狭い 32 ビットの IPv4 アドレス空間の枯渇が差し迫っていたためでした。IP アドレスを 32 ビットから 128 ビットに増やすことで、IP アドレスが再び枯渇することはないと確信しました。これらのより大きなアドレスは、次のような他の重要な機能を可能にする柔軟性ももたらしました。 デバイスの自動構成.
とはいえ、IPアドレスのサイズを4倍にすることにはいくつかの欠点もある。その一つは、コンピュータは128ビットの数値を処理するのに何の問題もないが、人間にとっては読みにくく、扱いづらいと感じられる傾向があることだ。
幸いなことに、IPv6を最初に定義した科学者たちは、これらの大きなアドレスを扱いやすくするための表記法をいくつか考案していた。 IPv6圧縮ルール 一般的なIPv6アドレスをより分かりやすくするために使用できる、いくつかの略記法について説明します。この記事では、これらのルールを詳しく見ていき、その仕組みと活用方法を解説します。
エグゼクティブサマリー
本稿では、以下の概念と手法について解説する。
| 概念 | 詳細説明 |
|---|---|
| 大きいほど良いとは限りません | IPv6アドレスには多くの利点がありますが、そのサイズの大きさから、デフォルト設定のままでは扱いが難しいという問題があります。IPv4アドレスを人間にとって理解しやすくしていたドット区切りの10進表記は、アドレスサイズが大きくなったIPv6ではもはや適していません。 |
| ヘックスに行く | IPv6アドレスは、16ビットの8つのワードを16進数で表したもので、各ワードはコロンで区切られます。 |
| IPv6圧縮ルールその1:先頭のゼロを削除する | IPv6アドレスの各16ビットワードから先頭のゼロを削除することでアドレスを短縮できます(ただし、末尾のゼロは削除できません)。 |
| IPv6圧縮ルールその2:1つの連続するゼロを二重コロンに置き換える | 各IPv6アドレスにおいて、長いゼロの文字列を「::」に置き換えることで、削除されたゼロを表すことができます。 |
| IPv6圧縮ルールその3:ルールその2を過剰に使用しないこと | IPv6圧縮ルール#2は、1つのアドレス内で複数回使用することはできません。複数回使用すると、圧縮されたバージョンが表す完全なアドレスについて曖昧さが生じます。 |
| IPv6の圧縮ルールは、特殊なアドレスに対してさらに優れています。 | マルチキャストアドレスやループバックアドレスなど、ほとんどの特殊アドレスは非常に長いゼロの文字列で構成されているため、圧縮するとはるかに見やすくなる。 |
| IPv6圧縮計算ツール | IPv6アドレスを長い形式から圧縮形式に変換したり、またその逆に戻したりするオンラインツールはありますが、おそらくそれらを使う必要はないでしょう。 |
大きいほど良いとは限りません
この記事を読んでいるということは、IPv4アドレスについては既にご存知でしょう。IPv4アドレスは通常、 ドット付き小数表記:4バイトで構成され、それぞれが10進数(基数10)で表され、ピリオドで区切られています。以下に示すように。

32ビットIPv4アドレスをドット付き10進表記にマッピングする
これはシンプルで理解しやすいですが、それは32ビットしか扱っていないからです。これを128ビットに増やすと、次のような(架空の)IPv6アドレスになります。
かなり面倒ですよね?人間が扱うには決して楽しい数字ではありません。覚えるのはほぼ不可能ですし、転記や作業の際に間違いが生じる可能性も高いでしょう。
ヘックスに行く
IPv6アドレスの問題を解決するための最初のステップは、10進数から16進数表記に移行することでした。16進数では、0から15までの値を持つ4ビットの各セットが16進数の1桁に置き換えられ、10から15は「A」から「F」までの文字で表されます。(文字は大文字でも小文字でも構いません。これは単なる表記上の問題です。)
16進数は「一般の人」には理解しにくいかもしれませんが、技術者にとっては扱いやすいものです。また、16進数には、各桁が正確に4ビットに相当するという利点があり、8ビットの各バイトは常に2桁の16進数になります。
MACアドレス(ネットワーク機器に割り当てられるハードウェアアドレス)を扱う際には、16進数表記がよく用いられます。これらのアドレスは48ビット長で、通常はハイフンで区切られた6つの2桁の16進数グループとして表されます。
この同じ方法がIPv6アドレスにも適用され、より統一性が図られました。IPv6アドレスはMACアドレスよりもはるかに長いため、区切り文字付きの8ビットバイトではなく、16ビットのグループにまとめられます。 言葉これらはコロンで区切られており、コロンはハイフンよりもスペースをあまり取らないという利点があります(少なくともプロポーショナルフォントでは)。これは時々、 コロン 16進数 (または コロン 16進数) 表記。
この方法を用いると、上記の架空のIPv6アドレスの例は次のように表されます。


(架空の)128ビットIPv6アドレスをコロン付き16進数表記にマッピングする
実際には、元のファイルと比べてそれほど短くは見えませんよね?確かにそうかもしれませんが、これは後述する圧縮ルールの導入となるものです。
IPv6圧縮ルールその1:先頭のゼロを削除する
コンピュータはあらゆる数字のすべての桁を処理する必要がありますが、人間はそうする必要はありません。特に、私たちは先頭のゼロを省略することに慣れています。例えば、ジェーンがリンゴを20個持っていて、ジムに12個あげた場合、ジェーンのリンゴが「08」個残っているとは言わず、単に8個と言います。同様に、IPv6アドレスの数値にも、先頭のゼロを大量に保持する必要はありません。
先頭のゼロを削除することで、上記の例(偽の)IPアドレスを次のようにすぐに短縮できます。
今、私たちはどこかに到達しつつあります。
削除できるのは 主要な ゼロではなく 引きずります ゼロを使用するのは、後者の方法では実際に数値自体が変わってしまうからです。たとえば、ここで最後の単語を「F400」から「F4」に変更すると、実際には「F400」から「00F4」に変更することになり、基となるIPv6アドレスが変更されてしまいます。これは望ましくありません。
IPv6圧縮ルールその2:1つの連続するゼロを二重コロンに置き換える
先に述べたように、IPv6アドレス空間は非常に広く、アドレス割り当て方法に大きな柔軟性をもたらします。実際、アドレス空間は非常に大きいため、その多くは現状では必要とされておらず、未使用のままです。そのため、多くのIPv6アドレスには長いゼロの列が含まれています(これは特に「特殊」アドレスに顕著であり、後ほど詳しく説明します)。
したがって、例の IPv6 アドレスの中央に 16 ビット連続のゼロがあるように「意図的に」作成したように見えるかもしれませんが、実際には、さらに長いゼロのシーケンスは実際の IPv6 アドレスではごく一般的です。その良い例は次のとおりです。 リンクローカルIPv6アドレス プロトコルで広く使用されています。先頭のゼロを削除していない実際の例を以下に示します。
アドレスの前半部分は、通常ここに表示されているように、ゼロがたくさん並んでいます。ルール1を使って圧縮すると、次のようになります。
これも良いのですが、あまり意味のない「0:0:0」をどこにでも持ち歩く必要があるでしょうか?必要ありません! IPv6 圧縮ルール #2 では、単一のゼロのシーケンスを次のように特別な表記「::」に置き換えることができると規定されています。
これによりアドレスが短縮されるだけでなく、より分かりやすくなります。アドレスの先頭に「FE80::」が表示されていれば、それがリンクローカルアドレスであることがすぐに分かるため、設定やトラブルシューティングを行う管理者は、アドレス後半の重要な数字(デバイス固有の数字)だけに注目することができます。
元の架空のIPv6アドレスの例に戻ると、次のようになります。
IPv6圧縮ルールその3:ルールその2を過剰に使用しないこと
上記で説明したルール2は、IPv6アドレスごとに1回しか使用できないことを覚えておくことが重要です。この制限が必要な理由は、「::」が任意の数のゼロワードを置き換えることができ、その数を指定しないためです。これを2回行うと、複数の完全なアドレスを指す可能性のある曖昧な表記が作成されてしまいます。
この現象がどのように起こり得るかを示すために、例を挙げてみましょう。例えば、次のような住所を与えられたとします。
確かにコンパクトで良いですね!問題は、4つのゼロワードを削除したため、アドレス内の各「::」にいくつのゼロワードが対応しているかが不明なことです。以下はすべて、上記の圧縮版を作成する可能性のある元のアドレスです(分かりやすくするために、ここでは各ワードの先頭のゼロは削除していません)。
曖昧さは明瞭さの敵です。したがって、IPv6アドレスごとに「::」は一度だけ使用するようにしてください。
実際には、実際のIPv6アドレスで複数のゼロワードが連続する文字列はまれです。そのような文字列が発生した場合は、必要に応じてどちらかの文字列を「::」に置き換えることができますが、通常は最初の文字列に対して置き換えるのが最も適切です。
IPv6の圧縮ルールは、特殊なアドレスに対してさらに優れています。
これまで見てきたように、「通常の」(特殊でない)IPv6アドレスには長いゼロ列が含まれることがあり、IPv6アドレス圧縮に適しています。特殊アドレスは、意図的にシンプルで覚えやすいように設計されているため、さらに多くのゼロが含まれています。
マルチキャストアドレス
一例として、 特別なマルチキャストアドレス インターネット割り当てによって維持されています 国際ネットワークアドレス管理局(IANA)。特に一般的なものとして、ローカルネットワーク上のすべてのデバイスにマルチキャストメッセージを送信するために使用されるリンクローカル「全ノード」アドレスがあります。
ここでの圧縮の可能性は非常に分かりやすい。先頭のゼロを削除すればよい。
中央にある大量のゼロも削除できます。
シンプルで良いですね。
ループバックアドレス
IPv4アドレス127.0.0.1はご存知かもしれません。これはIPv4と呼ばれています。 ループバックアドレス これは常に、それが使用されているデバイス自体を参照するためです。このアドレスは、テストやトラブルシューティングによく使用されます。
IPv6における同等のアドレスは次のとおりです。
もうお分かりでしょうが、これは簡単に言うと次のようになります。
「すべてゼロ」のアドレス
最後に、面白い例として、ホストが設定を行う前やその他の特別な目的(ルーティングプロトコルにおけるデフォルトルートの識別など)で使用される、特殊な「すべてゼロ」のIPv6アドレスを考えてみましょう。名前が示すように、このアドレスは単にゼロの羅列です。
すべてゼロなので、二重コロンで完全に置き換えることができます。
数字は一切なし!不思議なことに、「::」は実際には有効な IPv6 アドレスです。
IPv6圧縮計算ツール
IPv6 アドレスをある程度扱う作業を行うと、上記のルールを使って IPv6 アドレスを短縮し、必要に応じてその逆のプロセスを頭の中で行うことに慣れてきます。ただし、自動化されたヘルプが必要な場合は、完全なアドレスを入力して圧縮バージョンを取得したり、その逆を行ったりできる Web サイトが多数あります。 アドレス圧縮計算機の例 (NAIST) と 住所を展開するためのマッチング計算機.
主要概念の要約
IPv6アドレスの128ビットというゆったりとしたサイズは、IPv4におけるアドレス空間の制限という問題を解決し、アドレス割り当ての柔軟性を提供するが、アドレス自体は長く、扱いにくい。
幸いなことに、IPv6アドレスには多くのゼロが含まれており、先頭のゼロを削除したり、ゼロの文字列を「::」に置き換えたりするなど、IPv6の圧縮ルールを用いることで、これらのアドレスを読みやすく、扱いやすくすることができます。これは、ネットワーク管理者が広く使用する特殊なアドレスにおいて特に有効です。これらの簡単なルールを習得することで、IPv6アドレスの扱いがはるかに簡単で快適になります。
判読不能なIPv6データを実用的な洞察に変換する
LogicMonitorを使えば、ルーターが認識するのと同じように、またチームが必要とする形でIPv6を正確に把握できます。圧縮アドレスの正規化、デバイスのマッピング、そしてユーザーが影響を感じる前に誤ったルーティングをトラブルシューティングすることが可能です。
よくあるご質問
IPv6の圧縮ルールとは何ですか?
IPv6の圧縮ルールは、128ビットのIPv6アドレスを短く読みやすくするための表記上のショートカットです。主なルールは2つあります。1つ目は、アドレス内の任意の16ビットワードの先頭のゼロを削除できること(例:「0978」は「978」になります)。2つ目は、連続するゼロのワードを「::」に置き換えることができること(例:「0:0:0」は「::」になります)。これらのルールを組み合わせることで、実際のIPv6アドレスを大幅に短縮できます。
IPv6アドレスで「::」という圧縮表記を複数回使用することはできますか?
いいえ。「::」表記は、IPv6アドレスごとに1回しか使用できません。複数回使用すると、「::」は連続する任意の数のゼロワードを表すことができるため、曖昧さが生じます。同じアドレスに2回出現した場合、それぞれがいくつのゼロを表しているかを判断することは不可能になり、アドレス全体を復元できなくなります。常に、最も長い(または同じ長さの場合は最初の)ゼロの文字列のみを置き換えてください。
IPv6ループバックアドレス「::1」は、完全な形ではどのように表示されますか?
IPv6 ループバック アドレスの完全な形式は 0000:0000:0000:0000:0000:0000:0000:0001 です。ルール 1 (先頭のゼロを削除) を適用すると、0:0:0:0:0:0:0:1 になります。ルール 2 (ゼロの文字列を「::」に置き換える) を適用すると、おなじみの圧縮形式 ::1 になります。これは、IPv4 ループバック アドレス 127.0.0.1 に相当する IPv6 です。
IPv6アドレスにはなぜゼロがこんなに多いのですか?
IPv6アドレス空間は意図的に広大に設計されており、128ビットで約340ウンデシリオン個の固有アドレスがサポートされます。そのため、アドレス空間の大部分は現在未割り当てで、設計上、大きなゼロのブロックが使用されています。さらに、マルチキャストアドレス、ループバックアドレス、リンクローカルアドレスなどの特殊用途アドレスは、シンプルで覚えやすいように意図的に構造化されており、ほとんどがゼロで構成され、有効数字はわずか数桁です。このため、これらの一般的なアドレスには圧縮ルールが特に効果的です。




