1

У меня есть следующая проблема, которую я хочу решить:

  • У меня есть много домашняя система под управлением 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 запрашивает список параметров по умолчанию, а не только два параметра, которые я настроил.

С чего бы это? Это ошибка? Я сделал ошибку в моем конфигурационном файле?

0