メインコンテンツへスキップ
  1. ネットワーク 記事一覧/
  2. IPv4記事一覧/

IPv4 アドレス

目次

IPv4アドレスの表記方法

IPv4アドレスの実体は32ビットの2進数(0と1の並び)ですが、11000000101010000000000100000001のように32桁続けて書くと人間には読み書きしづらいものです。

そこで、32ビットを8ビットずつ4つのグループ(オクテット)に分割し、それぞれを10進数に変換したうえで、ピリオド(.)で区切って表記します。この表記方法をドット付き10進表記(dotted-decimal notation)と呼びます。普段目にする192.168.1.1のようなIPアドレスの表記は、すべてこの形式です。

 8bit   .  8bit   .  8bit   .  8bit
(10進数) . (10進数) . (10進数) . (10進数)

1つのオクテットは8ビットなので、0000000011111111、すなわち10進数で0〜255の範囲の値を取ります。そのため、IPv4アドレスの各部分は必ず0〜255の数値になります。

変換の具体例

例えば2進数の11000000.10101000.00000001.00000001というIPv4アドレスを、オクテットごとに10進数へ変換すると次のようになります。

2進数(8bit) 10進数への変換
11000000 192
10101000 168
00000001 1
00000001 1

これらをピリオドでつなぐと、192.168.1.1というおなじみの表記になります。

IPv4アドレスの分類

IPv4アドレスは32ビットで表現され、用途や割り当て範囲によっていくつかの種類に分類されます。歴史的にはクラス(A〜E)による分類が行われていましたが、現在はCIDR(Classless Inter-Domain Routing)によるクラスレスなアドレッシングが主流です。それに加えて、グローバル/プライベート、ループバック、リンクローカル、シェアードアドレスといった特別な用途を持つアドレス範囲が定義されています。

クラスフルアドレッシング(クラスA〜E)

クラスによるアドレッシングは歴史的な区分であり、現在の経路制御はCIDRによるクラスレスな方式が用いられている。
クラス 先頭ビット アドレス範囲 デフォルトサブネットマスク 用途
クラスA 0 0.0.0.0 〜 127.255.255.255 255.0.0.0 (/8) 大規模ネットワーク向けのユニキャストアドレス。
クラスB 10 128.0.0.0 〜 191.255.255.255 255.255.0.0 (/16) 中規模ネットワーク向けのユニキャストアドレス。
クラスC 110 192.0.0.0 〜 223.255.255.255 255.255.255.0 (/24) 小規模ネットワーク向けのユニキャストアドレス。
クラスD 1110 224.0.0.0 〜 239.255.255.255 なし(マスク概念を持たない) マルチキャスト用に予約されたアドレス。
クラスE 1111 240.0.0.0 〜 255.255.255.255 なし(マスク概念を持たない) 将来の利用のために予約された実験用アドレス。

クラスA〜Cはホスト向けのユニキャストアドレスとして定義され、先頭ビットのパターンによってネットワーク部とホスト部の境界(クラスフルマスク)が決まります。クラスDはマルチキャスト専用、クラスEは実験用として予約されており、通常のホストには割り当てられません。

グローバルアドレス(パブリックアドレス)

インターネット上で一意性が保証され、そのままインターネットに向けて経路制御(ルーティング)が可能なアドレスです。IANA(Internet Assigned Numbers Authority)から地域インターネットレジストリ(RIR)を経てISPや組織に割り当てられ、後述のプライベートアドレスやループバックアドレスなど特殊用途のブロックを除いた範囲が該当します。

プライベートアドレス

組織内のローカルネットワークなど、インターネットに直接接続しない環境での利用を目的として予約されたアドレス範囲です。これらのアドレスはインターネット上ではルーティングされず、複数の組織で重複して使用できます。

クラス相当 アドレス範囲 CIDR表記 アドレス数
クラスA 10.0.0.0 〜 10.255.255.255 10.0.0.0/8 約1,677万
クラスB 172.16.0.0 〜 172.31.255.255 172.16.0.0/12 約104万
クラスC 192.168.0.0 〜 192.168.255.255 192.168.0.0/16 65,536

ループバックアドレス

自ホスト自身を指すために予約されたアドレスです。ループバックアドレス宛てのパケットはネットワークインターフェースを経由せず、ホスト内部で処理されます。IPv4では127.0.0.0/8のブロック全体がループバック用に予約されていますが、一般的には127.0.0.1が代表として使用されます。

項目
アドレス範囲 127.0.0.0 〜 127.255.255.255
CIDR表記 127.0.0.0/8
代表アドレス 127.0.0.1

リンクローカルアドレス

同一リンク(同一セグメント)内でのみ有効なアドレスで、DHCPサーバーなどからアドレスを取得できない場合にホストが自動的に割り当てる(APIPA: Automatic Private IP Addressing)ために使用されます。リンクローカルアドレス宛て・発のパケットはルータを越えて転送されません。

項目
アドレス範囲 169.254.0.0 〜 169.254.255.255
CIDR表記 169.254.0.0/16

シェアードアドレス(共有アドレス空間)

キャリアグレードNAT(CGN / CGNAT)環境において、ISPが自社網内で使用するために予約されたアドレス空間です。プライベートアドレス(RFC 1918)と類似した位置づけですが、ISP側の設備とユーザー宅内機器の双方がRFC 1918アドレスを使用しているケースでアドレスが衝突する問題を避けるために新たに定義されました。

項目
アドレス範囲 100.64.0.0 〜 100.127.255.255
CIDR表記 100.64.0.0/10
主な用途 ISP網内でのキャリアグレードNAT(CGN)

関連RFC

RFC タイトル 概要
RFC 791 Internet Protocol IPv4の原典。クラスA〜Cによるアドレス体系を定義。
RFC 1112 Host Extensions for IP Multicasting クラスDをマルチキャスト用アドレスとして定義。
RFC 1918 Address Allocation for Private Internets プライベートアドレス(10/8、172.16/12、192.168/16)を定義。
RFC 1122 Requirements for Internet Hosts – Communication Layers 127.0.0.0/8をループバックアドレスとして規定。
RFC 3927 Dynamic Configuration of IPv4 Link-Local Addresses 169.254.0.0/16をリンクローカルアドレスとして定義。
RFC 6598 IANA-Reserved IPv4 Prefix for Shared Address Space 100.64.0.0/10をキャリアグレードNAT用のシェアードアドレスとして定義。
RFC 4632 Classless Inter-Domain Routing (CIDR) クラスフルアドレッシングを廃し、クラスレスな経路制御方式(CIDR)を定義。
RFC 6890 Special-Purpose IP Address Registries ループバックやリンクローカルなど、特殊用途アドレスのレジストリを規定。

関連記事