QEMU / KVM仮想マシンをセットアップしており、ブリッジネットワーキングを使用したいと思います。私が読んだすべてのマニュアル/チュートリアルは、物理ネットワークカードでDHCPを無効にし、ブリッジで有効にするように指示します。私が理解していないのは、ブリッジが物理ブリッジ/スイッチのように動作する場合、物理的な物理ネットワークカードにIPアドレスがないため、なぜIPアドレスを割り当てるのですか?この質問は何度も要求されましたが、まだ答えが見つかりませんでした。ここ答えは、仮想マシンがブリッジと通信できるようにします。しかし、なぜ彼らはこのようなことをするべきですか?物理物理システムでは、ブリッジは透過的に機能し、トラフィックのみを転送します。だから私の質問は次のとおりです。
- 仮想ブリッジにはIPアドレスが必要ですが、物理ブリッジには必要ない理由は何ですか?
- NICに仮想ブリッジのIPアドレスがない場合、物理NICは仮想ブリッジのIPアドレスを使用することをどのように知ることができますか?
- 仮想マシンがブリッジと通信する必要がありますが、物理マシンが実際に物理ブリッジと直接通信しないのはなぜですか。
私が意味するものをよりよく説明するためのいくつかの図は次のとおりです。
- ネットワークスイッチを備えた物理ネットワークがどのように機能するかを想像してください。
- 仮想ブリッジがどのように機能するかを想像してください。
- それが実際に動作することをどのように理解していますか?
答え1
- 仮想ブリッジにはIPアドレスが必要ですが、物理ブリッジには必要ない理由は何ですか?
仮想ブリッジにIPアドレスが必要であることは誤解です。それは必要ありません。
あなたは実際にできるIPアドレスを持たない仮想ブリッジがあります。ただし、ホスト自体はその物理インターフェイスのIPを介してまったく接続できず、仮想マシンにのみ接続できます。
エンタープライズ仮想化ホストでは、これは役に立ちます。ゲストVMに接続する必要があるゲストネットワークがある可能性があります。おそらく、仮想化ホスト自体にそのようなネットワークへのアクセスを許可したくないでしょう。ただ各仮想マシンに。これにより、仮想化ホストを管理するために物理的に分離された別の管理ネットワークがあります。このネットワークは別のNICを介してホストに接続されます。いいえ仮想ブリッジのメンバーになります。
- NICに仮想ブリッジのIPアドレスがない場合、物理NICは仮想ブリッジのIPアドレスを使用することをどのように知ることができますか?
物理NICに特定のIPv4アクセラレーション機能がない場合、IPアドレスはNICのペイロードデータにすぎません。デフォルトの物理ネットワークカードは、MACアドレスのレイヤ2でのみ機能します。 IPプロトコルは通常、オペレーティングシステムのネットワークドライバスタックに残るレイヤ3プロトコルです。ifconfig
「NICのIPアドレスを構成」または使用している場合は、物理ハードip addr
ウェア構成を変更する必要はなく、物理NICおよび接続されているオペレーティングシステムレベルのIPを含む抽象構成を変更できます。 NICプロトコルはネットワークカードをサポートします。
物理NICがブリッジのメンバーとして機能するように設定されている場合は、レイヤ3アクセラレーション機能をオフにする必要があります。ブリッジの一部として機能する場合、NICは状態に関係なく着信パケットをすべて受信する必要があります。宛先MACまたはIPアドレスとブリッジコードによって、パケットが転送されるかどうか、およびブリッジのどのメンバーに転送されるかが決まります。プライマリブリッジはIPアドレスに完全に無関心ではありません。ブリッジのすべてのレイヤ 3 機能は、基本ブリッジ機能よりも高く、仮想ブリッジではオプションです。
物理NICがブリッジの一部として設定されているときにIPアドレスとして設定されると、そのNIC(および対応するドライバ)でARP機能が有効になります。ただし、その物理NICによって発行されたARPメッセージは仮想マシンに到達しません。 ARPを介してネットワークセグメント全体に到達するには(正しいレイヤ2機能に必要な場合)、NICドライバは同時に発行されたARPメッセージでARPメッセージを生成する必要があります。メッセージが同時に受信され、NICドライバにはこれを行うコードはありません。
VM に仮想ブリッジがあるということは、ブリッジ IP 範囲の一部が物理的にホストの外部にあり、他の部分がホストの内部の VM 内に含まれることを意味します。ホストが通常どおりNICを使用して仮想マシンの1つと通信しようとすると、パケットは不要にホストからホストが接続されている物理スイッチまたはルーターに送信され、そこから戻ります。ホストを通過し、ブリッジを通過してターゲット仮想マシンに到達します。
これは確かに非効率的であり、実際にはまったく機能しない可能性があります。仮想ブリッジを持つホストが接続されている物理スイッチは、通常、そのホストから発信されたパケットをホスト自体に送り返す理由はありません。
代わりに、ホストからブリッジセグメントに送信されるパケットはブリッジコードを介して送信される必要があり、ブリッジコードは最初にブリッジのどのインターフェイス(仮想または物理)がターゲットに「最も近い」かを照会します。ブリッジが宛先を知っている場合、発信パケットはその宛先に直接送信されます。ホストと対応する仮想マシン間の通信の場合、これは通信が物理ホスト内で完全に発生し、ホスト外の物理ネットワーク帯域幅をまったく使用しないことを意味します。
宛先 MAC アドレスがブリッジに不明な場合、発信パケットは最初にすべてのブリッジ メンバー インターフェイスで送信されます。応答が受信されると、ブリッジは最初のパケットの宛先を知り、効率的な作業方法を返すことができます(上記のように)。 。
ブリッジを含むホストからARP要求が発行されると、要求は仮想マシンにブロードキャストする必要があります。そして物理ネットワークカードの外部に要求が実際に送信されます。みんなネットワークセグメント:ブリッジングコードはこれを実行できますが、単一の物理ネットワークカードでは実行できません。
Linuxブリッジが完全に物理的または仮想的でなければならないという要件はないと思います。 Linuxブリッジが複数の物理インターフェイスを持つことができない理由を理解していません。そして接続された仮想マシンの数。しかし、企業環境では通常、このような「一貫したホスト」を構築したくありません。これは、ダウンタイムがまったく発生しない、扱いにくい重要なインフラストラクチャになる可能性があります。つまり、システム管理者にとっては面倒なことです。
- 仮想マシンがブリッジと通信する必要がありますが、物理マシンが実際に物理ブリッジと直接通信しないのはなぜですか。
別の誤解:仮想マシンはいいえ「ブリッジとの通信」には、ブリッジのIPアドレスが必要です。
しかし、もしあなたが考えるホストと仮想マシンが同じIPネットワークセグメント内で互いに通信するには、ブリッジデバイスにIPアドレスを割り当てる必要があります。
ブリッジデバイスのIPアドレスは、主に通信要求に使用されます。所有者属しない仮想デバイス- ただし、必要に応じて、外部デバイスを介したループなしでホストがIPを介してVMと効率的に通信できます。