Linux что такое dhcpd

Настройка DHCP-сервера в Linux

Протокол динамической конфигурации узлов (Dynamic Host Configuration Protocol, DHCP) — это сетевой протокол, используемый для автоматического получения узлами IP-адресов и сетевой конфигурации с сервера.

IP-адрес, выделенный DHCP-клиенту DHCP-сервером, находится в «аренде», время аренды может отличаться в зависимости от того, сколько времени клиенту требуется соединение или конфигурация DHCP.

Как работает DHCP?

  • После загрузки подключенный к сети клиент (на котором настроено использование DHCP) отправляет DHCP-серверу пакет DHCPDISCOVER.
  • Получив пакет запроса DHCPDISCOVER, DHCP-сервер отвечает пакетом DHCPOFFER.
  • Клиент принимает пакет DHCPOFFER и отправляет серверу пакет DHCPREQUEST, подтверждая готовность принять сетевую конфигурацию, предоставленную в пакете.
  • Получив от клиента пакет DHCPREQUEST, сервер отправляет пакет DHCPACK, который разрешает клиенту использование выделенного IP-адреса.

В данном руководстве мы рассмотрим настройку DHCP-сервера в Ubuntu/Debian Linux, но большенство настроек будет работать и в других дистрибутивах. Для получения административных привилегий все команды будут выполняться через sudo.

Шаг 1: Установка DHCP-сервера

1. Для установки пакета DCHP-сервера, ранее известного как dhcp3-server, нужно выполнить следующую команду:

2. После завершения установки отредактируйте файл /etc/default/isc-dhcp-server для определения интерфейсов, которые будет использовать DHCPD для обработки DHCP-запросов, при помощи опции INTERFACES.

Например, если вам нужно, чтобы демон DHCPD прослушивал eth0, задайте следующее значение:

Для этого сетевого интерфейса нужно настроить статический IP-адрес.

Шаг 2: Настройка DHCP-сервера

3. Основной файл конфигурации DHCP — /etc/dhcp/dhcpd.conf, в него нужно внести всю информацию, отправляемую клиентам.
В файле конфигурации DHCP есть два типа данных:

  • параметры – указывают, как выполнять задание (например, на какое время выделять адрес), выполнять ли его вообще (например, выделять ли адреса неизвестным клиентам) или какие параметры сетевой конфигурации отправлять DHCP-клиенту.
  • декларации – определяют топологию сети, описывают клиентов и предоставляемые им адреса, или применяют группу параметров к группе деклараций.

4. Для определения настроек DHCP-сервера откроем и отредактируем файл конфигурации:

Установите в начале файла следующие глобальные параметры, они будут действовать для всех указанных ниже деклараций (измените их в соответствии с вашими задачами). Это имя домена domain-name, имена DNS-серверов domain-name-servers, время аренды по умолчанию в секундах default-lease-time (если клиент не запросил его сам), максимальное время аренды в секундах max-lease-time и параметр authoritative, означающий «авторитетность» сервера в сегменте сети. Данный параметр нужен на тот случай, если клиент запросит неправильный IP-адрес — в этом случае сервер ответит ему отказом и предложит получить новый адрес.

Обратите внимание, что перед некоторыми параметрами указано слово option, а перед некоторыми — нет. Это слово задает параметры, которые передаются клиенту в сетевой конфигурации.

5. Теперь нужно указать подсеть, в нашем примере мы будем использовать DHCP в локальной сети 192.168.10.0/24.

Здесь мы использовали следующие параметры:

routers — IP-адрес маршрутизатора по умолчанию
subnet-mask — маска подсети
domain-search — имя домена
domain-name-servers — имена DNS-серверов
range — диапазон IP-адресов, выделяемый клиентам (можно указывать несколько диапазонов, но обязательно указать хотя бы один)

Шаг 3: Настройка статических IP-адресов для машин клиентов

6. Для выделения конкретным клиентам фиксированного (статического) IP-адреса нужно добавить в файл конфигурации секции следующего вида, где явно указаны MAC-адрес и статически выделяемый IP-адрес:

7. Запустим службу DHCP и установим ее автоматический запуск при загрузке:

8. Далее нужно создать правило для службы DHCP в брандмауэре (Демон DHCPD прослушивает UDP-порт 67):

Шаг 4: Настройка машин клиентов

9. Теперь можно настроить клиентские компьютеры в сети для автоматического получения IP-адресов от DHCP-сервера.

