- Настройка DHCP-сервера в Linux
- Как работает DHCP?
- Шаг 1: Установка DHCP-сервера
- Шаг 2: Настройка DHCP-сервера
- Шаг 3: Настройка статических IP-адресов для машин клиентов
- Шаг 4: Настройка машин клиентов
- Настройка DHCP сервера Linux
- Проверяем выдался ли адрес на машине из локальной сети
- Настройка совместной работы DHCP и DNS
- Настройка утилиты AppArmor для корректной работы DHCP
- Установка и настройка DHCP сервера в Ubuntu
- Установка и настройка DHCP сервера
Настройка 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.
Источник
Настройка DHCP сервера Linux
Устанавливаем DHCP:
Производим настройку — прежде всего, указываем параметры сети с которой будет работать сервер
Конфигурационный файл очень полный и содержит примеры конфигурации, добавляем наши параметры непосредственно после закомментированного примера (исключительно для удобства, место вставки строк значения не имеет)
subnet 192.168.11.76 netmask 255.255.255.0 <
range 192.168.11.71 192.168.11.75;
option domain-name-servers 192.168.11.76;
option domain-name-servers «server-gu.ru»;
option routers 192.168.11.11;
option broadcast-address ;
default-lease-time 7200;
max-lease-time 7200;
>
range — дипазон из которого будут динамически выдаваться адреса. Два указанных адреса в диапазон также включаются.
option domain-name-servers, option domain-name-servers — здесь приводятся данные сервера DNS, сконфигурированного на данной машине в рамках одной из предыдущих статей.
При использовании нескольких option domain-name-servers IP-адреса разделяются запятой.
Далее необходимо раскомментировать строку #authoritative;
Сделать это нужно после того как другой DHCP сервер (на роутере) выключен. После перезапуска службы DHCP сервер сможет отвергать запросы на повторное получеине IP-адресов и предлагать свои если использовавшиеся ранее адреса для выдачи более недоступны.
Перезапуск службы в продакшн довольно безопасен поскольку уже выданные адреса выдут выданы вновь при истечении срока lease — информация о них записывается во временные файлы.
Проверяем выдался ли адрес на машине из локальной сети
В командной строке пишем:
Видим, что ПК использует адрес за пределами диапазона, предусмотренного конфигурацией DHCP сервера — следовательно, он был выдан ранее роутером
Настройка совместной работы DHCP и DNS
Цель — обеспечить корректную работу DNS при выдаче машине нового адреса посредством DHCP (обычно для серверов используются статические IP адреса, однако необходимость в подобных настройках возникнуть может).
Как мы добьемся поставленной цели:
- Сгенерируем ключ, который позволит BIND принимать изменения
- Обновим конфигурационные файлы BIND и DHCPd чтобы пакеты могли взаимодействовать с ключом
- Убедимся в том, что BIND в состоянии писать информацию в собственные файлы
Трудность, которая появляется при подобной конфигурации — содержимое файлов DNS зон менять «руками» становится невозможно.
BIND предоставляет возможность произвести подобную настройку посредством утилиты RNDC
Ключ — «shared key» — доступен в файле /etc/bind/dndc.key, также мы можем создать свой ключ.
Предварительно смотрим помощь по утилите:
Ключ создан, идем в конфигурацию пакета и добавляем строку с include:
include «/etc/bind/dhcpd.key»
zone»server-gu.ru» <
type master;
file «/var/cache/bind/server-gu.ru.zone»;
allow-update < key «dhcp»; >;
>
Строкой, в которой указан путь к server-gu.ru.zone мы сменили расположение конфига поскольку в /etc/bind пользователь BIND писать информацию не может, а динамическое обновление файлов это подразумевает.
На каталог /var/cache/bind программный пакет, по умолчанию, имеет права r/w.
Те же две строки следует скорректировать/добавить для зоны обратного преобразования.
Перемещаем конфигурационный файл:
Проверяем наличие прав на запись и меняем пользователя на bind
В случае трудностей проверяем /var/log/deamon.log
Сервис перезапустился, проверяем
Поскольку DHCP также работает от имени одноименного пользователя — потребуется дополнительно разрешить получать доступ к ключу.
Настройка утилиты AppArmor для корректной работы DHCP
AppArmor — программное средство защиты файлов от изменения и доступа на уровне операционной системы.
Сейчас ограничимся тем, что убедимся, что пакет настроен для динамического обновления DHCP.
Необходимо добаввить в один из конфигурационных файлов строку с указанием на файл ключа:
Производим финальную настрйоку DHCP — редактируем строку с ddns-update-style и добавляем указание на файл ключа. Также добавляем поддерку ddns в настройки подсети.
ddns-update-style interim;
include «/etc/bind/dhcpd.key»
subnet 192.168.11.76 netmask 255.255.255.0 <
range 192.168.11.71 192.168.11.75;
option domain-name-servers 192.168.11.76;
option domain-name-servers «server-gu.ru»;
option routers 192.168.11.11;
option broadcast-address ;
default-lease-time 7200;
max-lease-time 7200;
ddns-domainname «server-gu.ru.»;
zone server-gu.ru. <
primary 192.168.11.76;
key «dhcpd»;
>
zone 11.168.192.in-addr.arpa. <
primary 192.168.11.76;
key «dhcpd»;
>
>
Чтобы проверить, что настроенная конфигурация работает корректно заставим другую машину (dncptest), находящуюся в сети, запросить и получить IP адрес — в это время на сервере будем отслеживать данные, которые записываются в логи
Запрашиваем новый адрес с dncptest и не видим в логе никакх ошибок, что говорит о том. что конфигурация корректна.
Проверяем DNS
Видим адрес из диапазона, предусмотренного range
Проверяем наличие временных файлов в которые пишутся данные об обновлении зон
Видим соответствие имени машины и А записи DNS
Команда удаляет временные файлы с расширением .jnl до нового динамического обновления
rndc freeze/thaw можно дополнять указанием конкретной зоны
Настройка DHCP сервера Linux на этом завершена. Читайте про конфигурацию DNS сервера на основе BIND9.
Источник
Установка и настройка DHCP сервера в Ubuntu
Зачастую в больших сетях для упрощения работы с добавлением новых компьютеров и других устройств в сеть используют протокол динамического выделения адресов — DHCP. Это значительно упрощает настройку оборудования и экономит огромное количество времени. Используя DHCP нам не нужно производить настройку сети на каждом отдельном устройстве, нужно лишь подключить устройство к сети и DHCP сервер сделает все настройки автоматически. Каждый домашний WiFi роутер имеет в себе встроенный DHCP сервер, поэтому вам не нужно каждый раз при подключении к разным роутерам прописывать все настройки вручную, роутер делает это за вас.
DHCP сервер может автоматически присвоить клиенту:
- Адрес ip;
- Маску подсети;
- IP адрес шлюза;
- IP адрес DNS сервера;
В отдельных случаях:
- Имя хоста;
- Имя домена;
- Адрес серверов времени(NTP);
Преимущество использования DHCP сервера заключается в том, что при огромных размерах сети в несколько тысяч устройств, её будет очень удобно и почти безболезненно настраивать. Представьте себе, если в сети нужно поменять ip адреса на персональных компьютерах сотрудников, принтерам выдать иные адреса, управляемому сетевому оборудованию еще назначить и свои. При размерах сети в несколько тысяч устройств, ручная настройка отняла бы у вас огромное количество времени. Другое дело когда в сети есть настроенный DHCP сервер, который выполнить настройку за вас и на это потребуется всего несколько минут. В дополнение к этому, сервер поддерживает возможность резервирования адресов, таким образом если клиенту(компьютеру,принтеру,коммутатору) нужно назначить фиксированный адрес, мы можем это указать в настройках DHCP сервера и при следующем запросе, клиент получит нужный ему адрес.
Установка и настройка DHCP сервера
В Ubuntu установка и настройка DHCP сервера выполняется всего в несколько шагов, быстро и продуктивно. Для того, чтобы начать использовать сервер нужно установить программное обеспечение на компьютер, делается это при помощи команды:
Минимальная настройка DHCP сервера включает в себя редактирование только 2х файлов.
Первый файл который мы с вами отредактируем, это nano /etc/default/isc-dhcp-server и добавляем/редактируем всего одну строку: где «eth3» интерфейс к которому подключаются клиенты с внутренней сети и который будет слушать DHCP;
Теперь собственно и сама настройка DHCP сервера. Открываем файл nano /etc/dhcp/dhcpd.conf и удаляем все содержимое.
Сейчас мы с вами настроим сервер только для раздачи адресов всем устройствам, которые будут запрашивать у сервера адрес. Добавляем в файл строки:
Разберем по-порядку строки которые мы внесли в этот файл:
- default-lease-time — время аренды(в секундах) адреса у сервера, если клиент не запросил другое;
- max-lease-time — максимальное время аренды адреса;
- subnet — описывает сеть ip и её маску;
- range — диапазон адресов с которых по запросу клиента будут предоставляться адреса;
- optionrouters — адрес роутера. Это должен быть адрес интерфейса через который пользователи попадают в интернет.
- optiondomain-name-servers — адрес DNS сервера. Указывает на то, что сервер расположен на этом же компьютере и слушает интерфейс с адресом 192.168.0.1
Роутером у нас должен выступать интерфейс который мы описали в файле INTERFACES=»eth3″ и там должен быть назначен адрес который мы описали в настройках DHCP сервера. Если у вас не установлен DNS сервер, можете использовать сервер от вашего ISP провайдера или публичные от google или yandex.
Для управления DHCP сервером используются команды:
- /etc/ init . d / isc — dhcp — server start — запуск сервера;
- /etc/ init . d / isc — dhcp — server stop — остановка сервера;
- /etc/ init . d / isc — dhcp — server restart — перезапуск сервера;
Можно использовать команду service isc-dhcp-server
Если у вас возникнут вопросы по настройке или установке оставляйте ваши комментарии.
Источник