IPv6アドレス

IPv4アドレスの枯渇問題が騒がれてからだいぶ時間が経つが、
一向にIPv6アドレスへ移行しないなと感じている。
というか、NATなどを駆使してなんとかIPv4で賄えているという印象。

それに伴い業務でもほぼIPv6は使用しないのですっかり忘れてしまった。
IoTなども流行ってきてIPv6の出番も増えてきそうなので、
簡単に基礎だけでもまとめておきたい。


IPv6アドレス概要


IPv6はIPv4アドレスの枯渇問題を受けて開発されている。
IPv4が32ビットなのに対し、IPv6は128ビットである。
アドレスの基本的な構造としては、前半64ビットの「サブネットプレフィックス」と、
後半64ビットの「インターフェースID」の計128ビットで成り立っている。

アドレス数を数字に直すと下記のようになる。

 IPv4: 2^32 = 4,294,967,296
⇒ 約43億

IPv6: 2^128 = 340,282,366,920,938,463,463,374,607,431,768,211,456
⇒ 約340澗(かん): 1澗=1兆×1兆×1兆=10^36


世界人口60億人と考えると、IPv4アドレスが枯渇するというのは分かる気がする。
IPv6アドレスは世界中の人々の持ち物一つ一つにアドレスを振っても
まだ余ると言われている。うーん・・・果てしない。


コンピュータ内部では2^128なので、128ビットの2進数で表される。
IPv4アドレスは8ビットずつ「.(ピリオド)」で区切り、計4つのエリアから成り立つが、
IPv6アドレスは16ビットずつ「:(コロン)」で区切り、計8つのエリアから成り立つことになる。

また、IPv4では2進数を10進数に変換して表記したが、
IPv6では16進数に変換して表記するので、見た目はだいぶ変わってくる。


 IPv4の例: 192.168.1.1/24
IPv6の例: 2001:0123:4567:89ab:0000:0000:0000:0001/64


上記のIPv6の表記は正確なものではない。
IPv6では省略ルールがあるので、それに従って表記する必要がある。
長くなるので、詳細は次の項目で触れる。


IPv6アドレスの省略ルール


IPv6アドレスの表記方法には省略ルールがある。
昔は「見づらいので省略して書いてもいいよー」的なノリだったが、
現在では「省略ルールに則り、記載するのが正」という方向性に変わっている。
なので「省略ルール忘れたからフルで書いちゃえ!」というのは通用しなくなっている。

■各フィールドの先頭の「0」は省略することができる。
 ・先頭の「0」は省略可:01AB ⇒ 1AB
・先頭の「0」が複数あっても省略可:0012 ⇒ 12
・先頭以外の「0」は省略不可:01A0 ⇒ 1A0


■フィールドのビットがすべて「0」の場合は、1つの「0」として表記できる。
 ・例:00000


■「0」のフィールドが連続する場合は「::(2重コロン)」として省略可能。
 ・例:2001:0000:0000:0000:aaaa:bbbb:cccc:1111
  ⇒ 2001::aaaa:bbbb:cccc:1111


■「::」はアドレス内で一度しか使用することができない。
 ・例[]:2001:0000:0000:aaaa:0000:0000:1111
    ⇒ 2001::aaaa::1111
・例[]:2001:0000:0000:aaaa:0000:0000:1111
    ⇒ 2001::aaaa:0:0:1111


上記の[]ように、他のルールと組合せて省略することは可能なので、
上手いこと短くすることが重要になってくる。


IPv6アドレスの種類


IPv6では、下記3種類のアドレスが使用される。

■ユニキャストアドレス
 1対1通信で使用されるアドレス

IPv6のユニキャストアドレスは、更に2種類に分けられる。

□グローバルユニキャストアドレス
 インターネット上で通信可能なアドレスで、IPv4のグローバルアドレスに相当する。

□リンクローカルユニキャストアドレス
 同一セグメント上の機器との通信で使用するアドレスで、
 IPv6で通信を行う機器に必ず1つは設定することになっています。

IPv6では1つのインターフェースに複数のIPアドレスを設定することが可能であり、
一般的にグローバルとリンクローカルのアドレスが割り当てられることが多い。

■マルチキャストアドレス
 特定のグループ宛の通信で使用されるアドレス
 IPv6ではブロードキャストアドレスは存在しない為、
 マルチキャストアドレスにて同様の役割を果たしている。

■エニーキャストアドレス
 特定のグループ宛の通信で使用されるアドレスだが、
 最も近い機器のインターフェースに転送される。
 IPv4には無い概念であり、複数機器のインターフェースに
 同一のアドレスを割り当てることが出来る。


下記は良く目にするアドレスの表記である。
なんとなく覚えておくと役に立ちそう。

種類IPv6表記
デフォルトルート::/0
未指定アドレス::/128
ループバックアドレス::1/128
集約可能グローバルユニキャストアドレス2000::/3
ユニークローカルユニキャストアドレスfc00::/7
リンクローカルユニキャストアドレスfe80::/10
マルチキャストアドレスff00::/8



後日ネットワーク機器を使用して簡単な設定でもしてみるかな。
とりあえず今回はこんなところで。

以上。



マスタリングTCP/IP IPv6編 第2版


この記事へのコメント