このコーナーの「ネットワークに関するややこしい用語」と合わせて読んで下さい。
IPv4の説明です。
「IPアドレス」は、
TCP/IPプロトコルのネットワークにおいて割り振られたネットワーク機器の識別番号で、
現在主流で使われているIPv4(インターネットプロトコルバージョン4)では、
32ビットを使います。
でも、そのままでは表記も発音も面倒なので、
32ビットを8ビットずつ4つにピリオドで区切り、その各々の値を10進数で表記します。
利用出来るアドレスの数は2の32乗ですが、
これを連続的に世界中の機器に割り当てていくのは非現実的なので、
この32ビットを「ネットワーク部」と「ホスト部」の2つに分け、管理します。
インターネットは、世界中に散在する組織(大学、官公庁、会社、etc.)単位の
ネットワークを結んだネットワークなので、
「ネットワーク部」は、インターネットに接続されている各々の組織のネットワークを識別するための、
「ホスト部」は、そのネットワーク内の機器を識別するための部分です。
ネットワーク部のビット列が異なるIPアドレス同士は別のネットワークとみなされます。
また、ネットワーク部、ホスト部、の各部ともに、
全てのビットが0、と、全てのビットが1の、2つのアドレスは特別な意味を持ちますので、
利用出来ません。
全てが0の場合はそのネットワーク自身=ホスト部の場合はネットワークアドレスを指し、
全てが1の場合はそのネットワークに所属する全ての機器への送信=ブロードキャストをあらわします。
世界中には様々な規模のネットワークが有りますから、
ネットワーク部とホスト部のビット数を完全に固定にすることは無駄が多く出ることになります。
そこで、
組織が大規模なネットワークは世界には数が少なく、
小規模なネットワークは世界中に数が多いという前提に立ち、
電話の「市外局番-局番-番号」と同じ様な桁の割り振りの発想(大都市ほど市外局番が短い)で、
32ビットの区切り方の違いによって、
クラスAからクラスEまで、5つのクラスが有ります。
大規模なネットワークを管理するためのクラスです。
左から数えて最初の1ビットが0で、
左から8ビット目までがネットワーク部、
9ビット目から右端の32ビット目までの24ビットがホスト部になります。
利用出来るクラスAのネットワーク部は、10進表記で、
1(0は全てのビットが0になるので不可)から126(127は全てのビットが1になるので不可)となり、
同様に、ホスト部は、24ビットを3つに区切り各々を10進表記にすると、
0.0.1から255.255.254となります。
世界中の2の7乗-2=126のネットワークの各々に対し、
2の24乗-2=16777214までの機器にIPアドレスを割り当てることが出来ます。
0
n n n n n n n
h h h h h h h h
h h h h h h h h
h h h h h h h h
中規模なネットワークを管理するためのクラスです。
左から数えて最初の2つのビットが10で、
左から16ビット目までがネットワーク部、
17ビット目から右端の32ビット目までの16ビットがホスト部になります。
利用出来るクラスBのネットワーク部は左端の2ビットを含め、
16ビットを2つに区切り各々を10進表記にすると、128.1から191.254となり、
ホスト部は、やはり16ビットを2つに区切り各々を10進表記にすると、
0.1から255.254となります。
世界中の2の14乗-2=16384のネットワークの各々に対し、
2の16乗-2=65534までの機器にIPアドレスを割り当てることが出来ます。
1 0
n n n n n n
n n n n n n n n
h h h h h h h h
h h h h h h h h
小規模なネットワークを管理するためのクラスです。
左から数えて最初の3つのビットが110で、
左から24ビット目までがネットワーク部、
25ビット目から右端の32ビット目までの8ビットがホスト部になります。
利用出来るクラスCのアドレスは左端の3ビットを含め、
24ビットを3つに区切り各々を10進表記にすると、
192.0.1から223.255.254となり、
ホスト部は、1から254となります。
世界中の2の21乗-2=2097152のネットワークの各々に対し、
2の8乗-2=254までの機器にIPアドレスを割り当てることが出来ます。
1 1 0
n n n n n
n n n n n n n n
n n n n n n n n
h h h h h h h h
マルチキャストに使われるクラスです。
左から数えて最初の4つのビットが1110で、
ネットワーク部とホスト部の区別は有りません。
主に実験用に使われるクラスです。
左から数えて最初の5つのビットが11110で、
ネットワーク部とホスト部の区別は有りません。
サブネットマスクは、基本的には、
IPアドレスのネットワーク部とホスト部とを区別する為のものです。
サブネットマスクのうち、1のビットの範囲がネットワーク部、
0のビットの部分がホスト部になります。
一般的に使われるうちでもっともホスト部の少ないクラスCでも、
ホスト部には254個のアドレスを割り当てることが出来ます。
これは、ごく小規模の例えば10台程度の機器しか無い様なネットワークでは、
非常にもったいない事になります。
まして、クラスAやクラスBでは、もっと無駄になります。
そこで、ホスト部をサブネットマスクでさらに小さく区切り利用する方法が考え出されています。
例えば、
192.1.5.0/24というクラスCのネットワークアドレスを持つ会社が有るとします。
(あくまでもフィクションです)
IPアドレス(192.1.5.?)
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
h h h h h h h h
サブネットマスク(255.255.255.0)
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
クラスCなので、
192.1.5.1から192.1.5.254まで、254個のIPアドレスを割り振る事が出来ます。
このまま使っても良いのですが、
この会社には3つの部署が有るので、部署別のネットワークにしたいとします。
各部署には最大50個のIPアドレスが必要とします。
この様な場合、以下の様にします。
IPアドレス(192.1.5.?)
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
s s
h h h h h h
サブネットマスク(255.255.255.192)
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1
0 0 0 0 0 0
これで、
192.1.5.0/26
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 0
h h h h h h
192.1.5.64/26
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 1
h h h h h h
192.1.5.128/26
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
1 0
h h h h h h
192.1.5.192/26
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
1 1
h h h h h h
という4つのネットワーク(サブネットワーク)を作ることが出来ます。
桃色+水色のビット列が異なるIPアドレスは、
別のネットワークとみなされます。
例えば、上から2番目の、
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 1
h h h h h h
のネットワークで考えると、
ネットワークアドレスは192.1.5.64、
ブロードキャストは192.1.5.127、
同じネットワークとして利用出来るIPアドレスは
192.1.5.65から192.1.5.126までの62個ということになります。
また、IPアドレスが192.1.5.100の端末は、
桃色+水色の部分が全く同じなことからも、このネットワーク内で通信出来る事が判ります。
IPアドレス(192.1.5.100)
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 1
1 0 0 1 0 0
サブネットマスク(255.255.255.192)
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1
0 0 0 0 0 0
ネットワークアドレス(ホスト部が全て0。 - 192.1.5.64)
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 1
0 0 0 0 0 0
ブロードキャストアドレス(ホスト部が全て1。 - 192.1.5.127)
1 1 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1
0 1
1 1 1 1 1 1
IPアドレスは世界中に散らばるネットワーク機器の識別番号ですから、
原則として、決して同じものが存在してはいけません。
しかし、インターネットの世界的な普及によりIPアドレスの不足が問題になって来た為、
1996年、RFC1918により、
各々のネットワークの中だけで有効なIPアドレスの範囲を取り決め、
それを使うことも出来る様に決めました。
これをプライベートアドレスといい、
これに対して、従来のアドレスをグローバルアドレスといいます。
当然、世界中に同じIPアドレスがあっては混乱しますから、
プライベートアドレスを利用しているネットワークと
グローバルアドレスを利用しているインターネットとの出入りの際には、
ルータがグローバルアドレスとプライベートアドレスの変換をしてやります
(詳しくは、「ネットワークに関するややこしい用語」のページを)。
プライベートアドレスは、絶対にそのネットワークから外側へ出てはなりません。
プライベートアドレスは、
クラスAでは、10.0.0.0/8 (10.0.0.0 ~ 10.255.255.255)
クラスBでは、172.16.0.0/12 (172.16.0.0 ~ 172.31.255.255)
クラスCでは、192.168.0.0/16 (192.168.0.0 ~ 192.168.255.255)
の範囲と決められています。
つまり、一つの組織内において、
クラスAでは、10.0.0.0/8 の、1個、
クラスBでは、172.16.0.0/16 ~ 172.31.0.0/16 の、16個、
クラスCでは、192.168.0.0/24 ~ 192.168.255.0/24 の、256個、
のネットワークを作る事が出来ます。