我有一个局域网 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 而不是桥接,如下所述这里。