Ubuntu 16.04 LTS で kvm/libvirt 仮想化とネットワーク名前空間に問題があります。私がやりたいのは、次のフェンスで囲まれたセットアップです。
- 1 つのネットワーク名前空間 (フェンス)
- 名前空間内の 2 つの Linux ブリッジ。
- 各ブリッジには独自の IP ネットワークがあります。
- これら 2 つのブリッジ間の IP 転送を許可します。
- 2 つの VM。VM1 は bridge1 に接続され、VM2 は bridge2 に接続されています。
- VM1 を VM2 に ping します。
意図は、外の世界と通信するホストの残りのネットワーク設定から完全に独立した私のラップトップで小さなラボを取得することです。ネットワーク名前空間がこれを達成する方法であるように思えますが、いくつかの障害にぶつかりました.
これまで、次のように設定しました。
ip netns add internalSpielwiese
ip netns exec internalSpielwiese bash
ip addr add 127.0.0.1/8 dev lo
ip link set lo up
ip link add name iBr0 type bridge
ip addr add 172.0.0.1/24 dev iBr0
ip link set iBr0 up
ip link add name iBr1 type bridge
ip addr add 172.0.1.1/24 dev iBr1
ip link set iBr1 up
名前空間内の ips への ping は成功します。IP 転送が有効になっています。名前空間の外では、ブリッジは表示されません/存在しません。今度は、libvirt のブリッジを公開する時が来ました。しかし、うまくいきません。このxmlで試してみました
<network>
<name>internalBr0</name>
<uuid>3f4647d9-0c19-509f-b512-9cac91c7149b</uuid>
<forward mode='bridge'/>
<bridge name='iBr0'/>
</network>
および適切な virsh net-define および net-start コマンド。VM の xml ファイルを編集して VM を起動しましたが、結果は次のようになりました。
virsh # start kirke2
error: Failed to start domain kirke2
error: Cannot get interface MTU on 'iBr0': No such device
明らかに、libvirt は名前空間 internalSpielwiese で iBr0 を見つけられませんでした。いくつかのグーグル検索の後、libvirt はネットワーク名前空間を処理できないという印象を受けました。それとも方法はありますか?どのように?