У меня есть следующая проблема, которую я хочу решить:
- У меня есть много домашняя система под управлением Linux с тремя интерфейсами. Все интерфейсы настроены по протоколу dhcp. DHCP-клиент - ISC dhcp 4.2.5
- DHCP-сервер предоставляет маршрут по умолчанию во всех сетях.
- Я хочу, чтобы маршрут по умолчанию был установлен только для первого интерфейса.
Поэтому я хочу дать указание dhclient не запрашивать маршрутизаторы на всех интерфейсах, кроме одного. Документация и примеры, которые я нашел в Интернете, предполагают, что это возможно. Однако я не могу заставить его работать.
Я могу сделать это вручную. Если я сделаю:
sudo dhclient -d -1 -R subnet-mask,broadcast-address eth1
Затем я вижу, что запрос dhcp содержит только запрос маски подсети и широковещательного адреса. Я проверил это с помощью wireshark и сделал так, что маршрут по умолчанию не будет установлен на eth1. Это то, что я ожидаю.
Затем я создал следующий файл dhclient.conf:
request subnet-mask, broadcast-address;
interface "eth0" {
also request routers, domain-name, domain-name-servers, domain-search, host-name, interface-mtu, rfc3442-classless-static-routes, ntp-servers, time-offset;
}
Насколько я понимаю, это должно привести к тому, что запрашивается только ubnet-mask, широковещательный адрес, за исключением eth1, где нужно запрашивать гораздо больше.
Я проверил это с:
sudo dhclient -d -1 -cf dhclient.conf eth1
И я снова посмотрел на сеть с Wireshark. И то, что я увидел, было то, что, несмотря на то, что конфиг говорит, dhclient запрашивает список параметров по умолчанию, а не только два параметра, которые я настроил.
С чего бы это? Это ошибка? Я сделал ошибку в моем конфигурационном файле?