ホームネットワークから192.168.0.Xにpingを実行すると、外部WAN IPではなく、ネットワーク内でそのアドレスを検索しようとします。ただし、74.125.224.163にpingを実行できます。 pinggoogle.com。
内部ネットワークを74.125.224.Xに設定して、pingを実行しようとすると、ネットワーク内でのみ表示されますが、Googleのサーバーと通信できると思います(変更は試みていません)。同じIPアドレス。
これはどのレベルで分離されていますか?パケットは、IPアドレスの宛先がLANではなくWANに送信されることをどのように認識しますか?
パケットは何も知りません–宛先アドレスのみを伝送します。移動するパスは、コンピューター、ルーター、およびインターネット上の他のルーターに保持されているルーティングテーブルによって決定されます。
コンピュータからパケットが送信されたとき...
OSはまず、宛先アドレスがコンピューターのネットワークインターフェイスに割り当てられているかどうかを確認します。はいの場合、OSはそれ自体を消費します–パケットはコンピュータの外部には送信されません。
それ以外の場合は、宛先アドレスに一致するすべてのルートをルーティングテーブルで検索します。いくつかあるかもしれません–OSは最も長い一致する「プレフィックス」を持つものを選びます。
宛先アドレスに一致するルートがない場合、パケットはドロップされます。
たとえば、自分の住所が192.168.1.1
..の場合.
コンピュータのルーティングテーブルは次のようになります。
10.11.12.0/24
には、ppp0
インターフェースを介して直接アクセスできます192.168.1.0/24
には、eth0
インターフェースから直接アクセスできます。10.42.0.0/16
には、10.11.12.50
を経由してアクセスできます。0.0.0.0/0
には、192.168.1.254
を経由してアクセスできます。/
の後の数字は、比較するビット数を示します。 CIDR表記 を参照してください。例えば。 /16
の場合、両方のアドレスの最初の16ビット(左端のビットから開始)は等しくなければなりません。 /0
の場合、何も比較されないため、ルートはどのアドレスとも一致します。これが「デフォルトルート」です。
実際のルーティングテーブルにもメトリックがあります。たとえば、ラップトップをイーサネットとWiFiの両方を介してLANに接続した場合、同じネットワークへの2つの同一ルートがありますが、イーサネットルートはWiFiよりも高速であるため、メトリックが低くなります。 。簡単にするために、ここではメトリックを省略しています。
192.168.1.5
にpingを実行すると、OSは次のようになります。
192.168.1.5
へのルートを探す192.168.1.0/24
および0.0.0.0/0
を検索します192.168.1.0/24
を選択します。プレフィックスが長いため(24> 0)eth0
インターフェースを指していることを確認してくださいeth0
ケーブルを介してパケットを送信しますパケットはイーサネット(またはWiFi、または...)を経由して宛先コンピューターに直接送信されます。
74.125.224.163
にpingを実行すると、OSは次のようになります。
74.125.224.163
へのルートを探す0.0.0.0/0
192.168.1.254
があることを確認してください192.168.1.254
へのルートを探します。これも直接到達可能です(2番目のゲートウェイを経由せずに)192.168.1.0/24
eth0
インターフェースを指していることを確認してくださいeth0
ケーブルを介してパケットを送信しますパケットはイーサネット(またはWiFi、または...)を経由して192.168.1.254
(ホームルーター)に送られ、次に独自のルーティングテーブルを使用して同じプロセスが繰り返され、パケットがネクストホップ(ISPのISP)に送信されます。ルーター)。
(したがって、Googleと同じネットワークを使用している場合、自分のネットワークへのルートが常に最初に選択されるため、Googleに到達できなくなります。)
いいえ、コンピュータは最初にホームネットワーク内でそのアドレスを検索しようとはしません。ルーティングテーブルを調べます。
その表には、次のルールが含まれています
この表には、特定の「内部」ネットワークと「外部」ネットワークはありません。
ただし、単一のNICmスイッチとルーターを使用した一般的なセットアップでは、通常、次のようにこれらのテーブルに入力します。
コンピュータは、パケットが宛先にどのように到着するかを気にしません。知っていることはすべて、ローカルで何をして残りを委任するかだけです。
これはあなたの質問によく似ているかもしれませんが、旅行の仕方を知っているのはパケットではありません。パケットで何をすべきかを決定するのは、ローカルルーティングテーブルを使用するローカルコンピュータです。
ここで、内部ネットワークを74.125.224.Xに設定し、(更新されたルーティングテーブルを使用して)pingを実行しようとすると、ネットワークスタックは自分のIPをpingしようとしていることを認識します。自分のコンピューターからpingに対する応答が得られます。あなたはグーグルではないので、あなたは忘れることができますグーグルで回る検索エンジンを介した答え。それは実際のグーグルコンピュータに到達することは決してないだろう。
彼らへのパケットがあなたのコンピュータを離れることは決してないので、彼らとの通信は不可能でしょう。代わりに、ループバックを介して直接ルーティングされます。
ループバックを無効にするか、コンピューターにこれらのパケットをデフォルトルーターとインターネットにプッシュするように明示的に指示した場合、回答は得られません。他のすべてのコンピュータは、パッケージをGoogleのrealコンピュータに転送し、ネットワークには転送しません。
お使いのコンピュータには、 サブネットマスク とIPアドレスがあります。ネットワークソフトウェアは、サブネットマスクを使用して、IPアドレスがローカルサブネット上にある(したがって直接接続できる)か、別のネットワーク上にある(したがってデフォルトゲートウェイ経由で接続する必要がある)かを判断します。
サブネットマスクで定義されているように、Googleサーバーがコンピューターと同じサブネット内にあるようにIPアドレスを変更した場合、はしませんそのGoogleサーバーと通信できるようになります。