我使用 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 的结果。