Ubuntu(服务器 9.04)中的 KVM 桥接故障

fre*_*wra 2 ubuntu bridge kvm-virtualization

我用 Ubuntu+KVM 制作虚拟环境。

是下面的构成,但是是DHCPD借给ubuntu02的IP(192.168.1.2),貌似是借给ubuntu03的IP

router/dhcpd - ubuntu01(host) 192.168.1.100
             - ubuntu02(kvm)  192.168.1.2
             - ubuntu03(kvm)  192.168.1.2?
Run Code Online (Sandbox Code Playgroud)

怎么了?

ubuntu01:/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
  address 192.168.1.100
  network 192.168.1.0
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  bridge_ports eth0
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12
  bridge_stp off
Run Code Online (Sandbox Code Playgroud)

ubuntu0[23]:/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
Run Code Online (Sandbox Code Playgroud)

我通常执行这个shell命令 sudo kvm -hda ubuntu.img -m 512 -localtime -net nic,model=pcnet -net tap,script=/etc/qemu-ifup -daemonize -nographic

/etc/qemu-ifup

#!/bin/sh
#sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
sudo /usr/sbin/brctl addif br0 $1
sleep 2
Run Code Online (Sandbox Code Playgroud)

小智 6

LapTop006 是正确的。您的两个 VM 具有相同的 MAC 地址,导致您的 DHCP 服务器为两个 VM 分配相同的 IP 地址。

启动每个虚拟机时,需要添加命令行选项

-net nic,macaddr=aa:bb:cc:dd:ee:ff

这样每个 VM 都会收到一个唯一的 MAC 地址。替换aa:bb:cc:dd:ee:ff您的网络中未使用的任何有效 MAC 地址。我只00:00:00:00:00:01用于第一个虚拟机,00:00:00:00:00:02第二个虚拟机等等。

我最终创建了一个单独的 shell 脚本来启动每个 VM。例如,要启动我的 OpenSolaris VM,我使用...

#!/bin/bash

vdeq kvm \
    -localtime \
    -hda /data/kvm/opensolaris_hda.raw \
    -hdb /data/kvm/opensolaris_hdb.raw \
    -hdd /data/kvm/opensolaris_hdd.raw \
    -m 1024 \
    -no-acpi \
    -usb \
    -usbdevice tablet \
    -net nic,macaddr=00:00:00:00:00:04 \
    -net tap,script=/etc/kvm/kvm-ifup \
    -cdrom /usr/local/src/CD/osol-0811.iso \
    -boot c
Run Code Online (Sandbox Code Playgroud)