
サブネット マスクを使用してネットワークをサブネットワークに分割する方法は理解していますが、ルーターだけでなくネットワーク内のすべてのコンピューターがサブネット マスクを認識する必要があるのはなぜですか?
各コンピュータが物理的に有線で接続されている場合は理解できますが、いずれにしてもすべてのパケットはルーターを通過する必要があります。
ネットワーク 上に192.168.0.0/255.255.255.0
IP を持つコンピュータがあるとします192.168.0.1
。
たとえば、そのコンピュータがサブネットワーク外のコンピュータにアクセスしようとすると、192.168.1.1
そのコンピュータはメッセージをルーターに送信します。ルーターは、その IP がサブネットワークの IP 範囲外にあることを認識し、そのメッセージをサブネットワークに送信するのではなく、接続されているネットワーク (おそらく別のルーター) に送信します。
答え1
当初の想定は完全には正しくありません。あなたが「ルーター」と呼んでいるものは、2つのデバイスが1つになったものです。つまり、2ポートのルーターが内部で複数ポートのルーターに接続されています。イーサネットスイッチ(例はこちら図。
これは、コンピュータがはレイヤー2で直接接続され、互いにパケットを送信できるそれなしルータ コアを経由し、スイッチ チップによってポート間で中継されるだけです (ルータにはスイッチ内に独自の「ポート」があります)。
したがって、Wireshark を使用してパケットを見ると、パケットが互いの MAC アドレスを直接使用していることがわかります。一方、「外部」パケットの宛先は常にルーターの MAC アドレスです。
(私は、あなたがほとんどの家庭で見られる典型的な「無線ルーター」について話していると思います。これは、この種の質問の一般的な原因です。より大きなネットワークでは、別サブネットごとに 1 つのポートを持つルーター、いくつかの個別のスイッチ (おそらくマスター スイッチ 1 つとフロア/部屋ごとに 1 つ)、およびそれらのスイッチに接続された数十台のコンピューター。
Wi-Fiネットワークとほぼ同じですが、「スイッチ」が「ワイヤレスブリッジ」または「アクセスポイント」に置き換えられています。どちらの場合も、接続されたコンピューターはレイヤー2でパケットを直接送信できます。それなしルーターを通過します。
コメント:
ルーターと述べたとき、私は実際はスイッチを意味していました。私の間違いです。私のポイントは、サブネットワーク内の各コンピューターは互いに接続されているのではなく、スイッチに接続されており、スイッチがパッケージを正しい宛先に渡すことができるということです。イーサネット フレームにはサブネット マスクが含まれていません。スイッチはすでにこの情報を持っているため、正しいスイッチングを行うためにサブネット マスクは必要ありません。
これも間違いです。スイッチにはこの知識がありません。スイッチコアはレイヤー2で動作し、何でもIP について - 純粋に「宛先 MAC アドレス」フィールドに基づいてイーサネット フレームを転送します。
したがって、ホストは、宛先として使用する MAC アドレスを判断するためにサブネット マスクを必要とします。
ピアが同じサブネット内にある場合、リンク上定義により、イーサネット フレームの宛先はピアの MAC になります。
仲間のために外サブネットの場合、イーサネットフレームにはゲートウェイの宛先として MAC を使用します。
(これはデフォルト設定に適用されます。一部の特殊なスノーフレーク ネットワークではこれが変更され、たとえば、ほとんどのオペレーティング システムでは、追加のサブネットに「オンリンク」ルートを追加できます。逆に、一部のスイッチでは、ARP 応答を偽装するように設定され、「オンリンク」トラフィックもゲートウェイを強制的に通過するようにできます。)
答え2
コンピュータはどのようにして宛先住所同じサブネット内または別のサブネット内にありますか?
チェック中ローカルアドレスそしてそのサブネットマスク。
いくつかの例を見てみましょう:
私のコンピュータに IP があり192.168.0.1
、マスクが である場合、から まで255.0.0.0
のアドレスはすべて同じサブネット内にあることを意味します。他のすべてのコンピュータへのパケットはルーターを通過する必要はなく、直接送信できます。ARP パケットを送信して宛先コンピュータの MAC アドレスを取得し、パケットを送信します。192.0.0.0
192.255.255.255
しかし、私のコンピュータに IP があり192.168.0.1
、マスクが である場合255.255.255.128
、同じサブネット内のコンピュータは IP アドレスから までのみになります192.168.0.0
。192.168.0.127
これらのコンピュータには直接アクセスできます (ARP を送信し、MAC アドレスを検索するなど)。たとえば、他のアドレスには、192.168.0.200
ルーターを経由してアクセスする必要があります。
答え3
IPに関して明らかでないことは、すべてのIPデバイスがそれ自体がルーターである。
これは、通常の PC で「route print」コマンドを実行すると確認できます。ローカル イーサネットまたは WiFi セグメントと、ローカルホスト ネットワークの 2 つのネットワークに接続されています。すべてのパケットは、どのネットワークに配置するかを決定する必要があります。
これは、コンピュータを 2 つのネットワーク (たとえば、「パブリック」ネットワークと「プライベート」ネットワーク) に接続すると、さらに顕著になります。この場合、パケットを送信するネットワークを決定するために、サブネット マスクが必ず必要になります。
多くの人は、単一のネットワーク接続を持つ PC が誤って構成されたサブマスクで動作する可能性があることに偶然気付きます。つまり、すべてをゲートウェイに送信してしまうことになります。
答え4
TCP/IP は、あなたが示唆するように設計されている可能性があります。つまり、リーフ ノードがすべてをルーターに送信し、ルーターがそれを送信元と同じサブネット上にある可能性のあるターゲットに転送します。
しかし、これは次の 2 つの理由から最適な設計ではありません。
帯域幅の消費量が増える: 同じサブネット上のデバイス間のすべてのパケットは、送信側からルーターに 1 回、ルーターから受信側に 1 回と、2 回送信される必要があります。ルーターがネットワーク スイッチを兼ねているネットワークでは、いずれにしてもスイッチを通過するため、実際には帯域幅は余分に消費されません。ただし、すべてのネットワーク テクノロジがこのように動作するわけではありません。元のイーサネット設計はバス テクノロジであり、中央スイッチやリピータはありませんでした。
ルータにさらに負荷がかかります。ルータがスイッチを兼ねている場合でも、より単純なレイヤ 2 スイッチングではなく、レイヤ 3 ルーティング実装まで行う必要があるため、作業が少し増えます。
TCP/IP の設計を具体化する一般的な考え方は、エンド ノードはインテリジェントなデバイスであるため、一部の作業を実行できると想定されているというものです。エンド ノードは、バックボーン ルーターのようにネットワーク トポロジ全体を把握している必要はありませんが、初期のローカル対リモート ルーティング タスクの一部を実行できるだけのローカル環境に関する知識は持っています。この単純な初期ルーティングを実装するのに、それほど多くのコードは必要ありません。
さらに、ルーター以外のデバイスは、必ずしも 1 つのサブネット上にあるとは限りません。PC に複数のネットワーク カードを簡単に搭載できます。多くの PC には、イーサネットと WiFi の両方が搭載されています。また、各ネットワーク カードは異なるサブネットに接続でき、使用するネットワーク カードを決定するために、アドレスとサブネット マスクが使用されます。仮想マシンを実行する場合、仮想マシンをホスト システムに接続する仮想サブネットが存在する可能性があります。