IPv4とIPv6の違いについて
こんにちは。技術部のmmuです。
今日は私の備忘録も兼ねて、IPv4とIPv6の違いを以下に記載していきます。
少しでも皆様のお役に立てて頂ければ幸いです。
■個数について
IPv4アドレスは『32bit』で構成されます。すなわち、2^32通りのアドレス数を保有することになります。
実際の数値に置き換えると、『4,294,967,296』、約43億個となり、非常に大きな数のように思えます。
が、全世界で43億個と考えれば世界人口が70億人を突破しているこの状況下では、単純に計算して1人に1個も割り当てられないことになります。
一方、IPv6アドレスは『128bit』で構成されます。これは2^128通りのアドレス数を保有することになります。
こちらを実際の数値に置き換えると、『340,282,366,920,938,463,463,374,607,431,768,211,456』、約340澗(かん)個という、
まさに桁外れと呼ぶにふさわしい内容です。先ほど『IPv4アドレスは世界人口1人に1個も割り当てられない』と記載しましたが、
こちらのIPv6アドレスですと、70億人に1兆個ずつ割り当てても、まだ使用率は0.00000001%にも満たないというのが驚きです。
■表記について
IPv4にしろ、IPv6にしろ、アドレスの実体としては32桁(あるいは128桁)の2進数となります。
IPv4アドレスを実際に記載してみると以下の通りです。
11000000101010000000000001100100
IPv6アドレスに至っては下記になります。
11111101000000000000000000010010000100011010111100000000000000010000001000011011100010111111111111111110100110111011001111001000
ご覧の通り、この表現は人間にとっては非常に易しくなく、他人に伝えるのも伝えられた内容を確認するのも一苦労です。
そのため、IPv4アドレスにおいては、32bitを8bitずつ『.』で4分割し、分割した数値を10進数で表記しています。
192.168.0.100
『11000000101010000000000001100100』を8bitずつに分解すると、『11000000 101010000 0000000 01100100』になり、
この4ブロックをそれぞれ10進数に置き換えると上記のアドレスになるというわけです。
一方、IPv6アドレスは、128bitを16bitずつ『:』で8分割し、分割した数値を『16進数』で表記しています。
fd00:12:11af:1:21b:8bff:fe9b:b3c8
『1111101000000000000000000010010000100011010111100000000000000010000001000011011100010111111111111111110100110111011001111001000』を16bitずつに分解すると、『1111110100000000 0000000000010010 0001000110101111 0000000000000001 0000001000011011 1000101111111111 1111111010011011 1011001111001000』になり、この8ブロックをそれぞれ16進数に置き換えると、上記のアドレスになるというわけです。
…これでもIPv6アドレスに関しては伝えるのが大変な感じもします。
ちなみに、IPv6アドレスにおいては、ブロック先頭の『0』は省略することができます。そのため、下記2つのアドレスは同一の内容を指すものとなります。
fd00:0012:11af:0001:021b:8bff:fe9b:b3c8
fd00:12:11af:1:21b:8bff:fe9b:b3c8
更に言えば、全体が『0』で構成されたブロックが2つ以上続く場合は、『::』で省略することができます。※1
よって、下記2つのアドレスも同一の内容となります。
fd00:12:0000:0000:0000:8bff:fe9b:b3c8
fd00:12::8bff:fe9b:b3c8
※1 該当する範囲が2箇所以上ある場合は、最初の1箇所のみ『::』で省略可能になります。
■IPアドレスの管理及び割り当て
IPv4もIPv6も「ICANN」と呼ばれる組織がIPアドレスの管理と割り当てを行っています。といっても、私たち実際の利用者が「ICANN」から直接IPアドレスを割り当てられることはまずなく、
- 「ICANN」は「地域インターネットレジストリ(RIR)」と呼ばれる組織に対して、分割されたネットワーク範囲、例えば「150.0.0.0 ~ 150.0.255.255」を割り当てる
- その後、「RIR」は「国別インターネットレジストリ(NIR)」と呼ばれる組織に対して、更に分割されたネットワーク範囲、例えば「150.0.0.0 ~ 150.0.127.255」を割り当てる
- その後、「NIR」から「ローカルインターネットレジストリ(LIR)」と呼ばれる組織に、更に分割されたネットワーク範囲、例えば「150.0.0.0 ~ 150.0.0.255」を割り当てる
・・・と、分割されながら割り当てが行われていき、
- 最後に「NIR」(大半はISP)からようやく私たちの下に、更に分割されたネットワーク範囲、あるいは単一のIPアドレス、例えば「150.0.0.100」が割り当てられる
という形となります。
ちなみに、IPv4の場合は、実際の利用者に割り当てられる個数は、個人であれば1~4個程度、法人であっても8~32個程度であるケースが大半なのですが、
IPv6の場合は、64bit分の個数(約1844京個!)も割り当てられたりします。・・・そう、IPv4アドレスの総量を上回る個数が割り当てられるのです・・・。
■設備について
LANケーブルやスイッチングHUBなどに関しては、IPv4環境で利用できるものは基本的にIPv6環境にも対応しています。
そのため、これらの機器・設備を入れ替えることは不要となるはずです。 ※2
一方、ルータ機器に関してはIPv6に対応しているもの、していないものがあります。
対応していたとしても、基本設定で『IPv6を使用しない』などになっているケースもありますので、IPv6環境を構築する際には、既存機器(あるいは新規購入機器)のメーカーサイトなどで対応しているかどうかと、対応方法を事前に確認しておくことが望ましいです。
参考情報)
国内ルーターにおけるIPv6対応(一般社団法人情報通信ネットワーク産業協会)
http://www.soumu.go.jp/main_content/000380865.pdf
そして何より、利用しているインターネット回線及びプロバイダがIPv6に対応している必要があります。
※2 一部のスイッチングHUBにおいては、機能的にIPv6パケットを破棄してしまい、IPv6通信が阻害されるケースが発生するそうです。
いかがでしたでしょうか。上記で記載した内容はあくまで一部であり、まだまだ違いはあるのですが、
本日はここまでにしたいと思います。それではまた。