Моя система работает под управлением 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;
}
Когда DUT, подключенный к eth1, запрашивает IP-адрес, DHCP-сервер отвечает и предлагает, но при обнюхивании с помощью Wireshark пакеты имеют исходный адрес 169.254.123.52:
Два вопроса:
Вы можете попробовать
server-identifier 192.168.55.1
Это не рекомендуется на странице руководства, ваша конфигурация - это именно тот вариант использования, который она описывает.
это (мой предыдущий ответ) приведет к привязке DHCPD к одному IP-адресу и, как вы заметили, нарушит широковещательные запросы:
local-address
:
например
local-address 192.168.55.1