ネットワークって。。。#13(IPプロトコル)

今回は、IPアドレスのもうひとつのバージョンであるIPv6と、前回のネットワークって。。。#12でも、ちらっと紹介した、アドレス変換を行うNATNAPTの話。。。

 

f:id:thmat:20200506122745j:plain

 

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がいくつ続くのか、わからなくなるからだそうです。

 

ちなみに、以下は、ネットワーク設定画面のイメージです。。。

f:id:thmat:20200509230733p:plain
あ〜、なんかややこしい。。。笑

 

IPv6の種類

IPv6の種類としては、大きく以下の3種類となります。

グローバルユニキャストアドレス

IPv4でいうところのグローバルアドレスにあたります。インターネット上で利用できるアドレスで、もっとも一般的に使われています。

リンクローカルユニキャストアドレス

先頭の10ビットが 1111 1110 10 で始まるアドレス。

同一ネットワーク内でのみ使用。つまりは、ルータを超えた通信はできません。

通常は、OSが自動付与し、後ろの64ビットにMACアドレスが設定されます。

あっ、MACアドレスについては、ネットワークって。。。#6のブリッジのところで書いたので、良ければそちらも見て下さい。

ユニークローカルユニキャストアドレス

先頭の7ビットが 1111 110 で始まるアドレス。

IPv4でいうところのプライベートアドレスにあたります。

 

その他、特殊な意味を持つアドレスもあり、

等がありますが、詳細は割愛します。

 

 

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の枯渇問題が、ある程度、解消されているからかも知れません。

 

 

まとめ

  1. IPv6は、IPv4の枯渇問題を解決する為に標準化されたもので、128ビット(16バイト)で構成される。
  2. IPv6は、16進数で16ビット毎に表現するが、先頭の連続した0は省略可能、更に0000が続く場合は、「::」で省略可能。ただし、0000が続く箇所が複数ある場合は、省略できるのは1箇所のみ。
  3. NATは、プライベートアドレスをグローバルアドレスに1対1で変換する技術。一般的にはルータやFireWallで設定する。
  4. NAPTは、1つのグローバルアドレスを複数のローカルアドレスで共有できる技術。IPアドレスとポート番号を変換する。IPマスカレードとも呼ばれる。

 

以上です。

 

最後まで読んでいただき、ありがとうございました。

 

【参考書籍】

 

 


GEEK JOBでは、4月7日より、体験会や通学(セミナー受講)をオンラインで実施する体制を完備いたしました。
GEEK JOBのWeb上には通学するとの記載がありますが、今後はオンラインでの面談・セミナー受講となりますので安心してご応募ください。
※登録後の案内にて、オンライン体験会/説明会・セミナー等の受講方法について詳しく説明させて頂きます。
※オンライン体制は、「緊急事態宣言」終結後も継続実施しますので、今後は自宅等で面談・セミナー受講を行える環境が継続します。

 

 

 

にほんブログ村 教育ブログ プログラミング教育へ にほんブログ村 IT技術ブログ IT技術メモへ
PVアクセスランキング にほんブログ村
にほんブログ村

 
人気ブログランキングへ