web-dev-qa-db-ja.com

サブネットがどのように機能するかのセマンティクス

IP 1.2.3.4とサブネットマスク255.255.255.0が構成されたHost1がルーターに接続されているとします。

次のステートメントは絶対的に意味的に正しいですか?

「ルーターは、Host1によって送信されたパケットをデフォルトゲートウェイに転送します接続されているすべてのインターフェイスの場合のみインターフェイスの構成済みアドレスをビット単位でかつHost1のサブネットマスクと等しくないHost1のネットワークアドレス」?

特に、宛先アドレスがHost1と同じサブネット上にあるが、ローカルネットワークには存在しない場合は、1.2.3.50と言います。ルーターがデフォルトゲートウェイに転送しないというのは本当ですか?

最後に、Host1/0のサブネットマスクを(ばかげて)選択した場合、これはインターネット全体をホストから効果的にブロックしますか?ルーターはスイッチとして機能し、接続されているすべてのインターフェイス(gateawyインターフェイスを除く)にすべてのパケットをスパム送信し、neverデフォルトゲートウェイに何かを転送しないためです。 ?

1
JSStuball

「ルーターは、接続されているすべてのインターフェースについて、インターフェースの構成済みアドレスがビット単位で、Host1のサブネットマスクがHost1のネットワークアドレスと等しくない場合にのみ、Host1から送信されたパケットをデフォルトゲートウェイに転送します。」

従来のIPルーティングでは、そうです。パケット転送は、ルーティングテーブルから最も具体的な一致するルートを選択することによって行われます(「接続されたインターフェイス」と「デフォルトゲートウェイ」の間に特別な区別はなく、どちらも単なる標準ですルート)。したがって、ルーターにパケットに一致する2つのルートがあります。1つは0.0.0.0/0(デフォルトゲートウェイ)用で、もう1つは1.2.3.0/24(ローカルサブネット)用です。後者が常に優先されます。

ルーターは必ずしもデフォルトゲートウェイを持っているとは限らないことに注意する必要があります(特にいわゆる「 デフォルトフリーゾーン 」では、これは実際には絶対にすべてに対してより具体的なルートがあることを意味します)。

また、ルーターは宛先ベースのルートマッチング以上のことを行う可能性があるため、「従来のIPルーティング」と言います。たとえば、IPv6では、一部のシステムはsourceおよびdestinationと一致するルートをサポートします。例えばルートfrom ::/0 to ::/0 via <gw1>from 2001:db8::/48 to ::/0 via <gw2>を持つことができます。

プロトコルまたはファイアウォールマークによってパケットに一致する可能性のあるポリシーベースのルーティングを実装することも(IPv4とIPv6の両方で)一般的です。ルータに2つのアップストリーム(2つのデフォルトルート)がある場合、ルーティングテーブルがアップストリーム2を優先する場合でも、アップストリーム1から受信したパケットの応答が同じアップストリーム1に送信されるようにポリシールーティングを使用することがよくあります。

特に、宛先アドレスがHost1と同じサブネット上にある場合(1.2.3.50など)、ローカルネットワーク上に存在しない場合でも、ルーターがデフォルトゲートウェイに転送しないというのは本当ですか?

はい。ルーティングテーブルに宛先がローカルであると示されているが、ルーターがARP/NDP応答を受信できない場合、ルーターは別のあまり具体的でないルートにフォールバックしません。すぐに諦めて、ある種のICMPエラー(おそらく「宛先」)を返します。ホスト到達不能"。

(宛先が送信元と同じネットワーク内にあるかどうかは、通常、何の影響もありません。パケットが到着したときと同じインターフェイスからパケットを送信することを意味する場合でも、ルーターは同じように動作します。)

最後に、(ばかげて)Host1に/ 0のサブネットマスクを選択した場合、[...]ルーターはスイッチとして機能し、接続されているすべてのインターフェイス(ゲートウェイインターフェイスを除く)にすべてのパケットをスパム送信し、何も転送しません。そのデフォルトゲートウェイ?

ホストのサブネットマスクを変更しても、ルーターには影響しません。ルータは、他のホストで設定されているサブネットマスクを認識していません。 独自のインターフェースがどのように構成されているかに従って動作します。 (逆に、ホストはルーターがどのように構成されているかを知りません。)

一部のインターフェイスで/ 0サブネットマスクを持つようにルーターを直接構成した場合、ルーターは絶対にスイッチのように機能し始めません。それはまだルーターとして機能しますが、以前にデフォルトルートがあった場合、現在は2つのデフォルトルートがあります-そのうちの1つは、すべてのホストがローカルであると主張するだけです。指定されたインターフェース。

ルーターがこの2番目のデフォルトルートを優先する場合でも、通常の「ローカルサブネット」の動作が表示されます。ルーターは、このインターフェイスですべての宛先を直接ARP/NDPしようとし続けます(イーサネット/ Wi-Fiなどのブロードキャストインターフェイスであると想定)。 、およびARP応答を受信し、宛先のMACアドレスを学習するまで、パケットを転送しません。

また、Hostに/ 0サブネットマスクを設定すると、基本的に同じことが起こります。2つのデフォルトルート(1つはローカル)であるため、ホストはARPクエリを実行しようとします。すべての宛先に対して失敗します。 (ホストとルーターの唯一の違いは、ホストは受信したパケットを転送しませんが、ルーターは転送します。それ以外の場合は、ルーティングテーブルをほぼ同じ方法で処理します。)

最後に、(ばかげて)Host1に/ 0のサブネットマスクを選択した場合、これはインターネット全体をホストから効果的にブロックしますか?

通常はそうです。ホストは、実際にはローカルではない宛先のARPクエリで成功することは決してないからです。

ただし、これらのクエリに対してルーターのなりすまし応答を行うことができます。これは「プロキシARP」と呼ばれる機能です。これを有効にすると、ホストが離れたホストに対してARPクエリを実行しようとすると、代わりにローカルルーターのMACアドレスが学習され、その時点から、ホストが通常のゲートウェイルートを持っているかのようにすべてが機能しているように見えます。 (唯一の違いは、ホストがhugeARPキャッシュを持つことになることです。)

これは、ホストが標準サブネット(たとえば、/ 24)上にあると考えているが、ローカルルーター以外にイーサネットフレームを実際に送信できない場合に、より一般的に使用されます。ホスティング会社は、「信頼できる」ルーターポート(ポート分離)との間を除くすべてのパケットをドロップし、ルーターでプロキシARPを有効にするようにスイッチを構成する場合があります。これにより、同じサブネット上の顧客間でも、通常はバイパスするルーターのファイアウォールルールに従ってトラフィックをフィルタリングできます。

5
user1686

あなたの例(ip:1.2.3.4マスク:255.255.255.0)では、宛先が1.2.3.0-1.2.3.255以外のすべてのパケットがゲートウェイに送信されます。

宛先がネットワーク(1.2.3.50)に属しているが存在しない場合、パケットはゲートウェイにも送信されません。

ホストにサブネットマスク/0(0.0.0.0)がある場合、ゲートウェイには何も送信されません