我刚刚在家里的 CentOS 7 x64 最小安装版本上安装了 KVM。当客户机尝试从 KVM(dnsmasq)的内部 DHCP 服务器获取 IP 时,我遇到了问题。
我的互联网盒已开启 DHCP,我知道当 2 个 DHCP 服务器在同一个 LAN 上运行时会出现问题。
当我在 KVM 主机和客户机上执行 tcpdump 时,我看到这是我的互联网盒 dhcp,它正在响应客户机 DHCP 请求,而不是 dnsmasq(但客户机仍然没有获得 IP,即使我的互联网盒 dhcp 正在将 IP 推送给客户机)。有没有办法隔离客户机,使其仅从 dnsmasq dhcp 服务器获取 IP?
以下是我的当前配置:
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::222:19ff:fe68:25de prefixlen 64 scopeid 0x20<link>
ether 00:22:19:68:25:de txqueuelen 1000 (Ethernet)
RX packets 22167 bytes 1671094 (1.5 MiB)
RX errors 0 dropped 16 overruns 0 frame 0
TX packets 35434 bytes 7868453 (7.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 9 bytes 4172 (4.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9 bytes 4172 (4.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.250 netmask 255.255.255.0 broadcast 192.168.0.255
ether 00:22:19:68:25:de txqueuelen 0 (Ethernet)
RX packets 22056 bytes 1266640 (1.2 MiB)
RX errors 0 dropped 99 overruns 0 frame 0
TX packets 34413 bytes 7636993 (7.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
使用 virsh 从默认网络得到的结果:
[root@centosKVM ~]# virsh net-info default
Name default
UUID ff41aa4b-b4b0-4047-b1af-545e3b8f19cd
Active: yes
Persistent: yes
Autostart: yes
Bridge: virbr0
[root@centosKVM ~]# virsh net-dumpxml default
<network>
<name>default</name>
<uuid>ff41aa4b-b4b0-4047-b1af-545e3b8f19cd</uuid>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr0' stp='on' delay='0' />
<mac address='00:22:19:68:25:de'/>
<ip address='192.168.122.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.122.100' end='192.168.122.254' />
</dhcp>
</ip>
</network>
我使用以下命令创建了访客:
virt-install --connect qemu:///system -n archlinux --cpu host -r 512 --vcpus=1 --disk path=/mnt/raid5/img/archlinux.raw,bus=virtio --cdrom /mnt/usb/archlinux-2015.02.01-dual.iso --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type linux --accelerate --network model=virtio,bridge=virbr0 --hvm
我输入以下命令来打开 iptables 并确保他没有阻止任何东西:
iptables -F
iptables -X
如果您需要更多信息或/和详细信息,请询问。
谢谢。
答案1
尝试使用
--network model=virtio,network=default
代替
--network model=virtio,bridge=virbr0