「[::]」または「0.0.0.0」は、いつそのネットワークを意味し、いつそのホストを意味しますか? [コピー]

「[::]」または「0.0.0.0」は、いつそのネットワークを意味し、いつそのホストを意味しますか? [コピー]

Tanenbaumのコンピュータネットワーク理論

IPアドレス0.0.0.0(最下位アドレス)はホストの起動時に使用されます。。その意味は「このネットワーク」または「このホスト」。

[::] IPv4のIPv6バージョン0.0.0.0

質問:

1) いつこのネットワークを[::] 意味し0.0.0.0、いつこのホストを意味しますか?

2)ホストに言及するときは、ホストのすべてのネットワークインターフェイスを意味しますか、それともホストの特定のネットワークインターフェイスを1つだけ意味しますか?

3)[::] 同じLAN内の他のホストからmysqlサーバーにアクセスできるのはなぜですか?これがこのネットワークを指すか、またはこのホストを指すか。[::]ホストが「起動時に」存在しなくてもmysqlサーバーで使用されるのはなぜですか?

   $ sudo netstat -ap | grep mysql
   tcp6       0      0 [::]:mysql              [::]:*                  LISTEN      23683/mysqld        
   tcp6       0      0 [::]:33060              [::]:*                  LISTEN      23683/mysqld        
   unix  2      [ ACC ]     STREAM     LISTENING     1169294  23683/mysqld         /var/run/mysqld/mysqld.sock
   unix  2      [ ACC ]     STREAM     LISTENING     1169513  23683/mysqld         /var/run/mysqld/mysqlx.sock
   unix  2      [ ]         DGRAM                    1169211  23683/mysqld

ありがとうございます。

答え1

netstat提供された出力では、「0.0.0.0」と「[::]」は「このホスト」を意味するのではなく、問題のサービスが「このホストのすべてのインタフェース」を受信して​​いることを意味します。したがって、これらのポートはlocalhostを含むすべてのホストで開かれています。

答え2

RFC 1122の公式IP定義はですthis host on this network。これこれ正式な定義。ただし、オペレーティングシステム固有の用途は依然として存在します。

Linuxで内部的に使用され、[::]他の0.0.0.0コンピューティング領域では「Null」と考えられています。状況によっては、「null」は「何もなし」、「不明」、「無関係」、または時々「エラー」を意味する場合があります。その意味は実際には状況によって異なります。

IPアドレスは、ネットワークまたはホストを表すために使用できます。例えば192.168.1.1ホストです192.168.1.0/二十四。それが示すことは、完全にソフトウェアが受け取ることを期待することに依存します。

そのホストを意味する場合は、そのホストのすべてのネットワークインターフェイスを意味しますか、それともそのホストの特定のネットワークインターフェイスを1つだけ意味しますか?

ソケットバインディング(受信)を参照するとき、これはどのIPが「関係ありません」を意味します。ただし、これは現在のホストのIPに制限されるため、実際には現在のホストのすべてのIPにアドレス指定されたすべてのインターフェイスで接続が許可されることを意味します。

関連情報