Хочу настроить DHCP сервер.
В одном из переводов dhcpd.conf прочитал, что секцию subnet нужно описывать для каждой подсети, к которой подключён сервер, даже если в ней нет динамически выделяемых адресов. Что это якобы помогает серверу распознать какой адрес к какой подсети относится.
Раньше я указывал секцию subnet только для той подсетки, в которой подразумевалась выдача IP-адресов. Нужно ли действительно указывать секцию subnet для каждой подсети? Сервер является шлюзом, к нему подключены несколько локальных сетей, поднят впн, имеются и внешние адреса от провайдеров.
Пользователь добавил сообщение 20 Июня 2016, 11:36:37:
UPDЯ, кажется, нашёл ответ. Скачал последний дистрибутив ISC-DHCP, в нём есть файл README. Читая его, нашёл следующее:
If you have a server that is connected to two networks, and you only
want to provide DHCP service on one of those networks (e.g., you are
using a cable modem and have set up a NAT router), if you don't write
any subnet declaration for the network you aren't supporting, the DHCP
server will ignore input on that network interface if it can. If it
can't, it will refuse to run - some operating systems do not have the
capability of supporting DHCP on machines with more than one
interface, and ironically this is the case even if you don't want to
provide DHCP service on one of those interfaces.
Как я правильно понимаю, что если нужно предоставлять DHCP на интерфейсе, то указываешь subnet для этого интерфейса, а если не укажешь, то DHCP-сервер проигнорирует входящие пакеты с этого инетерфейса (который не указан). Другое дело, что не все ОС имеют возможность поддерживать DHCP-сервер на более чем одном интерфейсе, и тут уж даже если захочешь предоставлять DHCP-сервер только на одном из них, и ты для этого укажешь только одну секцию subnet, то ничего не выйдет.
Также я заглянул в man dhcpd. Дошёл до описания секции subnet. И вот что нашёл:
Subnets
dhcpd needs to know the subnet numbers and netmasks of all subnets for which it will be providing service. In addition, in order to dynamically allocate addresses, it must be assigned one or more ranges of addresses on each subnet which it can in turn assign to client hosts as they boot.
а также:
If a subnet will only be provided with BOOTP service and no dynamic address assignment, the range clause can be left out entirely, but the subnet statement must appear.
Т.е. обязательного (или даже рекомендательного) указания на то, чтобы указывать секцию subnet для каждой подсети сервера я не нашёл. Нашёл только рекомндацию того, что если динамическая раздача IP адресов не нужна, то можно просто указать секцию subnet и не указывать в ней опцию range.
Также прочитал, что сам сервер dhcpd работать не будет, если у него не куазана ни одна секция subnet, т.е. нужно указать как минимум одну секцию subnet, даже если она не предназначена для динамической выдачи адресов (в данном случае просто опускаем опцию range).