インターネットプロトコルバージョン4(IPv4)アドレス0.0.0.0は複数の用途に使用できます
IPアドレスを世界的に割り当てるIANAは、 RFC 1122のセクション3.2.1.3に単一のIPアドレス0.0.0.0を割り当てています。 [ 1 ]送信パケットの場合、送信元IPアドレス0.0.0.0は「このネットワーク上のこのホスト」を意味します。[ 2 ]
RFC 1122では、0.0.0.0を{0,0}という表記で表しています。IPv4では、このアドレスを宛先アドレスとして使用することは禁止されており、ホストが自身のアドレスを取得しようとする初期化プロセス中の送信元アドレスとしてのみ許可されています。[ 3 ]ホストの初期化プロセスについては、 BOOTP(RFC 951)またはDHCP(RFC 2131 )を参照してください。
BOOTPブート要求では、クライアントは自身の既知のIPアドレスを送信元として入力します。アドレスが不明な場合は0.0.0.0を入力します。 [ 4 ]
DHCPでは、ホストは、DHCPを使用する際に最初のDHCPDISCOVERパケットを送信するときなど、まだアドレスが割り当てられていないときに、IPの送信元アドレスとして0.0.0.0を使用することができます。[ 5 ]この使用法は、最近のオペレーティングシステムではAPIPAメカニズムに置き換えられています。
送信元アドレスとしての使用に制限されており、宛先アドレスとしての使用は禁止されているため、アドレスを0.0.0.0に設定すると、ターゲットが利用不可でルーティング不可能であることを明示的に指定します。[ 6 ]この方法は、DNSベースの広告ブロックにも有効です。例えば、/etc/hostsファイルに次の行を追加すると0.0.0.0 badsite.example、badsite.exampleが無効/使用不可のホスト(0.0.0.0)にマッピングされます。0.0.0.0は送信元アドレスでありルーティング不可能であるため、badsite.exampleへの接続は失敗します。[ 7 ]
RFC 1122では送信元アドレスのみと定義されているため、オペレーティングシステムは宛先アドレスが 0.0.0.0 であるパケットがループバックインターフェースを介して送信されること、つまりシステムから出ないことを保証します。[ 8 ] Linuxでは、リモートアドレスとして0.0.0.0 を指定したプログラムは、実際には現在のホスト(別名localhost)に接続します。[ 8 ]この動作はLinuxカーネルの実装によって発生します。宛先アドレスが 0.0.0.0 のパケット(RFC 1122によれば宛先アドレスがないものとして扱われる)に遭遇するたびに、カーネルは送信元アドレスを 0.0.0.0 の宛先アドレスに置き換えます。[ 9 ]このカーネルアドレス置き換えプロセスは、 RFC 1122のセクション 4.2.4.4 Multihomingの指示に従います。[ 10 ]
WindowsとLinuxの両方でのバインドでは、ホストのIPアドレスのどれをソースIPとして使用するかを選択する際に、プログラムはINADDR_ANY(0.0.0.0)を指定できます。[ 11 ] [ 12 ]プログラムが0.0.0.0にバインドすると、ローカルホスト(127.0.0.1)、LAN IP(例:192.168.xx)、パブリックIP(設定されていてファイアウォールが許可している場合)からの接続が受け入れられますが、127.0.0.1にバインドすると、同じマシンからの接続のみが受け入れられます。[ 13 ]
ルーティングテーブルでは、ゲートウェイ列に0.0.0.0が表示されることもあります。これは、宛先がローカルインターフェースから直接到達可能であり、ネクストホップルーター(ゲートウェイ)を必要としないことを示します。[ 14 ]
CIDR表記0.0.0.0 / 0は、すべてのIPアドレスを含むIPブロックを定義します。ルーティングにおいて、デフォルトルートを宛先サブネットとして表すためによく使用されます。これはIPv4アドレス空間内のすべてのアドレスに一致し、ほとんどのホストに存在し、ローカルルーターに向けられています。[ 15 ]
IPv6では、すべてゼロのアドレスは通常::(コロン2つ)で表され、これは0000:0000:0000:0000:0000:0000:0000:0000の短縮表記です 。[ 16 ] IPv6の亜種は、IPv4の対応するものと同じ目的を果たします
2024年8月、イスラエルのサイバーセキュリティ企業Oligoの研究者は、セキュリティ上の欠陥が悪用されていることを発見したと発表しました。この欠陥により、標的のウェブブラウザからの悪意のあるリクエストが、標的の0.0.0.0アドレスの任意のポートに到達できるようになり、ブラウザ(ひいてはリモート攻撃者)がプライベートリソースにアクセスできるようになります。リスニングするように設定されているソフトウェアによっては、攻撃者は社内情報や開発者コードを盗み出したり、ソフトウェアのAPIにリクエストを発行したりする可能性があります。[ 17 ] [ 18 ]
はありません。