ブリッジネットワークはどのように機能しますか?
VirtualBoxのマニュアルを確認しましたが、極端に技術的なことは何もありませんでした(トピックに関する一般的な説明にすぎませんでした)。
ip addr
Linuxの場合)ルーターの[接続されたデバイス]セクションに表示されませんが、ポート転送できますか?VirtualBoxマニュアルの仮想ネットワークの第6章のセクション Bridged networking から:
ブリッジネットワークでは、VirtualBoxはホストシステムのデバイスドライバーを使用して、物理ネットワークアダプターからのデータをフィルターします。したがって、このドライバーは「ネットフィルター」ドライバーと呼ばれます。これにより、VirtualBoxは物理ネットワークからデータを傍受し、そこにデータを注入できるため、ソフトウェアで新しいネットワークインターフェイスを効果的に作成できます。ゲストがそのような新しいソフトウェアインターフェイスを使用している場合、ゲストはネットワークケーブルを使用してインターフェイスに物理的に接続されているかのようにホストシステムに見えます。ホストはそのインターフェイスを通じてゲストにデータを送信し、そこからデータを受信できます。これは、ゲストとネットワークの残りの部分との間にルーティングまたはブリッジを設定できることを意味します。
ウィキペディアから ブリッジング(ネットワーク) :
ネットワークブリッジは、複数のネットワークセグメントを接続するネットワークデバイスです。 OSIモデルでは、ブリッジは、ネットワークレイヤーの下の最初の2つのレイヤーで機能します。
私はこれらのネットワークレベルで作業する個人的な知識はありませんが、上記のことから、VirtualBoxおよび他の仮想マネージャーはシステムドライバーを使用してパッケージをネットワークに挿入し、物理アダプターのふりをしているようです。
すべてのパッケージがすべてのネットワークに送信されると、各デバイスはそのアドレスでマークされたパッケージのみを読み取ります( sniffing を除く)、仮想ドライバーは独自の仮想 MACアドレスをパッケージに注入します 物理的にそのようなアダプタが存在しない場合でも、そのMACアドレスを宛先とするパッケージに応答します。
これは、ネットワークモデルの十分に低いレベルで行われます。そのため、ホストとは異なるMACアドレスでスタンプされるため、上位レベルでこれらのメッセージにホストが反応することはありません。
これは、ハッカーが スプーフィング攻撃IPアドレススプーフィング を使用するのとまったく同じ手法です。
仮想MACアドレスは、仮想マシンマネージャーによって発明されたか、いつでも指定または変更できます。ローカルネットワーク上の他のデバイスのMACアドレスと重複しない正当なMACアドレスを使用できます。
IPアドレスは、他の物理デバイスと同じように、DHCPサーバー(通常はルーター)によってその仮想アダプターに割り当てられます。
パスワードを入力せずにパスワードで保護されたWiFiネットワークに接続できる理由はもっと不可解ですが、VirtualBoxドライバーがネットワークにログオンしたときにホストに返されたトークンを見つけて使用したと推測します。ルーターがネットワークに正式に接続されていないため、ルーターの[接続されたデバイス]セクションに表示されない理由についても説明します。ルーターは転送されたアドレスにパッケージを再送信し、VirtualBoxドライバーが応答するため、転送は引き続き機能します。
最後に、これは multihoming ではありません。これは、複数のアダプタを介して複数のIPアドレスを持つ1つのオペレーティングシステムを実行している1台のコンピュータであり、すべてがこの1つのOSに認識されています。
詳細については、Wikipediaの記事 OSIモデル 、特にOSIレイヤーに関する記事を参照してください。
ブリッジネットワークは、マシンを仮想化するために使用しているソフトウェアはすべて、その仮想マシンが使用するインターフェイスを作成するという概念の下で機能します。この場合は共有ホストマシンのネットワークアダプターであり、ソフトウェアはハードウェアと仮想ネットワークアダプター間のインターフェイスとして機能します。
両方が同じネットワークアダプターを使用していることを理解したので、両方が一致した方法で動作すると想定できます。ホストマシンがDHCPを使用してIPアドレスを取得する場合、VMは同じことを実行できます。静的に設定されている場合なども同様です。
ルーターでDHCPリーステーブルを検索すると、両方のデバイスが表示されます。ルーターの観点から見ると、これらは2つの異なるデバイスです。私の理解では、LANでARPを使用している場合は、両方のデバイスが一意であることがわかります。 VMマシンにバインドされたパケットは、ホストマシンのIPスタックにヒットすることはありません。