我的系统运行Ubuntu 17.04,我的networking拓扑是:

我有eth1configuration了多个IP地址:
$ ip addr show eth1 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:80:c8:3d:19:94 brd ff:ff:ff:ff:ff:ff inet 169.254.123.52/16 brd 169.254.255.255 scope link eth1 valid_lft forever preferred_lft forever inet 192.168.55.1/24 brd 192.168.55.255 scope global eth1 valid_lft forever preferred_lft forever inet 192.168.10.10/24 brd 192.168.10.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::280:c8ff:fe3d:1994/64 scope link valid_lft forever preferred_lft forever
我使用eth1上的networking来开发和testing我的设备,我有一个DHCP服务器configuration如下:
option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org; default-lease-time 600; max-lease-time 7200; ddns-update-style none; subnet 192.168.55.0 netmask 255.255.255.0 { range 192.168.55.100 192.168.55.150; }
当连接到eth1的DUT请求IP地址时,DHCP服务器响应并提供,但使用Wireshark嗅探数据包的源地址为169.254.123.52:

两个问题:
你可以试试
server-identifier 192.168.55.1
这不是手册页推荐的,你的configuration就是它描述的用例。
这 (我以前的答案)将导致DHCPD绑定到一个IP地址,正如你所说,将打破广播请求:
local-address :
例如
local-address 192.168.55.1