DHCPServer of systemd-networkd

Thanks for the hints.

My network is like this:

  1. Physcal level, a trunk port from my switch to enp1s0.
  • WAN vlan2 is untagged, IPv4 and IPv6 DHCP from ISP
  • vlan11 is tagged, a virtual vlan interface enp1s0.11@enp1s0 is created
  • a bridge interface to vlan11, sdbr11, is created
  1. sdbr11
  • .network
    [Match]
    Name=sdbr11
    Driver=bridge

[Network]
Address=192.168.22.2/24
DHCPServer=yes

[DHCPServer]
PoolOffset=100
PoolSize=20
EmitDNS=yes
DNS=8.8.8.8

.netdev
[NetDev]
Name=sdbr11
Kind=bridge

  1. In libvirt, via virt-manager, I removed the built-in virtual networks.
  • when creating VMs, I manually enter bridge interface name sdbr11
  • I want VM clients be routed to my lab internal network. And only masquerade when accessing Internet.

Testing
In VM, DHCP cannot get offer.
After manually assign 192.168.22.123/24, gw 192.168.22.2, dns 8.8.8.8, access to Internet is OK.
Connect a physical machine to my switch, with vlan11 untagged, and manual IP assignment. That machine can ping VM clients and access to Internet also. (That machine also cannot get DHCP offers)

In Journal, I do not see any DHCPServer log messages.

How should I proceed?