IPv4 сервер#

Описание#

Служба DHCP может обслуживать несколько общих сетей, причем каждая общая сеть имеет одну или несколько подсетей. Каждая подсеть должна быть настроена на интерфейсе устройства, который выступает в качестве DHCP сервера. Для определения пула динамических адресов внутри подсети задается специальный диапазон адресов. Можно определить несколько диапазонов адресов. Статические привязки используются для назначения статических адресов клиентам на основе их MAC-адресов.

Необработанные параметры#

Необработанные параметры могут быть переданы в shared-network-name, subnet и static-mapping:

set service dhcp-server shared-network-name <name> shared-network-parameters
   <text>       Additional shared-network parameters for DHCP server.
set service dhcp-server shared-network-name <name> subnet <subnet> subnet-parameters
   <text>       Additional subnet parameters for DHCP server.
set service dhcp-server shared-network-name <name> subnet <subnet> static-mapping <description> static-mapping-parameters
   <text>       Additional static-mapping parameters for DHCP server.
                Will be placed inside the "host" block of the mapping.

Эти параметры напрямую передаются в файл dhcpd.conf под тем узлом конфигурации, в котором они определены. Они не проверяются, поэтому ошибка в исходных параметрах не будет отловлена скриптами операционной системы и приведет к невозможности запуска службы dhcpd. Необходимо всегда проверять корректность внесенных параметров перед фиксацией конфигурации устройства.

Кавычки можно использовать внутри значений параметров, заменив все символы кавычек строкой &quot;.

Настройка#

Алгоритм настройки#

Описание алгоритма настройки…

Пример настройки#

Пример настройки ПО Факел, который будет выступать в качестве DHCP сервера локальной сети. DHCP сервер будет передавать устройствам внутри локальной сети информацию о назначенном им IP адресе, а также адресах DNS сервера и шлюза по умолчанию.

Для настройки службы DHCP будут использоваться следующие параметры:

  • Для шлюза по умолчанию и DNS сервера будет использоваться адрес 192.168.0.1/24

  • Диапазон адресов 192.168.0.2/24 - 192.168.0.8/24 будет зарезервирован для назначения статических адресов

  • Клиентам DHCP будут назначены IP-адреса в диапазоне 192.168.0.9 - 192.168.0.254 с доменным именем internal-network

  • Срок действия аренды DHCP составляет один день (86400 секунд)

  • Только узлы из локальной сети 192.168.0.0/24 могут использовать DNS сервер

Список команд для настройки DHCP сервера:

set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 default-router '192.168.0.1'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 name-server '192.168.0.1'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 domain-name 'fakel.net'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 lease '86400'
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 start 192.168.0.9
set service dhcp-server shared-network-name LAN subnet 192.168.0.0/24 range 0 stop '192.168.0.254'

set service dns forwarding cache-size '0'
set service dns forwarding listen-address '192.168.0.1'
set service dns forwarding allow-from '192.168.0.0/24'

Отказоустойчивый кластер DHCP#

Параметры для настройки отказоустойчивого кластера DHCP:

  • Отказоустойчивый сервер DHCP будет настроен для подсети 192.0.2.0/24

  • Для шлюза по умолчанию и DNS сервера будет настроен адрес 192.0.2.254

  • Для адреса основного участника отказоустойчивого кластера DHCP будет настроен адрес 192.168.189.252

  • Для адреса резервного участника отказоустойчивого кластера DHCP будет настроен адрес 192.168.189.253

  • DHCP сервер будет выдавать клиентам адреса из диапазона 192.168.189.10 - 192.168.189.250

Список общих команд для настройки отказоустойчивого кластера DHCP:

set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 default-router '192.0.2.254'
set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 name-server '192.0.2.254'
set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 domain-name 'example.org'
set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 range 0 start '192.0.2.10'
set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 range 0 stop '192.0.2.250'
set service dhcp-server shared-network-name NET-SHARED subnet 192.0.2.0/24 enable-failover

Список команд для настройки основного участника отказоустойчивого кластера DHCP:

set service dhcp-server failover source-address '192.168.189.252'
set service dhcp-server failover name 'NET-SHARED'
set service dhcp-server failover remote '192.168.189.253'
set service dhcp-server failover status 'primary'

Список команд для настройки резервного участника отказоустойчивого кластера DHCP:

set service dhcp-server failover source-address '192.168.189.253'
set service dhcp-server failover name 'NET-SHARED'
set service dhcp-server failover remote '192.168.189.252'
set service dhcp-server failover status 'secondary'

Список команд#

