web-dev-qa-db-ja.com

Linuxでブリッジを作成し、VirtualBoxのようなネットワークを共有する

私はローカルネットワーク192.168.1.1/24を持っています。私はlibvirtを使用しており、仮想マシンでもこのネットワーク、少なくとも192.168.1.128/25などのサブネットワークを使用する必要があります。ただし、すべてのlibvirtブリッジオプションは別のネットワークを作成し、ネットワークを使用するように設定できません。VirtManagerでエラーが発生し、転送されたネットワークを手動で定義します。

`` `

 <network>
    <name>mynetwork</name>
    <bridge name="mybr0" />
    <forward mode="route" dev="em1"/>
    <ip address="192.168.1.1" netmask="255.255.255.0">
      <dhcp>
        <range start="192.168.1.128" end="192.168.1.254" />
      </dhcp>
    </ip>
  </network>

`` `

次のエラーが発生します。

virsh # net-start mynetwork
error: Failed to start network mynetwork
error: internal error: Network is already in use by interface em1

VirtualBoxには、ルーターのDHCPサーバーからIPを取得するだけのブリッジ接続を作成するオプションがあり、ネットワーク内の別のマシンのように機能します。どうすればこれを達成できますか? bridge-utilsパッケージを使用して手動でブリッジを作成しようとしましたが、今のところうまくいきません。

編集:私はUbuntu14.04を使用しています。

1
Mustafa

KVMでブリッジ接続を作成する方法を説明できますが、VirtualBoxとは異なります。ゲストマシンのIPアドレスはDHCPサーバーによって割り当てられませんが、ユーザーが選択した静的IPであり、できれば外部にあります。 DHCPプール。

ケーブル接続を使用する場合、 libvirt Wikiページ は、イーサネットインターフェイスをVMとブリッジする方法を示しています。

注意:上記はイーサネットIFでのみ機能します。ワイヤレスインターフェイスをブリッジすることは可能ですが、この方法ではできません。

Bohdi Zazenによるこの素敵な投稿 これを行う方法を示しています。 arp-proxyを使用して、arpトラフィックを特別に細工されたtapインターフェイスに中継します。古い機能は1つだけです。それは、tunctlコマンド/パッケージを使用したtapインターフェイスの作成です。それをしないでください、iprouteはあなたのためにそれを世話することができます:

    ip tuntap add tap0 mode tap user root
    ip link set tap0 up

そうでなければ、彼の解決策は完璧に機能します。

静的IPを使用するという考えが耐えられない場合は、説明されているように、ブリッジではなくNAT)を実行できます ここ

2
MariusMatutiae