パブリック IP アドレスがサブネット マスクとともに常に表示されないのはなぜですか?

パブリック IP アドレスがサブネット マスクとともに常に表示されないのはなぜですか?

対応するサブネット マスクのないパブリック IP アドレスは意味がないと言われました。ネットワーク ID をホスト ID から分離する方法がわからないためです。これは私にとってはまったく理にかなっています。

ただし、ほとんどの場合、IP アドレス (DNS、findmyip.com など) は、CIDR 番号のない IP のみに関するものです。たとえば、Web サイトに IP アドレスだけを入力すると、正しいドメイン名が返されます。

何が足りないのでしょうか? IP アドレスでのみ機能する他のプロトコルもいくつかあると思いますが、それについてはまだ聞いたことがありません。

私の質問がネットワークの仕組みに関する基本的な理解の欠如を示している場合は、リソースをいただければ幸いです。私はこれらすべてを独学で学んでいる開発者ですが、5 分間のチュートリアルや 1000 冊以上のあまり知られていない本 (Hi TCP Illustrated) 以外、探している資料を見つけることができません。

答え1

上記の回答は両方とも正解です。こちらはより詳細な非技術的な回答です。

コンピュータは、IP アドレスが直接接続されているコンピュータに属しているかどうかのみを認識する必要があります。同じ「LAN」内のハブ/スイッチ/WiFi を通過するコンピュータは、直接接続されているとみなされます。

それ以外の場合、コンピュータはパケットを次にどこに送信するか、つまりルータのアドレス(次にパケットをどこに送信すべきかを知っている)を知るだけで済みます。traceroute を実行すると、このパスが表示されます。

サブネット マスクは、直接接続されているマシンをグループ化するために使用されます。そのため、直接接続されていないマシンにアクセスするには、サブネット マスクは必要ありません。

特に、サブネット マスクは、ファイアウォールやその他のソフトウェアによって、同じ方法で処理される IP アドレスのグループを指定するためにも使用できます (これが、サブネット マスクが LAN の外部で関連する場合がある理由です)。ただし、一般にインターネット上で通信するためには必要ありません。

答え2

TCP/IP を使用して他のシステムと通信するすべてのシステムは、システムによって管理されるローカルの「転送情報ベース」またはローカル ルーティング テーブルを参照します。

ルーティング テーブル エントリは基本的に次のようになります。

宛先ネットワーク / ゲートウェイ / 宛先サブネットマスク / メトリック

現在のルーティング テーブルは次のとおりです。

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 eth2
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 eth2
172.16.160.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.87.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet1

システムがIPにトラフィックを送信するたびに、このテーブルを検索します。サブネットマスクに一致し、その範囲内に収まる宛先ネットワークが見つかった場合、次の表で識別されるネットワークアダプタからトラフィックが送信されます。イフェイス

これらのネットワーク アダプタはすべて「直接接続」されているため、ゲートウェイに 0.0.0.0 が表示されます。つまり、たとえばシステムが 192.168.2.80 に何かを送信する場合、インターフェイス eth2 経由で 192.168.2.80 に直接送信できます。

ただし、サブネット マスクのため、192.168.87.80 は eth2 を経由せず、vmnet1 を経由して送信されます。

IP が 2 つのエントリに収まる場合、CIDR サブネット マスクが大きい方 (「より具体的な方」) が使用されます。サブネット マスクが同じものが 2 つある場合、メトリックを使用して同点を判定し、その時点でシステムが 1 つを選択してそれを使用するか、それらの間で負荷分散を行います。

例えば

192.168.2.0     0.0.0.0         255.255.255.0   U     100    0        0 eth2
192.168.2.0     0.0.0.0         255.255.255.240 U     100    0        0 ethX

255.255.255.240 は CIDR /28 であり、255.255.255.0 は CIDR /24 です。したがって、2 つのエントリが存在する場合、192.168.2.1 に送信されるものはインターフェイス ethX から送信されますが、192.168.2.241 に送信されるものはインターフェイス eth2 から送信されます。

一致するものがない場合はどうなりますか? その場合は、デフォルト ゲートウェイが使用されます。 サブネット マスクが「最低」の 0.0.0.0 (スラッシュ /0) であることに注意してください。

これがサブネットの目的です。どのインターフェースからどのネットワークにアクセスできるかをシステムに伝えることです。システムはトラフィックを送信するときにこれを使用し (インターネットとローカル ネットワークの違いを判断するため)、ルーターはこれを使用してトラフィックを転送します。

それ以外の状況では、サブネット マスクは必要ありません。基本的に、ネットワーク ルーティング層を超えるとサブネット マスクは必要ありません。HTTP はアプリケーション層です。

答え3

サブネット マスクは、ホスト自体とルーティング機器に役立ちます。

PCはリモートデバイスのサブネットマスクを知る必要はなく、アドレスとそれとの比較だけを知ればよい。自分の住所そしてその独自のサブネットマスクアドレスがローカルかリモートかがわかります。

ローカルの場合はパケットは直接送信され、リモートの場合はパケットはデフォルトゲートウェイに送信されます。

関連情報