Основные настройки#

set service dhcp-server hostfile-update#

Обновляет файл /etc/hosts, добавляя актуальные DNS записи для каждого клиента.

Запись будет иметь формат: <shared-network-name>_<hostname>.<domain-name>

set service dhcp-server host-decl-name#

При записи в файл /etc/hosts исключает значение <shared-network-name>_ из DNS записи клиента, используя только имя хоста и имя домена: <hostname>.<domain-name>

set service dhcp-server shared-network-name <name> domain-name <domain-name>#

Устанавливает доменное имя <domain-name> для хостов, которые будут получать адреса из подсети <name. Доменное имя будет добавлено к имени хоста клиента для формирования полностью определенного доменного имени (FQDN).

set service dhcp-server shared-network-name <name> domain-search <domain-name>#

Задает дополнительные доменные имена, которые образуют список доменов, используемых при поиске хостов в локальной сети по доменному имени. Если эта опция не указана, то по умолчанию используется единственный домен, указанный в параметре domain-name.

set service dhcp-server shared-network-name <name> name-server <address>#

Устанавливает адрес DNS сервера, который будут получать адреса из подсети <name>. Поддерживается возможность указать несколько адресов для использования различных DNS серверов.

set service dhcp-server shared-network-name <name> ping-check#

Активирует механизм проверки ICMP для подсети <subnet> из которой DHCP сервер будет выдавать адреса.

Примечание

Если свободных адресов для назначения клиентам нет, но есть IP-адреса, в использовании которых отказано, DHCP-сервер будет пытаться вернуть и использовать такие IP-адрес независимо от значения параметра abandon-lease-time.

set service dhcp-server listen-address <address>#

Устанавливает адрес <address> для прослушивания DHCP сервером входящих запросов от клиентов.

Настройка индивидуальной подсети#

set service dhcp-server shared-network-name <name> authoritative#

При активации данного параметра, устройство будет являться единственным DHCP сервером для данной сети <name>.

set service dhcp-server shared-network-name <name> subnet <subnet> default-router <address>#

Устанавливает адрес шлюза по умолчанию <address> для хостов, которые будут получать адреса из подсети <subnet>.

set service dhcp-server shared-network-name <name> subnet <subnet> name-server <address>#

Устанавливает адрес DNS сервера <address> для хостов, которые будут получать адреса из подсети <subnet>. Поддерживается возможность указать несколько адресов для использования различных DNS серверов.

set service dhcp-server shared-network-name <name> subnet <subnet> lease <time>#

Определяет время аренды IP адреса <time>, получаемого по DHCP, для хоста из подсети <subnet>. Значение используемое по умолчанию - 86400 секунд, что соответствует одному дню.

set service dhcp-server shared-network-name <name> subnet <subnet> range <n> start <address>#

Задает начальный адрес <address> из диапазона адресов для DHCP сервера с идентификатором диапазона <n>. Адреса для аренды будут выделяться из пула адресов <subnet>.

set service dhcp-server shared-network-name <name> subnet <subnet> range <n> stop <address>#

Задает конечный адрес <address> из диапазона адресов для DHCP сервера с идентификатором диапазона <n>. Адреса для аренды будут выделяться из пула адресов <subnet>.

set service dhcp-server shared-network-name <name> subnet <subnet> exclude <address>#

Задает адрес <address>, который будет исключен для выдачи DHCP сервером из подсети <subnet>. Поддерживается возможность указать несколько адресов для исключения.

set service dhcp-server shared-network-name <name> subnet <subnet> domain-name <domain-name>#

Устанавливает доменное имя <domain-name> для хостов, которые будут получать адреса из подсети <name>. Доменное имя будет добавлено к имени хоста клиента для формирования полностью определенного доменного имени (FQDN).

set service dhcp-server shared-network-name <name> subnet <subnet> domain-search <domain-name>#

Задает дополнительные доменные имена <domain-name> , которые образуют список доменов, используемых при поиске хостов в локальной сети по доменному имени. Если эта опция не указана, то по умолчанию используется единственный домен, указанный в параметре domain-name.

set service dhcp-server shared-network-name <name> subnet <subnet> ping-check#

Активирует механизм проверки ICMP для подсети <subnet> из которой DHCP сервер будет выдавать адреса.

set service dhcp-server shared-network-name <name> subnet <subnet> enable-failover#

Активирует механизм отказоустойчивости службы DHCP для пула адресов <subnet>.

Настройка механизма отказоустойчивости DHCP#

set service dhcp-server failover source-address <address>#

