レイヤ2仮想インターフェイスを作成し、仮想ブリッジを介してeth0に接続する

レイヤ2仮想インターフェイスを作成し、仮想ブリッジを介してeth0に接続する

おやすみなさい、

仮想マシンと連携するには仮想インターフェイスを作成する必要があるため、難しい問題があります。ただし、レイヤ2のみ可能です。仮想マシンは、事前設定されたMACアドレス(このアダプタに1つを設定できます)と通信します。 、VMは対応するアダプタを使用します。それ以外の場合、VM はあらかじめ設定された他の MAC アドレスをなりすまします。 )

私が見つけたほとんどのソリューションはレイヤ3(IPアドレスなど)の使用に関連していますが、残念ながら私には機能しません。レイヤ 3 構成は VM 内部で実行する必要があり、仮想 NIC と仮想スイッチは VM 内部で構成する必要があります。 L2トラフィックのみ。

セキュリティと運用上の理由から、IPアドレス設定はまったく必要ありません(たとえば、IPv4およびIPv6専用リンクローカルまたはレイヤ3を完全に無効にするなど)。

簡単に言えば、次のトポロジが必要です。

My VM <-> vnic0 <-> vbr0 <-> eth0 <-> external network

(実際のアダプターeth0と共に)vbr0という名前の仮想ブリッジに接続するvnic0という名前の仮想アダプターを作成する必要があります。可能であれば、システム管理者の対話なしで再起動後に設定が自動的に機能するようにするRHEL 7.4 / CentOS 7.4用の設定ファイルを探しています。将来的には、すべてvbr0に接続されているvnic1、vnic2、vnic3などを作成する必要があるかもしれません。

VLANの使用は必ずしも必要ではありませんが(すべてが非VLAN /ネイティブVLANにあると仮定して)、天才の場合は、設定方法(ネイティブVLAN 50を使用してタグ付けされたdot1qトラフィックを有効にするなど)を表示できます。 vnic0、vnic1ネイティブVLAN 51などがオンで、eth0がトランクとして機能すると(VLANの全部または一部がそれに沿って移動できるようにする)、深刻なブラウニーポイントが得られます。 :)

私は以下を試しました:

modprobe dummy
ip link set name vnic0 dev dummy0
ip link add vbr0 type bridge
ip link eth0 down
ip link set dev eth0 master vbr0
ip link set dev vnic0 master vbr0
ip link set vbr0 up
ip link set vnic0 up
ip link set eth0 up

最大の問題は、私のvnic0ネットワークがパケットをブロードキャストするが受信しないことです。私のネットワークはあまり活発ではありませんが、vnic0がvbr0を介して受信する少なくともいくつかのブロードキャストパケットを見たいです。しかし、これは起こりませんでした。 eth0に接続された完全に動作するDHCPサーバーがあっても、vnic0に接続されている仮想マシン内でDHCPを実行しようとするとタイムアウトが発生します。

ベストアンサー1

仮想デバイスを使用しない

このようなことがあまりにも頻繁に発生しますが、なぜ人々がそれを使用しようとしているのかわかりません。仮想デバイスは便利です。寿命の長いアプリケーションが特定のIPアドレスにバインドできるようにする、必要に応じて仮想デバイスを移動し、寿命の短い他のデバイスにブリッジできます。

あなたが望むものマクエバーランドあるいは、vnic*名前にもかかわらず、macvlanはVLANタグ付けとは無関係です。 macvlanは既にプライマリインターフェイス(eth0)にブリッジされているレイヤ2で実行されており、必要に応じてブリッジされたデバイスとのやり取りを制限できるいくつかのモードのいずれかを選択できます。

おすすめ記事