多 IP 接口上的 DHCP 服务器

多 IP 接口上的 DHCP 服务器

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

网络拓扑结构

我为 eth1 配置了多个 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 上的网络来开发和测试我的设备,并且我有一个配置如下的 DHCP 服务器:

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:

wireshark 跟踪

两个问题:

  1. 如何使 DHCP 服务器仅在 eth1 上运行?
  2. 如何使来自 eth1 上的 DHCP 的数据包具有源地址 192.168.55.1?

答案1

你可以尝试
server-identifier 192.168.55.1

手册页不建议这样做,您的配置正是它描述的用例。

(我之前的回答)将导致 DHCPD 绑定到单个 IP 地址,并且正如您所说,将中断广播请求:

local-address

例如

local-address 192.168.55.1

相关内容