「あまりに長くなり過ぎた…」を解決したい!IPv6のアドレス記法
「長すぎるのは、会議も、ネットワークアドレスも嫌ですね。」
はい、こんにちは!松井真也です。シリーズ「着実に普及していくIPアドレスの進化版:IPv6」の第2回でございます。
前回は、IPv4のIPアドレスが枯渇している問題についてご紹介しましたね。1980年代にIPv4が設計されたときは十分と思われていたアドレス空間が、実は小さすぎたということでしたね。一方、IPv6は「地球上のすべての砂粒にアドレスを割り当てられる」ほど、膨大なアドレス空間でした。ただ、IPv6への完全移行は、まだ時間を要するようです。
さて、今回は、IPv6のアドレス表記方法についてお話します。IPv4のIPアドレスは、全長4バイトで、10進数で1バイトずつピリオドで区切りるのでした。これは、Dot-Decimal Notation(ドット付き10進記法)と呼ばれます。例えば、「192.168.0.1」などです。おなじみですね。
IPv6も似たような表記法…と言いたいですが、全然違うんです。果たしてどのように違うのでしょうか?
早速見てみましょう!
異様に長いIPv6アドレス
IPv6の構成についてお話しする前に、まずIPv6アドレスの長さに着目してみましょう!
IPv6アドレスは、従来のIPv4(32ビット)よりも、はるかに長い128ビットで構成されています。この長さのおかげで、インターネットに接続可能なデバイスの数が飛躍的に増加します。
しかし、このはるかに長くなった128ビットは、コンピュータにとって識別するのは難しくないのでしょうが、人間が識別し扱いやすく表記するには工夫が必要そうです。さもないと、アドレスを書くだけで横にダラダラと続くことになってしまいますよね…。
そんなことを踏まえつつ、IPv6の構成や記法を見ていきましょう!
IPv6アドレスの構成要素
IPv6アドレスは、大きく分けて2つの部分から成り立っています。
前半のプレフィックスは、ネットワークを識別するための部分です。これは、インターネットサービスプロバイダー(ISP)などによって割り当てられることが多いです。
後半のインターフェイスIDは、ネットワーク内の個々のデバイスを識別します。通常、この部分はデバイスのMACアドレスから自動的に生成されることが多いですが、プライバシーを保護するためにランダムに生成されることもあります。
ネットワーク部とホスト部を区別する考え方は、IPv4と同じですね。
IPv6アドレスの表記法
IPv6アドレスは、その長さを効率的に表現するために特定の表記法を使用します。アドレスは、16ビットごとにコロン(:)で区切られ、16進数で表記されます。
たとえば、IPv6の一例は
`2001:0db8:85a3:0000:0000:8a2e:0370:7334`
のような感じです。長いな~。10進数で表記しようとしたらさらに長くなりますが、16進数にしてもまだ長い。このままではまだ冗長感がありますね。
圧縮表記のルール
ということで、IPv6アドレスには圧縮表記が可能となっています。
具体的には、連続するゼロを省略することができます。例えば、`2001:0db8:0000:0000:0000:8a2e:0370:7334`
は、
`2001:0db8::8a2e:370:7334`
と短縮できます。
ここで重要なのは、「::」を使って連続するゼロを省略できるのは一度だけというルールです。2回以上使うと、どの「::」でいくつのゼロが省略されたか一意に区別できなくなります。
特殊なIPv6アドレス表記
IPv6には、特殊な状況に対応するための表記法もあります。たとえば、IPv4との互換性を保つために、IPv4のアドレスを含むIPv6アドレスが存在します。これは、`::ffff:192.0.2.1`のように表記されます。
このほかにも、特殊な表記法があるのですが、私にはちょっと理解が追い付かないので省略します。有り余るアドレス空間を活用した表記方法があるようです。
はい、本日はここまで!今回は、IPv6のアドレス表記法についてご紹介しました。
次回は、IPv6のヘッダ構成に話を移しましょう。
では!