web-dev-qa-db-ja.com

仮想ブリッジを介してeth0にリンクされたレイヤー2仮想インターフェースの作成

こんばんは、

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

私がすでに見つけたソリューションのほとんどはレイヤー3(つまりIPアドレス)の使用に関連しており、残念ながらこれらのソリューションは私には機能しません。レイヤー3の構成はVM内で行う必要があり、仮想NICまた、仮想スイッチは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 vnic0で50、ネイティブVLAN vnic1で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ネットワークがパケットをブロードキャストするが、それらを受信しないことです。私のネットワークは超おしゃべりではありませんが、vbr0を介してvnic0によって受信された少なくともいくつかのブロードキャストパケットが表示されることを期待しています。しかし、それは起こっていません。 vnic0に接続されているVM内でDHCPを実行しようとすると、タイムアウトになりますが、eth0に接続されているDHCPサーバーは完全に機能しています。

2
Oliver Jones

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

これは定期的に発生します、なぜ人々がそれらを使用するように主張するのか私にはわかりません。ダミーデバイスが役立つのは 長期間使用するアプリケーションが特定のIPアドレスにバインドできるようにするため であるため、必要に応じて、ダミーデバイスを移動して他のより寿命の短いデバイスにブリッジすることができます。

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

3
dirkt

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

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

VMに割り当てることができる00:11:22:33:44:55 MACアドレスの緩いvnic0になるはずです。それらについては、上記の macvlan ページで説明されています。 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
2
jaem