公共桥接

公共桥接

如何在 KVM 中创建虚拟网络适配器(如物理 eth0)?因为我没有物理 NIC。
此外,我需要一个主机专用适配器(如 VMware 中一样)来连接 KVM 中的两个虚拟机。在 KVM 中执行此操作的可能解决方案是什么?

请回复。谢谢

答案1

公共桥接

如果 KVM 主机上只有一个 NIC,并且您希望虚拟机能够访问连接到eth0接口的主网络,那么您必须在物理网络接口上设置一个公共网络桥接(eth0在示例中):

如果没有桥接,你会得到类似的东西/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.0.101
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

要设置桥梁,请eth0用以下方式替换部分:

# The primary network interface
auto br0
iface br0 inet static
    address 192.168.0.101
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    bridge_ports eth0
    bridge_stp off
    bridge_maxwait 5

sudo ifup br0重新启动机器。请注意该bridge_ports eth0部分,它链接物理网卡上的网桥并允许在主网络上访问网桥。

仅限主机(私人桥接)

通过创建公共网桥,您可以让虚拟机通过连接到 的网络在它们之间进行访问eth0。如果您只需要在同一主机上的虚拟机之间进行访问,则可以使用私有网桥(这样您就可以维护您的eth0配置,并且您不必将网络接口绑定到网桥bridge_ports none)。在您的接口配置文件中,您将拥有:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.0.101
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1

# The private bridge
auto br0 inet static
    address 172.16.0.1
    netmask 255.255.255.0
    network 172.16.0.0
    broadcast 172.16.0.255
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0

sudo ifup br0重新启动机器。

您可以使用新创建的网桥(公共或私有br0)作为 KVM 虚拟机的网络设备。如果您使用 vanilla qemu/kvm cli 或使用某些管理工具(virsh、virt-manager、ovirt、proxmox 等),此步骤会发生变化。

来宾配置

在这两种情况下,您都可以像配置网络上具有网络接口的普通主机一样配置虚拟机,并且可以拥有/etc/network/interfaces类似以下内容的内容(例如网络 192.168.0.0/24):

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
   address 192.168.0.102
   netmask 255.255.255.0
   network 192.168.0.0
   broadcast 192.168.0.255
   gateway 192.168.0.1

一些有用的文档:

相关内容