在 KVM 中使用 dnsmasq

在 KVM 中使用 dnsmasq

我刚刚在家里的 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

相关内容