IPv4において、0.0.0.0は全ビットが0のIPアドレスであり、無効、不明、または適用外の対象を指定するために使用されるルーティング不可のメタアドレスである。このアドレスには、いくつかの特別な意味が割り当てられている。
ホストアドレスとして
ホストアドレスとしての0.0.0.0の用法には、以下のものがある。
- 「任意のIPv4アドレス」を意味する。サーバを設定するとき(すなわちlistenするソケットをバインドするとき)に使用される。C言語では
INADDR_ANY
としてマクロ定義されている(bind(2)はインタフェースではなくアドレスにバインドする)。 - ホストにまだアドレスが割り当てられていないときに、ホストが自分自身を指すのに使用するアドレス。DHCPで最初のDHCPDISCOVERパケットを送信するときなどに使用する。
- DHCPによるアドレス取得に失敗したときに、ホストが自分自身に割り当てるアドレス(ホストのIPスタックが対応している場合)。最近のオペレーティングシステムでは、これはAPIPAメカニズムに置き換えられている。
- 対象が利用できないことを明示的に指定する。
サーバにおいては、0.0.0.0は「ローカルマシン上の全てのIPv4アドレス」を意味する。ホストに192.168.1.1と10.1.2.1の2つのIPアドレスがあり、そのホストで実行されているサーバが0.0.0.0で待ち受けするように構成されている場合、どちらのIPアドレスに対しても到達可能になる。
デフォルトルートとして
ルーティングにおいては、通常、0.0.0.0はデフォルトルートのネットワークアドレスとして0のサブネットマスクとともに使用される。これは"0.0.0.0/0"や"0.0.0.0 0.0.0.0"として表現される。
これは、IPv4アドレス空間内の全てのアドレスと一致し、ローカルルータに向けられている。
IPv6において
IPv6では、全てが0のアドレスは通常"::"として表現される。
脚注
- In RFC 1122 the notation "{0,0}" is used to designate 0.0.0.0/x (x being anything from 0 to 32). Quote: "{ 0, 0 } This host on this network. MUST NOT be sent, except as a source address as part of an initialization procedure by which the host learns its own IP address."
外部リンク
- Special Use IPv4 Addresses - IETF