web-dev-qa-db-ja.com

CentOS、KVM、VLAN、およびブリッジング

KVMを使用して仮想化ゲストのネットワークを設計する手助けが必要です。私のマシンはCentOS7を実行しており、NICが2つあります。以下を実現したい

  • 1つの物理インターフェース(em1)は、ホストアクセスにのみ使用されます。ホストは、タグなしトラフィックと静的IPアドレスを使用した非常に通常の構成になります。
  • もう1つの物理インターフェイス(em2)は、異なるVLANのタグ付きトラフィックを受信します。
  • 仮想マシンは、特定のVLANのトラフィックのみを認識します。ゲスト間通信は、KVM内で行う必要はありません。
  • ゲストが他のネットワークをスプーフィングするために内部NIC構成を変更しないようにするために、仮想NICタグなしのトラフィックを使用することをお勧めします。

コンセプトグラフィックへのリンク

私はlibvirtを初めて使用し、NetworkManagerにも慣れていません。ドキュメントを検索しましたが、ネットワークマネージャーを介してこのブリッジを構成できるかどうかという質問から始めて、矛盾する情報が見つかりました。 KVMに切り替えを行わせる可能性についても読みました。

直接の構成ヘルプ、または(CentOS 7で)非推奨のツールを使用しない最新のドキュメントへのポインター、またはその間に削除された問題の回避策のいずれかをいただければ幸いです。

前もって感謝します。

3
taranion

あなたがしたいことは、便利ではありますが、それほど簡単なことではありません。基本的に、3つの可能性があります。

  1. open vSwitchスタックを使用して、ブリッジ/スイッチを仮想化します
  2. 各VLANに専用のソフトウェアブリッジを使用する
  3. 最近のカーネルでは、 "bridge VLAN filter" 機能を使用して、すべてを統治する単一の「インテリジェント」ブリッジを持つことができます。

ソリューションn.1は(おそらく)最も完全ですが、セットアップが最も困難です。

ソリューションn.2は、ラボテストに採用したものです。たとえば、VLAN 10 and 20の場合、同様の設定を作成する必要がありました。

 eth0(物理インターフェイス)-> eth0.10(VLANタグ付き)-> br10(eth0.10と相対仮想qemu/kvmインターフェイスとのブリッジ)
 eth0(物理インターフェイス)-> eth0 .20(VLANタグ付き)-> br20(eth0.20と相対仮想qemu/kvmインターフェースを備えたブリッジ)

タグ付きブリッジにもタグなしトラフィックが必要な場合は、must次のebtablesルールを発行する必要があることに注意してください:ebtables -t broute -A BROUTING -i eth0 -p 802.1Q -j DROPこのルールは、Linuxネットワークスタックが着信パケットを管理する方法のために必要です。詳細については、 ここここ 、および ここ を参照してください。

ソリューションn.3は賢いものでなければなりませんが、カーネルサポートが必要です(そしてlibvirtも)。 CentOS7には十分な最近のカーネルがあるはずですが、他のすべてのソフトウェアが準備できているかどうかはわかりません。

ソリューションn.4(ボーナス1):ゲスト/ホスト通信が必要ない場合は、macvtapドライバーを確認してください。私はそれを使用していませんが、同様のソリューションをセットアップできるはずです。

 eth0(物理インターフェイス)-> eth0.10(VLANタグ付き)-> eth0.10上のMAC vtap 
 eth0(物理インターフェイス)-> eth0.20(VLANタグ付き)-> MAC vtap eth0.20 

私にとって、ゲスト/ホストとの間で通信することの不可能性は、制限が多すぎますが、要件は異なる場合があります。

最後に、見てください ここ 、それは読む価値があります。

3
shodanshok