ネットワークって。。。#13(IPプロトコル)
今回は、IPアドレスのもうひとつのバージョンであるIPv6と、前回のネットワークって。。。#12でも、ちらっと紹介した、アドレス変換を行うNATとNAPTの話。。。
IPv6
前回も書きましたが、IPアドレスには、バージョンが2つあって、ひとつは現在も主流のIPv4(前回のネットワークって。。。#12を参照して下さい)で、もうひとつは、今回お話しするIPv6です。
そもそも、なんで2つのバージョンがあるんでしょ???
IPv6誕生の背景
インターネットの普及とともに、利用者も凄まじい勢いで増えてきました。
で、もともとのIPv4(4バイト = 32ビット)では、IPアドレスが足りなくなってきました。
大まかには、IPv4の32ビットアドレスに与えれるのは、、、
2の32乗 = 約43億のIPアドレス
となります。
ちなみに、世界人口(2019年集計)は、約77億人。。。
赤ちゃんとかは利用しないにしても、一方で、スマホやパソコン、タブレット等の複数端末を1人で利用している人もいれば、最近では、家電もインターネットにつながる時代なので、IPアドレスの不足は目に見えてる感じですよね。。。
これを、IPv4の枯渇問題っていいます。
で、このIPv4の枯渇問題を解決する為に登場したのが、IPv6になります。
IPv4が、4バイト(32ビット)なのに対し、IPv6は、16バイト(128ビット)で構成されます。
先ほどの計算でいくと、IPv6は128ビットなので、、、
2の128乗 = 約340澗のIPアドレス
???
澗 = かん
って読むみたいです。
そのまま、数字にすると、
340,000,000,000,000,000,000,000,000,000,000,000,000
多分、世界人口よりも多いですね。。。笑
IPv6の表記方法
IPv6の表記方法ですが、IPv4の「192.168.100.1」のように普通に10進数で表すと、数字が16個並んで、見にくいということから、16進数で、16ビットごとにコロン(:)で区切って表します。
ちなみに、どちらが見やすいかは個人差があると思いますが。。。
16進数って???
またなんで???
って思う方もおられると思うので。。。
コンピュータの処理単位であるビット(2進数)で考えると、、、
4ビット分が、ちょうど16進数で表す単位になり、実は16進数って、コンピュータの世界とは相性がいいんです。
10進数 → 2進数 → 16進数
0 → 0000 → 0
1 → 0001 → 1
2 → 0010 → 2
3 → 0011 → 3
4 → 0100 → 4
5 → 0101 → 5
6 → 0110 → 6
7 → 0111 → 7
8 → 1000 → 8
9 → 1001 → 9
10 → 1010 → A
11 → 1011 → B
12 → 1100 → C
13 → 1101 → D
14 → 1110 → E
15 → 1111 → F
全部書いちゃいましたが、こんな感じです。。。
で、IPv6の表記は、例えば、
FEDC:BA98:7654:3210:00DC:BA98:7654:3210
みたいな感じになります。
また、コロンで区切られたそれぞれの4桁の先頭の連続した0は省略可能、更に0000が続く場合は、「::」に省略もできます。
FEDC:0000:0000:0000:00DC:BA98:7654:3210
↓
FEDC::DC:BA98:7654:3210
ただし、0000が続くのが、2箇所以上ある場合は、省略できるのは1箇所のみです。
FEDC:0000:0000:0000:00DC:BA98:0000:0000
↓
FEDC::DC:BA98:0000:0000 ○
FEDC:0000:0000:0000:DC:BA98:: ○
FEDC::DC:BA98:: ×
というのは、0000 がいくつ続いても、「::」(コロンは2つ)なので、複数省略すると、それぞれの箇所の0000がいくつ続くのか、わからなくなるからだそうです。
ちなみに、以下は、ネットワーク設定画面のイメージです。。。
あ〜、なんかややこしい。。。笑
IPv6の種類
IPv6の種類としては、大きく以下の3種類となります。
グローバルユニキャストアドレス
IPv4でいうところのグローバルアドレスにあたります。インターネット上で利用できるアドレスで、もっとも一般的に使われています。
リンクローカルユニキャストアドレス
先頭の10ビットが 1111 1110 10 で始まるアドレス。
同一ネットワーク内でのみ使用。つまりは、ルータを超えた通信はできません。
通常は、OSが自動付与し、後ろの64ビットにMACアドレスが設定されます。
あっ、MACアドレスについては、ネットワークって。。。#6のブリッジのところで書いたので、良ければそちらも見て下さい。
ユニークローカルユニキャストアドレス
先頭の7ビットが 1111 110 で始まるアドレス。
IPv4でいうところのプライベートアドレスにあたります。
その他、特殊な意味を持つアドレスもあり、
- 先頭の8ビットが 1111 1111 で始まるマルチキャストアドレス
- 最後の1ビットのみが1でそれ以外は0(::0001)のループバックアドレス
- 全てのビットが0(::)の未定義アドレス
等がありますが、詳細は割愛します。
NAT(Network Address Translation)
ナットって読みます。。。
いやいや、絶対違うでしょ。。。笑
でも、これ、むちゃ美味しいんですよね。。。笑笑
さて、前回ちらっと述べましたが、NATは、(プライベート)アドレスを(グローバル)別アドレスに変換する技術で、一般的にはルータとかFireWall※で設定します。。
なぜ、ここで、(プライベート)と(グローバル)を括弧で括ってるかというと、技術的には、別にプライベート同士でも、グローバル同士でも変換できるからです。
※FireWallについては、次回以降で解説します。
で、
NATが必要になる理由としては、ひとつはセキュリティ強化です。
例えば、自宅のパソコンにグローバルアドレスを設定して、ルータやFireWallを経由しないで、そのまま、インターネットに接続したとしたら。。。
自宅のパソコンで、ファイルを共有してたり、クレジットカード情報や個人情報とかを格納してたら、それらが丸裸で公開されてしまう事になります。
これって、素っ裸で外出しているようなもんですよね。
オフィシャルな場に出る時には、ちゃんと誰に見られてもいいように、正装しないと。。。笑
NATが必要になるもうひとつの理由。。。
前述のIPv4の枯渇問題が理由なんですが、
これは、次のNAPTとセットになるのでそこで書きます。
NAPT(Network Address and Port Translation)
ナプトって読みます。。。
。。。
あかん、何も思い浮かばない。。。笑笑
先程、お話ししたNATは、1台のパソコン等、1つのプライベートアドレスを1つのグローバルアドレスに変換する機能で、あくまで、1対1の変換が前提になっています。
という事で、NATだけでは、IPv4の枯渇問題は解消できません。
そこで登場した技術が、NAPTという技術です。
NAPTは、1つのグローバルアドレスを複数のローカルアドレスを持つ機器で共有できる技術で、IPマスカレードとも呼ばれています。
どういう事かというと、、、
例えば、
会社のオフィス
複数のパソコンがあって、今やほとんどのパソコンでインターネット接続するのが普通になっていますよね。
自宅
家族それぞれが、パソコンやスマホを持っていて、Wi-Fiを通して、プロバイダを経由してインターネット接続していますよね。
これらの機器の全てに、グローバルアドレスが付与されているわけではありません。
大抵の場合、NAPTを使って、複数のプライベートアドレスをひとつのグローバルアドレスに変換して、インターネットに接続しています。
ここで、
ネットワークって。。。#11で、ネットワーク通信はリクエスト(問合せ)〜レスポンス(回答)で成立すると述べました。また、ネットワーク通信は双方向で向き合っていないと成立しないとも述べました。
手紙と一緒で、通信データには、宛先(宛先IPアドレス)と差出元(送信元IPアドレス)が書いてあって、リクエストを受けた機器は、差出元を宛先として返信します。
例えば、会社に、NAPTを使ってインターネット接続しているパソコンが10台あって、そのうちの1台のパソコンからインターネット接続して、リクエストを投げたとします。
リクエストを受けた側は、差出元(NAPTで変換されたひとつのグローバルアドレス)を宛先として返信しようとします。
???
でも、ここで、差出元(NAPTで変換されたひとつのグローバルアドレス)の裏には、10台のパソコンがいます。。。
どうやって、ちゃんとリクエストを投げたパソコンに返信できるのでしょうか???
って疑問に思った方もいらっしゃるかも知れません。。。(説明が長過ぎる。。。笑)
実は、NAPTは、ローカルアドレスを識別するために、アドレス変換に加えて、端末(ローカルアドレス)を識別するポート番号も変換します。
これにより、複数の端末をひとつのグローバルアドレスで同時接続することを可能にしています。
つまりは、、、
同じ屋根の下に住む家族と一緒。。。
手紙でいうところの、宛先の住所がIPアドレスで、宛名(氏名)がポート番号みたいなもんです。
多分。。。笑。
IPv6が、なかなか普及しないのは、NAPTの技術により、IPv4の枯渇問題が、ある程度、解消されているからかも知れません。
まとめ
- IPv6は、IPv4の枯渇問題を解決する為に標準化されたもので、128ビット(16バイト)で構成される。
- IPv6は、16進数で16ビット毎に表現するが、先頭の連続した0は省略可能、更に0000が続く場合は、「::」で省略可能。ただし、0000が続く箇所が複数ある場合は、省略できるのは1箇所のみ。
- NATは、プライベートアドレスをグローバルアドレスに1対1で変換する技術。一般的にはルータやFireWallで設定する。
- NAPTは、1つのグローバルアドレスを複数のローカルアドレスで共有できる技術。IPアドレスとポート番号を変換する。IPマスカレードとも呼ばれる。
以上です。
最後まで読んでいただき、ありがとうございました。
【参考書籍】
・GEEK JOBでは、4月7日より、体験会や通学(セミナー受講)をオンラインで実施する体制を完備いたしました。
・GEEK JOBのWeb上には通学するとの記載がありますが、今後はオンラインでの面談・セミナー受講となりますので安心してご応募ください。
※登録後の案内にて、オンライン体験会/説明会・セミナー等の受講方法について詳しく説明させて頂きます。
※オンライン体制は、「緊急事態宣言」終結後も継続実施しますので、今後は自宅等で面談・セミナー受講を行える環境が継続します。