ネットなどで調べると、ルータは自分では宛先が分からないパケットを最終的に0.0.0.0へ投げると書いてあったりするのですが、ルータではない一般の端末で宛先が自分のネットワークでないパケットを送信するときはデフォルトゲートウェイにとりあえずパケットを送信すると思うのですが、それではどういった時に一般の端末では0.0.0.0が用いられるのでしょうか?
もう少し調べてみたところ、0.0.0.0に設定されているネクストホップ(要するにデフォルトゲートウェイ? 設定しだいだけれど・・・) に転送されるとも書いていたのですが、上記は 0.0.0.0に投げたパケットがデフォルトゲートウェイに転送された結果と予想して、しかしながら $ ping 0.0.0.0 とすると応答は自分が設定しているデフォルトゲートウェイからではなく、自分の端末のループバックアドレス(127.0.0.1)から返答があります。
いったい、0.0.0.0 って何なのでしょうか?
ネットワーク初心者でして全くおかしな事を言っているかもしれませんが、是非ご教授お願い致します。
すごく簡略化していってしまうと一般の端末では 例えばインターネットをみてる時とか、メールをしてる時になります。
なぜなら見たいWEBサイトやメールは自分の家にはないからです。
0.0.0.0 というIPアドレスをもった何かがある
という考え方をすると混乱してしまいます。
下のルーティングテーブルの例をみてください。
(かなり簡略化してしまいましたが…)
自分が知らないネットワークは 0.0.0.0 に 書いてあるところ(コンピュータやルータ)に回してねという意味です。
また192.168.X.X とネットワークは 192.168.0.59に 書いてあるところ(コンピュータやルータに)回してねという意味になります。
NetworkDestination Gateway
0.0.0.0 192.168.0.13
192.168.0.0 192.168.0.59
下のURLを参照されると分かりやすいと思います。
http://www.atmarkit.co.jp/fwin2k/win2ktips/262gateway/gateway.ht...
ご参考になると幸いです。
よろしくお願いいたします。
本来 0.0.0.0 というアドレスは存在しません。
確かに Linux ではループバックと同義として扱われているようですが、Windows と FreeBSD で試すとどちらもエラーになります。
Linux は実装の都合上たまたまそうなっていると考えるべきでしょう。
ではどういうときに使われるかというとルーティング情報をあらわす時に「すべてのネットワーク」をあらわすものとして考えると分かりやすいと思います。
単一のアドレスでなく、ネットワークなので、0.0.0.0/0 または 0.0.0.0/0.0.0.0 という表記になります。
これのネットワークに割り当てられたルーターは、事実上デフォルトゲートウェイとして扱われます。
なるほど、Linuxはたまたまそういう実装だったんですね。
Windowsでも試しておくべきでした・・・。
ありがとうございました!