Ubuntu(服务器 9.04)中的 KVM 桥接问题

Ubuntu(服务器 9.04)中的 KVM 桥接问题

我使用 Ubuntu+KVM 创建虚拟环境。

以下是配置,但是 DHCPD 把 IP(192.168.1.2)借给了 ubuntu02,并且好像把同一个 IP 借给了 ubuntu03

router/dhcpd - ubuntu01(host) 192.168.1.100
             - ubuntu02(kvm)  192.168.1.2
             - ubuntu03(kvm)  192.168.1.2?

怎么了?

ubuntu01:/etc/网络/接口

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

ubuntu0[23]:/etc/网络/接口

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

我通常执行这个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

答案1

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

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

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

这样每个虚拟机都会收到一个唯一的 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

答案2

他们共享 MAC 地址吗?

检查两个虚拟机中的 ifconfig 的结果。

相关内容