Отредактируйте файл конфигурации интерфейса Ethernet на клиентской машине (обратите внимание на имя/номер интерфейса):

Укажите следующие опции:

Сохраните и закройте файл, а затем перезапустите сетевые службы или перезагрузите систему:

Если все настроено правильно, клиентская машина должна автоматически получать IP-адреса от DHCP-сервера.

Настройка DHCP-сервера завершена. Более подробную информацию о dhcpd и dhcpd.conf с описанием всех возможных опций можно получить в соответствующих man-страницах:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Источник

dhcpd

dhcpd is the Internet Systems Consortium DHCP Server. It is useful for instance on a machine acting as a router on a LAN.

Contents

Installation

Usage

dhcpd includes two unit files dhcpd4.service and dhcpd6.service , which can be used to control the daemon. They start the daemon on all network interfaces for IPv4 and IPv6 respectively. See #Listening on only one interface for an alternative.

Configuration

Assign a static IPv4 address to the interface you want to use (in our examples we will use eth0 ). The first 3 bytes of this address cannot be exactly the same as those of another interface.

To have your static ip assigned at boot, see Network configuration#Static IP address.

The default dhcpd.conf contains many uncommented examples, so relocate it:

Читайте также:  Диск восстановления windows драйвер

The minimal configuration file may look like:

If you need to provide a fixed IP address for a single specific device, you can define host blocks:

domain-name-servers option contains addresses of DNS servers which are supplied to clients. In our example we are using Google’s public DNS servers. If you know a local DNS server (for example, provided by your ISP), you should consider using it. If you have configured your own DNS on a local machine, then use its address in your subnet (e. g. 139.96.30.100 in our example).

subnet-mask and routers defines a subnet mask and a list of available routers on the subnet. In most cases for small networks you can use 255.255.255.0 as a mask and specify an IP address of the machine on which you are configuring DHCP server as a router.

subnet blocks defines options for separate subnets, which are mapped to the network interfaces on which dhcpd is running. In our example this is one subnet 139.96.30.0/24 for single interface eth0 , for which we defined the range of available IP addresses. Addresses from this range will be assigned to the connecting clients.

Listening on only one interface

If your computer is already part of one or several networks, it could be a problem if your computer starts giving ip addresses to machines from the other networks. It can be done by either configuring dhcpd or starting it as a daemon with systemctl.

Configuring dhcpd

In order to exclude an interface, you must create an empty declaration for the subnet that will be configured on that interface.

This is done by editing the configuration file (for example):

Service file

There is no service files provided by default to use dhcpd only on one interface so you need to create one. Start by copying the existing service:

Then edit the ExecStart line to include the interface:

This is a template unit, which binds it to a particular interface, for example dhcpd4@eth0.service where eth0 is an interface shown with ip link .

Use for PXE

PXE Configuration is done with the following two options:

This section can either be in an entire subnet or just in a host definition. next-server is the IP of the TFTP Server, and filename is the filename of the image to boot. For more information see PXE.

Источник

Linux что такое dhcpd

Это программное обеспечение является свободным. В различное время разработка происходила в разных организациях, включая ISC и Vixie Enterprises. Разработка третьей версии почти полностью финансируется Nominum, Inc.

На данном этапе разработка контролируется Тедом Лемоном (Ted Lemon) и размещается ISC, но будущее этого проекта зависит от вас. Если у вас есть предложения по улучшению, обратитесь за их реализацией к ним.

ПРОЦЕСС

Протокол DHCP позволяет назначить хосту, неизвестному сетевому администратору, новый IP адрес из списка свободных адресов этой сети. Для того, чтобы это работало, сетевой администратор определяет список свободных адресов для каждой подсети в файле dhcpd.conf(5).

