仮想ブリッジ経由で eth0 にリンクされたレイヤー 2 仮想インターフェースを作成する

仮想ブリッジ経由で eth0 にリンクされたレイヤー 2 仮想インターフェースを作成する

こんばんは、

VM で使用する仮想インターフェイスを作成する必要があるが、レイヤー 2 のみにする必要があるという、厄介な問題があります。VM は、事前設定された MAC アドレスと通信します (VM が使用するアダプタに MAC アドレスを設定するか、VM が別の事前設定された MAC アドレスをマスカレードします)。

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

セキュリティと運用上の理由から、IP アドレスの構成はまったく必要ありません (つまり、IPv4 と IPv6 の場合はリンク ローカルのみ、またはレイヤー 3 は完全に無効)。

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

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

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

VLAN の使用は厳密には必要ではありません (すべてが非 VLAN / ネイティブ VLAN 上にあると想定できます)。ただし、たとえば、タグ付き dot1q トラフィックを、ネイティブ VLAN 50 を vnic0 に、ネイティブ VLAN 51 を vnic1 などに設定し、eth0 をトランクとして機能させ (すべての VLAN またはサブセットの 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 に接続された VM 内で DHCP を実行しようとするとタイムアウトになります。

答え1

ダミーデバイスを使用しないでください

これは頻繁に起こりますが、なぜ人々がそれを使い続けるのかわかりません。ダミーデバイスは役に立つだけです長期間稼働するアプリケーションが特定のIPアドレスにバインドできるようにする、ダミーデバイスを移動し、必要に応じて他の短寿命デバイスにブリッジすることができます。

あなたが欲しいのはマックVLANまたは、 を置き換える複数の macvlanvnic*があります。名前にもかかわらず、macvlan は VLAN タグ付けとは何の関係もありません。macvlan はレイヤー 2 で動作し、すでにマスター インターフェイス ( eth0) にブリッジされている状態になっています。必要に応じて、ブリッジされたデバイスの相互作用を制限する可能性のある複数のモードから 1 つを選択できます。

答え2

仮想イーサネット インターフェイスは、ペアで作成され、パッチ ケーブルのように動作する仮想インターフェイスです。

ip link add name nic0 type veth peer name vnic0 address 00:11:22:33:44:55
ip link set dev eth-VM master vbr0
ip link set nic0 up
ip link set vnic0 up

vnic0最終的に、VMに割り当てることができるMACアドレスが00:11:22:33:44:55になります。これについては、マックVLAN上記のページ。macvlan についてはあまり詳しくありませんが、これも同様に機能するはずで、ブリッジは使用しないでしょうvbr0

ip link add link eth0 name vnic0 address 00:11:22:33:44:55 type macvlan mode bridge
ip link set vnic0 up

関連情報