IPv4アドレス `
0.
0.
0.
0` は、全ての
ビットが
0で構成される特別なアドレスであり、ルーティング不可のメタアドレスとして扱われます。このアドレスは、無効、不明、または適用外の対象を指定するために使用され、複数の特別な意味が割り当てられています。主に、ホストアドレスとしての用法と、デフォルトルートとしての用法があります。
ホストアドレスとしての0.0.0.0
ホストアドレスとして `
0.
0.
0.
0` が使用される主なケースは以下の通りです。
1.
「任意のIPv4アドレス」を意味する:
サーバがクライアントからの接続を待機する際(ソケットをバインドする際)に、`
0.
0.
0.
0` を指定することで、ローカルマシンの全てのアドレスで接続を待ち受けます。
C言語などのプログラミングでは、`INADDR_ANY` というマクロ定数で表現されることがあります。
例えば、
サーバが `192.168.1.1` と `1
0.1.2.1` という2つの
IPアドレスを持つ場合、
サーバが `
0.
0.
0.
0` で待ち受けするように設定すると、どちらの
IPアドレス宛の接続要求にも対応できます。
2.
ホストがまだIPアドレスを持っていない場合:
ホストが起動し、まだ
IPアドレスが割り当てられていない状態のとき、自分自身を指すために `
0.
0.
0.
0` を使用することがあります。DHCP(Dynamic Host Configuration Protocol)で
IPアドレスを取得する際、最初の `DHCPDISCOVER` パケットを送信する際に送信元アドレスとして `
0.
0.
0.
0` が利用されます。
3.
DHCPによるアドレス取得失敗時:
DHCPによる
IPアドレスの取得に失敗した場合、ホストが自身に割り当てるアドレスとして `
0.
0.
0.
0` が使用されることがあります(ただし、OSのIPスタックが対応している場合)。最近の
オペレーティングシステムでは、
APIPA(Automatic Private IP Addressing)メカニズムがこの役割を担うことが一般的です。
4.
対象が利用不可であることを明示的に示す:
何らかの理由で特定の対象が利用できない場合、`
0.
0.
0.
0` で明示的に指定することがあります。
デフォルトルートとしての0.0.0.0
ルーティングにおいては、`
0.
0.
0.
0` は、デフォルトルートの
ネットワークアドレスとして、
サブネットマスク `
0.
0.
0.
0` と共に使用されます。これは、`
0.
0.
0.
0/
0` または `
0.
0.
0.
0 0.
0.
0.
0` と表現されます。
`
0.
0.
0.
0/
0` は、
IPv4アドレス空間内の全てのアドレスに一致し、ローカルルータに対するデフォルトゲートウェイとして機能します。つまり、ルーティングテーブルに明示的に指定された宛先ネットワーク以外への全てのトラフィックは、このデフォルトルートを介して送信されます。
IPv6では、全ての
ビットが
0のアドレスは、通常 `::` と表現されます。
IPv4の `
0.
0.
0.
0` と同様に特別な意味を持ちますが、用法は異なります。
IPv6における `::` は、未指定のアドレス、または任意の
IPv6アドレスを意味することがあります。
まとめ
`
0.
0.
0.
0` は、
IPv4における特殊なアドレスであり、ホストアドレスとしては「任意のアドレス」や「アドレス未割当」を意味し、ルーティングにおいてはデフォルトルートを表します。これらの特性を理解することで、ネットワークの設定やプログラミングにおいて、より柔軟で効果的な操作が可能になります。
脚注
RFC 1122 では、`{
0,
0}` という表記で `
0.
0.
0.
0/x` (xは
0から32の任意の数値)を表しています。この表記は、ホストが自身の
IPアドレスを学習するための初期化手順の一部として、ソースアドレスとしてのみ使用されるべきであると規定されています。
外部リンク
0#section-2.1'>Special Use
IPv4 Addresses - IETF