При запуске dhcpd читает файл dhcpd.conf и хранит список свободных адресов каждой подсети в памяти. При запросе клиентом адреса по протоколу DHCP, dhcpd находит адрес для него. Каждому клиенту назначается аренда (lease), которая истекает по истечении указанного администратором срока (по умолчанию — один день. Перед тем, как срок аренды истечет, клиент должен снова запросить адрес. После истечения срока аренды клиенту запрещается использовать арендованный IP адрес.

Для того, чтобы отслеживать аренду адресов при перезагрузке и рестарте сервера, dhcpd хранит список арендованных адресов в файле dhcpd.leases(5). Перед тем, как dhcpd позволяет аренду хосту, он записывает данные об аренде в файл и убеждается, что файл реально сохранён (буфер сброшен на диск). Это гарантирует даже при сбое системы сохранение информации о выданных адресах. При запуске после чтения файла dhcpd.conf читается файл dhcpd.leases для построения в памяти списка выданных адресов.

Последние выданные адреса записываются в конец файла dhcpd.leases. Для предотвращения распухания файла, время от времени dhcpd создает новый файл dhcpd.leases из свежего списка. Когда новый файл записывается на диск, старый файл переименовывается в dhcpd.leases

, а новый файл переименовывается в dhcpd.leases. При сбое системы во время этого процесса это позволяет сохранить всю информацию в файле dhcpd.leases без дополнительных усилий по восстановлению после сбоев.

Этот сервер также поддерживает BOOTP. В отличие от DHCP, протокол BOOTP не позволяет восстановить динамически назначенные адреса, когда они больше не нужны. Можно динамически назначать адреса клиентам BOOTP, но для утилизации неиспользуемых адресов потребуется некоторый административный процесс. По умолчанию срок аренды адресов клиентами BOOTP бесконечен, хотя сетевые администраторы могут назначить более раннюю дату отсечения и меньший срок аренды, если необходимо.

Клиенты BOOTP могут обслуживаться и в стандартном режиме. В этом случае для каждого клиента BOOTP в файле dhcpd.conf назначается постоянный адрес.

Чтобы изменения, сделанные в файле dhcpd.conf, вступили в силу, dhcpd должен быть перезагружен. Для перезапуска dhcpd, отправьте SIGTERM (сигнал 15) процессу, идентификатор которого находится в файле RUNDIR/dhcpd.pid . Поскольку база данных сервера DHCP не такая маленькая, как база данных BOOTP, dhcpd автоматически не перезапускается при обнаружении изменений в файле dhcpd.conf.

Читайте также:  Windows 10 прыгает экран

Примечание: мы получили массу недовольных отзывов об этом поведении. Мы понимаем, что будет удобно, когда посылается сигнал SIGHUP серверу и база данных перечитывается. Технически это не невозможно, но потребует большого объема работы, а наши ресурсы сильно ограничены и будет лучше, если они будут потрачены на что-то другое. Поэтому, пожалуйста, не жалуйтесь на это в списке рассылки, если у вас нет для реализации этой возможности финансов или умения.

КОМАНДНАЯ СТРОКА

Имена сетевых интерфейсов, на которых dhcpd должен слушать широковещательные запросы, могут быть указаны в командной строке. Это должно быть сделано на системах, где dhcpd не может определить нешироковещательные интерфейсы, но не требуется на других системах. Если в командной строке не указаны имена интерфейсов, dhcpd будет слушать на всех интерфейсах, поддерживающих широковещательные запросы.

Для изменения стандартного порта для прослушивания (порт 67), используйте опцию -p . После нее должен быть указан номер порта UDP. Это очень полезно для отладки.

Для запуска dhcpd как обычного процесса вместо запуска его как демона в фоновом процессе, укажите опцию -f . Это полезно при запуске dhcpd в отладчике или запуске на системах System V.

Для вывода сообщений dhcpd на стандартный поток ошибок укажите опцию -d . Это полезно для отладки и в случае, когда работа syslogd ненадёжна или невозможна. Обычно, dhcpd выводит все сообщения через функцию syslog(3) с установленной службой LOG_DAEMON. При указании -d автоматически применяется -f (демон на запускается в фоновом режиме).

Dhcpd может читать другой файл конфигурации, указанный после опции -cf , альтернативный файл назначенных адресов, указанный после -lf , или альтернативный файл с идентификатором процесса, указанный после -pf . Поскольку важно использовать одну базу назначенных адресов все время для работающего dhcpd, эти опции должны быть использованы только для тестирования файлов назначенных адресов или файлов баз данных не в реально работающей среде.

При запуске dhcpd из скриптов запуска системы (например, /etc/rc), нежелательно выводить полный текст об авторских правах при запуске. Для того, чтобы подавить вывод этой информации, укажите опцию -q .

Сервер DHCP читает два файла при запуске: файл конфигурации и базу назначенных адресов. Если указана опция -t , сервер только проверит правильность синтаксиса файла конфигурации, но не будет осуществлять никаких операций с сетью. Это может быть использовано для проверки новых файлов конфигурации перед их реальным использованием.

Опция -T используется для проверки синтаксиса файла назначенных адресов таким же способом.

Опции -tf и -play позволяют указать файл, в который заносятся или считываются полное состояние сервера и всех транзакций. Это может быть полезно для сообщений об ошибках: если вы часто получаете сбой программы, запустите сервер с опцией -tf и файл трассировки будет содержать все транзакции, которые привели к сбою, и проблема может быть легко локализована при отладке с опцией -play .

Опция -play должна быть указана с альтернативным файлом назначенных адресов после опции -lf для того, чтобы тестовые данные не переписали реальные. Сервер DHCP не сможет функционировать в этом режиме воспроизведения, если вы не укажите альтернативный файл выданных адресов.

КОНФИГУРАЦИЯ


Подсети

Несколько диапазонов свободных адресов указываются так:

Если работа подсети обеспечивается только службой BOOTP и не используется динамическое назначение адресов, указывается раздел subnet, но без диапазонов (range).

Срок аренды

Например, в офисе, где время от времени (но не так часто) появляются и исчезают компьютеры, можно установить срок от месяца и больше. В производственном отделе, где проходит окончательное тестирование компьютерной техники, не смысла назначать срок более 30 минут — достаточного времени для прохождения теста работы с сетью.

Возможно указать два срока аренды: срок по умолчанию для клиентов, которые не запрашивают определенный срок аренды и максимальный срок аренды. Это

Для этой подсети устанавливается срок аренды по умолчанию 600 секунд (10 минут) и максимальный срок аренды 7200 секунд (два часа). Другие употребимые значения: 86400 (один день), 604800 (одна неделя) и 2592000 (30 дней).

Для разных подсетей, обслуживаемых одним сервером DHCP, могут быть указаны совершенно различные сроки аренды (как в случае с офисом и производственным отделом).

Поддержка BOOTP


Опции

Эти опции указываются для подсети или для клиентов BOOTP — для каждого клиента. В случае, если опции указаны и для отдельного клиента и для подсети, в которую он входит, предпочтение отдается опциям, указанным для клиента. Более полная конфигурация DHCP может иметь вид:

Хост bootp в этой подсети должен быть в другом домене и использовать другой сервер DNS:

Полное описание синтаксиса файла dhcpd.conf дано в dhcpd.conf(5).

OMAPI

Пользовательские программы вместо использования протокола OMAPI напрямую предпочитают использовать API dhcpctl или OMAPI. Dhcpctl — программа-обертка, которая поддерживает некоторые действия, автоматизирующие работу с OMAPI. Dhcpctl и OMAPI описаны в dhcpctl(3) и omapi(3) .

OMAPI экспортирует объекты, которые могут быть просмотрены или изменены. Сервер DHCP экспортирует следующие объекты: lease, host, failover-state и group. Каждый объект методы работы с ним: lookup, create и destroy. Кроме того, можно просматривать атрибуты этого объекта и в некоторых случаях изменить их.

Читайте также:  Installing linux headers centos

ОБЪЕКТ LEASE

Объекты аренды имеют следующие атрибуты:

state integer поиск, просмотр

ip-address data поиск, просмотр выдаваемый IP адрес.

dhcp-client-identifier data поиск, просмотр, изменение идентификатор клиента, который используется при запросе IP адреса. Не все клиенты отправляют эту информацию, поэтому атрибут может быть пуст.

client-hostname data просмотр, изменение значение, которое клиент указал в опции host-name.

host handle просмотр хост, связанный с этим адресом, если есть.

subnet handle просмотр объект подсети (subnet), связанный с этим адресом (в настоящее время объект подсети не поддерживается).

pool handle просмотр объект очереди (pool), связанный с этим адресом (в настоящее время объект очереди не поддерживается).

billing-class handle просмотр указатель на класс, который учитывает трафик по этому адресу (в настоящее время объект класса не поддерживается).

hardware-address data просмотр, изменение аппаратный адрес (chaddr), отправляемый клиентом при получении адреса.

hardware-type integer просмотр, изменение тип сетевого интерфейса, по которому клиент получает IP адрес.

ends time просмотр время окончания аренды адреса для клиента.

tstp time просмотр время окончания аренды адреса для сервера. tsfp time просмотр скорректированное время окончания аренды для связки резервирования. atsfp time просмотр действительное значение tsfp отправляемое в второму серверу.

cltt time просмотр время последней связи с клиентом по аренде этого адреса.

ОБЪЕКТ HOST

Объекты хостов имеют следующие атрибуты:

name data поиск, просмотр, изменение имя определения хоста. Оно должно быть уникальным среди всех определений хостов.

group handle просмотр, изменение именованная группа, связанная с этим определением хоста, если есть.

hardware-address data поиск, просмотр, изменение аппаратный адрес, который используется для проверки соответствия клиента хосту. Используется, если также указан атрибут hardware-type.

hardware-type integer поиск, просмотр, изменение тип сетевого интерфейса, который используется для проверки соответствия клиента хосту. Используется, если также указан атрибут hardware-address.

dhcp-client-identifier data поиск, просмотр, изменение Опция dhcp-client-identifier соответствия клиента хосту, если есть.

ip-address data просмотр, изменение фиксированный IP адрес, зарезервированный за клиентом DHCP, который соответствует хосту. IP адрес назначается клиенту только если этот адресам принадлежит сегменту сети, к которой подключен клиент.

statements data изменение список условий в формате dhcpd.conf, которые должны выполнены, когда получено сообщение от клиента.

known integer просмотр, изменение если значение не равно нулю, показывает, что клиент соответствует хосту и помечен как известный в списке очереди разрешений. Если значение равно нулю, клиент признается неизвестным.

ОБЪЕКТ GROUP

Именованные группы пока могут быть только привязаны к хостам — это позволяет задавать одинаковые условия сразу для нескольких хостов.

Объекты групп имеют следующие атрибуты:

name data имя группы. Все группы, создаваемые через OMAPI должны иметь уникальные среди других групп имена.

statements data список условий в формате dhcpd.conf, которые назначаются хостам, привязанным к этой группе.

ОБЪЕКТ CONTROL

При выключении сервера также корректно завершаются все соединения OMAPI. Если соединение не может быть корректно завершено в течение 5 секунд, они закрываются принудительно, поэтому с момента начала выключения сервера до реального выхода из программы проходит более 25 секунд.

Для выключения сервера, откройте объект контроля и установите атрибута state в 2.

ОБЪЕКТ СОСТОЯНИЯ РЕЗЕРВИРОВАНИЯ

name data просмотр имя связи резервирования, задается в файле dhcpd.conf .

partner-address data просмотр IP адрес резервного сервера.

local-address data просмотр IP адрес текущего сервера.

partner-port data просмотр порт TCP, на котором резервный сервер ожидает подключения по протоколу failover.

local-port data просмотр порт TCP, на котором текущий сервер ожидает подключения по протоколу failover.

max-outstanding-updates integer просмотр количество обновлений, которые могли быть важными, но остались без ответа в этой связке резервирования.

mclt integer просмотр максимальное время перенаправления клиента в этой связке резервирования.

load-balance-max-secs integer просмотр максимальное значение в поле secs запроса клиента после которого будет произведена балансировка нагрузки.

load-balance-hba data просмотр массив хэшей буферов для балансировки нагрузки в этой связке резервирования.

local-state integer просмотр, изменение текущий статус сервера DHCP в этой связке резервирования. Возможные значения:

В общем случае делать изменения в этом атрибуте — плохая идея. Однако в случае, когда известно, что резервный сервер выключен, бывает необходимо явно указать что резервный сервер недоступен и необходимо взять на себя выданные адреса резервного сервера как можно быстрее. Если же вы указали, что резервный сервер выключен, а он работает (но временно недоступен), возможны конфликты назначения IP адресов.

partner-state integer просмотр текущий статус резервного сервера

local-stos integer просмотр время, в течение которого сервер работает в текущем статусе.

partner-stos integer просмотр время, в течение которого резервный сервер работает в текущем статусе.

hierarchy integer просмотр роль сервера: первичный (0) или вторичный (1) в текущей связке резервирования.

last-packet-sent integer просмотр время последнего пакета синхронизации, отправленного резервному серверу в связке.

last-timestamp-received integer просмотр время последнего пакета синхронизации, полученного от резервного сервера в связке.

skew integer просмотр разница между часами резервного и текущего сервера

max-response-delay integer просмотр время в секундах, по истечении которого если не получен ни один пакет синхронизации, определяется разрыв в соединении.

cur-unacked-updates integer просмотр количество сообщений об обновлении, полученных от резервного сервера, но пока не обработанных.

Источник

Оцените статью