Устанавливает локальный адрес <address>, используемый при обмене данными с резервным DHCP сервером на котором настроен механизм отказоустойчивости.

set service dhcp-server failover remote <address>#

Устанавливает адрес резервного DHCP сервера <address>, используемый при обмене данными с основным DHCP сервером на котором настроен механизм отказоустойчивости.

set service dhcp-server failover name <name>#

Задает общее имя <name> кластера отказоустойчивости DHCP сервера.

Примечание

Общее имя <name> должно быть идентичным у всех участников кластера отказоустойчивости DHCP сервера.

set service dhcp-server failover status <primary | secondary>#

Задает роль DHCP сервера <primary | secondary> в кластере отказоустойчивости.

Примечание

Для того чтобы основной и резервный DHCP сервера могли синхронизировать свои таблицы арендованных адресов, они должны иметь возможность обращаться друг к другу по TCP порту 647.

Подсказка

Обмен таблицами арендованных адресов между участниками кластера отказоустойчивости DHCP сервера не шифруется и не аутентифицируется. Поскольку большинство DHCP серверов находятся в защищенной локальной сети организации, это будет избыточным. Если обмен информацией между участниками кластера отказоустойчивости DHCP сервера проходит через незащищенные каналы связи, рекомендуется использовать защищенный VPN туннель, чтобы гарантировать, что передача данных не будет скомпрометирована.

Настройка статической привязки#

Можно задать статическое назначение DHCP для каждого узла. Для этого потребуется MAC-адрес станции и желаемый IP-адрес. Адрес должен находиться внутри определения подсети, но может выходить за пределы оператора диапазона.

set service dhcp-server shared-network-name <name> subnet <subnet> static-mapping <description> mac-address <address>#

Создает статическую привязку DHCP <description>, которая будет действовать для хоста, идентифицируемого по его MAC-адресу <address>.

set service dhcp-server shared-network-name <name> subnet <subnet> static-mapping <description> ip-address <address>#

Задает адрес узла для статической привязки DHCP <description>. Адрес должен находиться внутри заданной подсети <subnet>, но может выходить за пределы динамического диапазона, созданного с помощью команды set service dhcp-server shared-network-name <name> subnet <subnet> range <n>. Если адрес не указан, то используется адрес из динамического пула.

Мониторинг и эксплуатация#

show log dhcp server#

Выводит на экран журнал событий службы DHCP сервера

show log dhcp client#

Выводит на экран журнал событий всех процессов DHCP клиента

show log dhcp client interface <interface>#

Выводит на экран журнал событий процесса DHCP клиента для указанного интерфейса <interface>.

restart dhcp server#

Перезагружает службу DHCP сервера.

show dhcp server statistics#

Выводит на экран статистику работы службы DHCP сервера.

Пример работы команды show dhcp server statistics:

admin@fakel:~$ show dhcp server statistics
Pool           Size    Leases    Available  Usage
-----------  ------  --------  -----------  -------
dhcpexample      99         2           97  2%
show dhcp server statistics pool <pool>#

Выводит на экран статистику работы службы DHCP сервера для указанного пула <pool>.

show dhcp server leases#

Выводит на экран информацию обо всех арендованных адресах, выданных DHCP сервером.

Пример работы команды show dhcp server leases:


admin@fakel:~$ show dhcp server leases IP address Hardware address State Lease start Lease expiration Remaining Pool Hostname ————– —————— ——- ——————- ——————- ———- ———– ——— 192.0.2.104 00:53:01:dd:ee:ff active 2019/12/05 14:24:23 2019/12/06 02:24:23 6:05:35 dhcpexample test1 192.0.2.115 00:53:01:ae:af:bf active 2019/12/05 18:02:37 2019/12/06 06:02:37 9:43:49 dhcpexample test2

Подсказка

При использовании команды show dhcp server leases информация о статической привязке адреса к определенному хосту не отображается. Чтобы получить информацию обо всех арендованных адресах, используйте команду show dhcp server leases state all.

show dhcp server leases pool <pool>#

Выводит на экран информацию обо всех арендованных адресах, выданных DHCP сервером для указанного пула <pool>.

show dhcp server leases sort <key>#

Сортирует вывод информации обо всех арендованных адресах по указанному ключу <key>.

Возможные варианты ключей: ip, hardware_address, state, start, end, remaining, pool, hostname (по умолчанию = ip)

show dhcp server leases state <state>#

Выводит информацию обо всех арендованных адресах с указанным состоянием <state>.

Возможные состояния: all, active, free, expired, released, abandoned, reset, backup (по умолчанию = active)