我使用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 /networking/接口
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 /networking/接口
# 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
LapTop006是正确的。 两个虚拟机都有相同的MAC地址,导致您的DHCP服务器为两个虚拟机分配相同的IP地址。
当您启动每个虚拟机时,您将需要添加命令行选项
-net nic,macaddr=aa:bb:cc:dd:ee:ff
这样每个虚拟机都会收到一个唯一的MAC地址。 用aa:bb:cc:dd:ee:ff代替networking中没有使用的任何有效的MAC地址。 对于第一个VM,我只是使用00:00:00:00:00:01 ,对于第二个VM使用00:00:00:00:00:02等等。
我结束了创build一个单独的shell脚本来启动每个虚拟机。 例如,要启动我的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
他们共享MAC地址吗?
检查两个vm中的ifconfig的结果。