libvirt DHCP 从主机失败

libvirt DHCP fails from host

我在设置 PXE VM 时遇到问题。它正在发送 DHCP 请求,服务器正在发送响应,但 VM 似乎没有在处理响应。我不确定原因。

我确实确认物理机在相同的 DHCP 和 PXE 设置下工作正常,并且 DHCP 请求和响应与 VM 相同。

DHCP服务器由MaaS提供,在主机上。

下面是错误图片。

创建虚拟机时使用:virt-install --name=maas-node-1 --connect=qemu:///system --ram=15360 --vcpus=8 --hvm --virt-type=kvm --pxe --boot network,hd --os-variant=ubuntu16.04 --graphics vnc --os-type=linux --accelerate --disk=/var/lib/libvirt/images/maas-node-1.qcow2,bus=virtio,format=qcow2,cache=none,sparse=true,size=60 --network=bridge:br0,model=virtio

网络配置为:

auto br0
iface br0 inet static
    address 192.168.10.2
    network 192.168.10.0
    broadcast 192.168.10.255
    netmask 255.255.255.0
    gateway 192.168.10.1
    dns-nameservers 192.168.10.2
    bridge_ports bond0
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0


auto bond0
iface bond0 inet manual
    mtu 1500
    bond-miimon 100
    bond-downdelay 200
    bond-updelay 200
    bond-mode 0
    bond-slaves none
    post-up ifenslave bond0 eno1 eno2 eno3 eno4
    pre-down ifenslave bond0 eno1 eno2 eno3 eno4
...

DHCP 请求是:

steel.maas.bootpc > 255.255.255.255.bootps: [udp sum ok] BOOTP/DHCP, Request from 18:03:73:f8:ea:c9 (oui Unknown), length 257, xid 0xf97e014f, Flags [Broadcast] (0x8000)
      Client-Ethernet-Address 18:03:73:f8:ea:c9 (oui Unknown)
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Discover
        Client-ID Option 61, length 6: ieee1394 03:73:f8:ea:c9
        Parameter-Request Option 55, length 3:
          Default-Gateway, Subnet-Mask, Domain-Name-Server

DHCP 回复是:

steel.maas.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xf97e014f, Flags [Broadcast] (0x8000)
      Your-IP steel.maas
      Server-IP steel.maas
      Client-Ethernet-Address 18:03:73:f8:ea:c9 (oui Unknown)
      file "pxelinux.0"
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Offer
        Server-ID Option 54, length 4: steel.maas
        Lease-Time Option 51, length 4: 600
        Subnet-Mask Option 1, length 4: 255.255.255.0
        Default-Gateway Option 3, length 4: 192.168.10.1
        Domain-Name-Server Option 6, length 4: steel.maas

问题是由于在交换机上使用绑定模式 0 而没有中继的特性,ARP 没有得到响应。切换到 balance-tlb 解决了问题。

这有助于缩小问题范围:https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/785668