IP アドレスは、ネットワーク上の住所のようなものであり、ネットワークに接続されているコンピュータを識別するものです。
インターネットに接続するには、IP アドレスを設定する必要があります。
自宅でインターネットに接続する際には、プロバイダからIP アドレスが付与され、そのIP アドレスを設定してインターネットに接続するといった形になっています。
IP アドレスには、32ビットのIPv4と128ビットのIPv6があります。
現在は32ビットのIP アドレスが使用されていますが、インターネットの発展によりIP アドレスが枯渇する問題が発生し、ビット数を128ビットにしたIPv6の導入が一部で始まっています。
ここではIPv4について扱います。
IP アドレスにはいくつか種類があります。
- ループバックアドレス
- グローバルIP アドレス
- プライベートIP アドレス
- ネットワークアドレス
- ブロードキャストアドレス
-
・ ループバックアドレス
-
自分自身を示すためのアドレスで、127.0.0.1あるいはlocalhost と表します。
-
・ グローバルIP アドレス
-
世界で唯一のIP アドレスであり、ホストを一意に識別できます。
-
・ プライベートIP アドレス
-
LAN 内で自由に使用可能なアドレスであり、サブネットマスクと組み合わせて指定します。
-
・ ネットワークアドレス
-
IP アドレスのホスト部がすべて0のアドレスで、ネットワークそのものを示します。
-
・ ブロードキャストアドレス
-
IP アドレスのホスト部がすべて1のアドレスで、ネットワーク内の全ホストを示します。
私達が、自宅でインターネットに接続する際には、グローバスIP アドレスがプロバイダか付与されます。
自分がどんなアドレスで接続しているかは、接続ツールやネットワークコマンドで見る事ができます。
会社や教育機関等では、プロバイダから与えられたグローバルIP をネットワーク管理者が各部署に割り振りする場合や、各コンピュータにプライベートIP を割り振る事が多いと思います。
グローバルIP を設定したコンピュータ、ルータは全世界からアクセス可能であるために、その扱いは大変です。
私達が光接続サービスやADSL などでインターネットに接続する際に付与されたグローバルIP は、契約しているプロバイダから期限付きで貸し出されているものであり、一定期間が経過するかモデム等の電源をリセットすると解放されます。
再びインターネットに接続しても、同じIP アドレスを付与される事は稀です。
IPv4のIPアドレスは32ビットですが、8ビット毎に区切って表記されます。
コンピュータで扱う数字は基本的には2進数ですが、人間には分かりにくいのでドットで区切り、10進数で表記されます。
例えば、次に示してあるIP アドレスは等価になります。
2進数表記 : 11000000 10101000 00000001 00000010
10進数表記 : 192.168.1.2
IP アドレスは、32ビットが2つに分かれています。
このうち前半をネットワーク部、後半をホスト部と呼びます。
2つに分ける際の区切りは、サブネットマスクで表されます。
つまり、サブネットマスクは、ネットワークアドレスの長さを示します。
サブネットマスクは、IP アドレスの上位側から1を並べる事で表されます。
例えば、次の2進数、10進数で示されるサブネットマスクは等価です。
サブネットマスクは、上位ビットから1を並べる間に0が入る事はありません。
0が現れる直前までが、サブネットマスクを示します。
2進数表記 : 11111111 11111111 11111111 00000000
10進数表記 : 255.255.255.0 (24ビット)
2進数表記 : 11111111 11111111 11111111 11110000
10進数表記 : 255.255.255.240 (28ビット)
サブネットマスクの長さは、アドレスクラス(クラスA 〜クラスE)と呼ばれる概念によって決められています。
各クラスは次のように定義されています。
構成するネットワークの規模によって、サブネットマスクの長さがを調整します。
一般的には、クラスA 〜クラスC が使用され、クラスD はマルチキャスト用、クラスE は実験用となっています。
私達が個人で使用する場合は、クラスC です。
また、最近はクラスにとらわれない概念で区切る事もあり、その場合はクラスレスサブネットマスクと呼ばれます。
IP アドレスクラス
クラス |
ビット パターン |
サブネット マスク |
ネットワーク部 |
ホスト部 |
IP アドレスの範囲 |
クラスA |
最上位ビットが0 |
255.0.0.0 |
8ビット |
24ビット |
0.0.0.0〜127.255.255.255 |
クラスB |
最上位ビットから10 |
255.255.0.0 |
16ビット |
16ビット |
128.0.0.0〜191.255.255.255 |
クラスC |
最上位ビットから110 |
255.255.255.0 |
24ビット |
8ビット |
192.0.0.0〜223.255.255.255 |
クラスD |
最上位ビットから1110 |
- |
- |
- |
224.0.0.0〜239.255.255.255 |
クラスE |
最上位ビットから11110 |
- |
- |
- |
240.0.0.0〜255.255.255.255 |
いくつか例を示して説明します。
例えば、次のようなIP アドレスとサブネットマスクのホストがあるとします。
-
・ 例1
-
IP アドレス : 192.168.1.1
サブネットマスク : 255.255.255.0
あるいは
192.168.1.1/24 ・・・ /の後の数値はサブネットマスクのビット数を表します。
これらから次のことが分かります。
- サブネットマスクは24ビット
- ネットワークアドレスは192.168.1.0
- ブロードキャストアドレスは192.168.1.255
- 254台のホストが接続可能
サブネットマスクは24ビットなので、ネットワーク部は24ビット、ホスト部は32−24=8ビットとなります。
従って、ホスト部がすべて0のネットワークアドレスと、ホスト部がすべて1のブロードキャストアドレスが分かります。
次に、ホスト部が8ビットである事から、このネットワークには 2^8−2=256−2=254 のホストが接続できる事が分かります。
2を差し引くのは、ネットワークアドレスとブロードキャストアドレスはホストに設定する事ができないからです。
例えば、上記のIP アドレスとサブネットマスクをルータに設定している場合は、このルータに接続したコンピュータには、192.168.1.2〜192.168.1.254までのIP アドレスを与える事が可能になります。
-
・ 例2
-
IP アドレス : 192.168.1.5
サブネットマスク : 255.255.255.240
あるいは
192.168.1.5/28
これらから次のことが分かります。
- サブネットマスクは28ビット
- ネットワークアドレスは192.168.1.0
- ブロードキャストアドレスは192.168.1.15
- 14台のホストが接続可能
サブネットマスクは28ビットなので、ネットワーク部は28ビット、ホスト部は32−28=4ビットとなります。
ホスト部が4ビットである事から、このネットワークには 2^4−2=16−2=14 のホストが接続できる事が分かります。
-
・ 例3
-
IP アドレス : 192.168.1.21
サブネットマスク : 255.255.255.240
あるいは
192.168.1.21/28
これらから次のことが分かります。
- サブネットマスクは28ビット
- ネットワークアドレスは192.168.1.16
- ブロードキャストアドレスは192.168.1.31
- 14台のホストが接続可能
サブネットマスクは28ビットなので、ネットワーク部は28ビット、ホスト部は32−28=4ビットとなります。
ホスト部が4ビットである事から、このネットワークには 2^4−2=16−2=14 のホストが接続できる事が分かります。
例2と例3の違いについて少し詳しく説明します。
これらは、違いを理解する事が、サブネットマスクの理解に繋がります。
説明上分かりやすいように、2つの例のIP アドレスを2進数で表示してみます。
例2 : 192.168.1.5 / 28 11000000 10101000 00000001 00000101
例3 : 192.168.1.21 / 28 11000000 10101000 00000001 00010101
サブネットマスクの長さは同じですが、ネットワーク部の値が異なります。
例2のネットワークと、例3のネットワークは別なネットワークになります。
例2のネットワークでは、ホストに与えられるIP アドレスは192.168.1.1〜192.168.1.14であり、例3のネットワークでは、ホストに与えられるIP アドレスは192.168.1.17〜192.168.1.30になります。
付与できるIP アドレスの範囲が異なるので、これらは別なネットワークという事になります。
さて、この2つのネットワークを1つのネットワークにまとめる事もできます。
ネットワークをまとめるには、サブネットマスクの長さを変更します。
例2と例3では、28ビット目が異なる事で、別々のネットワークになっています。
そこで、サブネットマスクを1ビット短くし、27ビットにします。
すると、例2と例3のネットワークアドレスはどちらも192.168.1.0、ブロードキャストアドレスは192.168.1.31となり、同一のネットワークになります。
このネットワーク内で使用できるIP アドレスは192.168.1.1〜192.168.1.30となり、ネットワークを束ねる事で接続可能なホスト数を増やす事ができます。
ICMP(Internet Control Message Protocol)は、ネットワーク層においてパケットの到達確認を行うプロトコルです。
他のコンピュータと通信を行う際に障害が起きた場合、トランスポート層やネットワーク層などのいずれの層で障害が起こっているかを調査する必要があります。
こうした場合に、ICMP はネットワーク層のIP を使用するので、IP レベルでパケットの到達確認を行う事ができます。
従って、ICMP を利用するにはそのネットワークでIP が使用可能でなければなりません。
ICMP を利用したツールとして、「ping」や「traceroute(tracert)」があり、IP レベルでパケットの到達や経路情報を確認するために利用されます。
ネットワークにコンピュータが存在するか否かの確認ができるので、悪用される事もあります。
そのため、ルータなどの機器やファイアウォールには、ICMP パケットに応答しないといった設定があります。
ICMP を無視する場合、パケットが宛先に届いても正常な応答が得られないので、トラブルシューティングの際には注意が必要です。