在Linux中创建桥接器,像VirtualBox一样共享网络

在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,但目前还没有成功。

编辑:我正在使用 Ubuntu 14.04。

答案1

我可以向您展示如何在 KVM 中创建桥接连接,但与 VirtualBox 相比有一个区别:客户机的 IP 地址不是由 DHCP 服务器分配的,而是您选择的静态 IP,希望在 DHCP 池之外。

如果您使用有线连接,那么libvirt 维基页面展示如何桥接以太网接口和虚拟机。

请注意:以上仅适用于以太网 IF。可以桥接无线接口,但不能通过这种方式。

Bohdi Zazen 的这篇精彩文章演示如何执行此操作。它使用 arp-proxy 将 arp 流量中继到特制的轻敲界面。只有一个过时的功能,即创建轻敲通过 tunctl 命令/包进行交互。不要这样做,路由可以为您解决这个问题:

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

否则,他的解决方案就完美无缺了。

如果你无法忍受使用静态 IP,你可以使用 NAT 而不是桥接,如下所述这里

相关内容