IPアドレス
概要
IPv4 の仕様が定められたのは 1981 年の RFC 791。その後急激な IPv4 アドレス空間の利用増加により、IETF がインターネット上のアドレス空間の拡張のために IPv6 を 1995 年に RFC 1883 として発表した。
RFC 791 では、IP アドレスについて、(ネットワーク上で) 探す対象を示した名前であり、それがどこにあるかを示したアドレスであり、そこへどうやって到達するかを示したルートである と表現している。
2.3 Function Description
A name indicates what we seek. An address indicates where it is. A route indicates how to get there.
機能
IP アドレスが提供する主要な機能は以下。
ホスト、具体的にはそのネットワークインタフェースを識別する
ホストのネットワーク内での位置を提供する = ホストへのパスを確立する
構成
IPv4 は 32bit、IPv6 は 128bit の数値である。これらがさらに以下の 2 つに別れる。
ネットワーク部
MSB
所属するネットワークを識別する
ホスト部
LSB
ネットワーク内の機器自体を識別する
表記
IPv4
通常、8bit 区切りの整数の連なりで表記するドット記法で表現される。この時、前方から順に各8bit部分を第1-4オクテット(8)と表現する。I以下の2つの部分に分かれる。
IPv6
16 bit 区切りの 8 グループに分割し、各々のグループを 4 桁の 16 進数表記で記述する。グループ間は : で区切る。
code:ipv6
2001:0db8:85a3:0000:0000:8a2e:0370:7334
先頭の連続する0や、1つい上の0のみのグループは表記を省略できる。しかし、この省略可能性による表現の柔軟性のために、同一IPアドレスについて複数の表現が許されてしまい、特定のIPアドレスをテキスト内から探索するのが難しくなる。これに対処するための規範的なフォーマットが RFC 5952 として定められている。
CIDR (Classless Inter-Domain Routing)
IPv4 および IPv6 に採用できる表記法。末尾に / とともに 10 進数を付記し、ネットワーク部の bit 数を示す。
プライベートネットワーク
プライベートネットワークとは、プライベートな IP アドレス空間を構築するためのネットワークのこと。IPv4 および IPv6 はいずれもプライベートな IP アドレス範囲が定められている。これらは住居やオフィス等の LAN 内で利用される。IPv4 アドレス空間の圧迫にモチベーションを受け定義された。
プライベート IP アドレス
IPv4
RFC 1918 で定められている。
table:ipv4
RFC1918 での名前 CIDER アドレス範囲 アドレス数
24-bit block 10.0.0.0/8 10.0.0.0-10.255.255.255 16777216
20-bit block 172.16.0.0/12 172.16.0.0-172.31.255.255 1048576
16-bit block 192.168.0.0/16 192.168.0.0-192/168.255.255 65536
IPv6
RFC 4193 で定められている。アドレスブロック fc00::/7 が IANA によって ULA (Unique Local Addresses) として予約されている。
リンクローカルアドレス
ネットワークセグメント (リンク) もしくはブロードキャストドメインとのみ通信するネットワークアドレス。RFC 3927 で定められている。
サブネット
IP ネットワークの論理的な区分のこと。
サブネットマスク
IPv4 で利用される、サブネットの定義の表現方法。ネットワーク部が全て1、それ以外が全て0であり、通常の IP アドレスと AND を取るとサブネットマスクを示すネットワーク部のみが抽出できる。
歴史
Classful Network
昔はアドレス空間をクラスという単位で分割していたが、CIDER が導入されてからは実施質的には意味をなしていない。IPv4 時代のもので、境界がオクテット単位のものを クラスフル、オクテット単位ではなく上位nビットで区切っているものを クラスレス と読んでいた。クラスフルの場合はクラスが A~E に分類されていた。マルチキャストは、1つの送信元から特定のグループを宛先とした送信方式で使用されていた。
1985 年に RFC 950 で提案され、その後 1993 年に CIDER が登場し、利用されなくなった。
table:classes
クラス 先頭のビット列 第一オクテットの範囲 ネットワーク数 ホスト数 RFC
A 0 0-127 126 16777214 (1677216-2) 791
B 10 128-191 16384 65534 (65536-2) 791
C 110 192-223 2097152 254 (256-2) 791
D 1110 224-239 マルチキャスト用 - 1112
E 1111 240-255 予約 - 1112
[改訂新版]SDN/OpenFlowで進化する仮想ネットワーク入門
特別な IP アドレス
ネットワークアドレス
ホスト部が全て0のアドレス
ホストが所属するネットワーク自体を指すアドレス
ブロードキャストアドレス
ホスト部が全て1のアドレス
あるセグメントに接続されている全てのホストにパケットを送信するためのアドレス
0.0.0.0
文脈によって用途が異なる
IPアドレスを保有していないことを示す
マシンがTCP/IPネットワークに接続されていないことを示す
デフォルトルート
システムにおけるすべてのインタフェースのすべてのIPアドレス
意味または不適切なターゲットを定義するために使われるルーティングの対象にならないメタアドレス
ローカルマシンにおけるすべてのIPv4アドレス
127.0.0.1
ループバックアドレス
それ自身を示すアドレス
ハードウェアインタフェースに依存しない仮想IPとして知られる
linux システムでは、loopback アドレスのインタフェースは lo もしくは lo0 として知られ、このインタフェースに対応するホスト名を localhost という
ループバックアドレスは、物理的にインストールしたNICや、マシンを物理的にTCP/IPネットワークに接続せずに、ネットワークソフトウェアを試すのに利用される
代表的な例としては、webサーバを http://127.0.0.1 で立ち上げる、というものがある
IP アドレスの割り当て
今時は、割り当てには DHCP サーバを利用する。また、IPアドレスはホストに対してではなく、NIC 毎に割り当てられる。