Как настроить DHCP‑сервер для вашей локальной сети
Версия 1.0
Автор: Falko Timme
Краткое определение
DHCP — сокращение от «Dynamic Host Configuration Protocol». Это сетевой протокол, который автоматически выдаёт клиентам IP‑адрес, маску подсети, шлюз по умолчанию и другие сетевые параметры, если у клиента нет статической конфигурации.
Важно: перед развёртыванием убедитесь, что в вашей LAN нет другого активного DHCP‑сервера — одновременная работа двух серверов может вызвать конфликт адресов и потерю доступа у клиентов.
1 Предварительная информация
Текущая тестовая конфигурация, используемая в руководстве:
- Сеть: 192.168.0.0/24 (маска 255.255.255.0), широковещательный адрес 192.168.0.255.
- Шлюз по умолчанию: 192.168.0.1; на шлюзе нет собственного DHCP‑сервера.
- DNS‑серверы, предоставленные провайдером: 145.253.2.75 и 193.174.32.18.
- Пул динамических адресов: 192.168.0.200–192.168.0.229 (30 адресов), свободных и неиспользуемых статически.
- DHCP‑сервер будет работать на хосте server1.example.com с IP 192.168.0.100 (Debian Sarge 3.1).
Если вы не уверены в параметрах своей сети (подсеть, маска, широковещательный адрес), используйте сетевые калькуляторы, например http://www.subnetmask.info
2 Установка DHCP‑сервера
На примере Debian Sarge установка выглядит так:
apt-get install dhcp3-serverВо время установки вас попросят указать сетевой интерфейс, на котором должен слушать сервер (в большинстве домашних/офисных конфигураций — eth0). Установка может завершиться сообщением, что служба не запущена — это нормально до момента настройки.
Note: В более новых версиях Debian/Ubuntu пакет и имя службы могут отличаться (например, isc‑dhcp‑server). Проверяйте документацию вашей дистрибуции.
3 Конфигурация DHCP‑сервера
Файл конфигурации: /etc/dhcp3/dhcpd.conf. Перед редактированием сохраните текущую версию для отката:
cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig
cat /dev/null > /etc/dhcp3/dhcpd.conf
vi /etc/dhcp3/dhcpd.confВставьте в файл следующую минимальную конфигурацию (пример):
ddns-update-style none;
option domain-name-servers 145.253.2.75, 193.174.32.18;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.200 192.168.0.229;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
}Объяснение ключевых опций кратко:
- ddns‑update‑style none — отключает автоматическое обновление DNS‑записей по DHCP. Удобно, если вы не управляете DNS или предпочитаете ручную привязку.
- option domain‑name‑servers — список DNS‑серверов, передаваемых клиентам.
- default‑lease‑time, max‑lease‑time — время аренды адреса по умолчанию и максимальное время (в секундах).
- authoritative — сервер будет отправлять DHCPNAK, если клиент использует некорректный адрес; полезно чтобы клиенты не держали «левые» настройки.
- subnet/netmask — определение используемой подсети.
- range — диапазон динамически выдаваемых адресов.
- option broadcast‑address — широковещательный адрес подсети.
- option routers — адрес шлюза (gateway), который получат клиенты.
Советы по настройке диапазона:
- Не включайте в динамический пул адреса, которые заняты статически (серверы, принтеры, NAS). Зарезервируйте их вне пула или используйте фиксацию по MAC.
- Для небольшого домашнего офиса пул в 20–50 адресов обычно достаточен. Подумайте о будущем росте.
4 Запуск и проверка службы
Перезапустите службу:
/etc/init.d/dhcp3-server restartПроверьте процессы и сетевые слушатели:
ps aux
netstat -uapВы увидите службу dhcpd3, слушающую порт bootps (UDP 67). Для соответствия имени порта выполните:
grep bootps /etc/servicesЕсли в вашей системе используется systemd, альтернативная команда для перезапуска и просмотра логов может быть:
systemctl restart isc-dhcp-server
journalctl -u isc-dhcp-server -eПроверяйте лог /var/log/syslog или журнал systemd на предмет ошибок:
tail -n 100 /var/log/syslogЕсли старт не удался, в логах обычно указывают причину: ошибка конфигурации, интерфейс недоступен, привилегии и т.п.
5 Как убедиться, что DHCP работает
На DHCP‑сервере вы увидите в логах события присвоения адресов. Например, при получении адреса клиентом с MAC 00:0c:76:8b:c4:16 в логах может появиться такой фрагмент:
Sep 19 16:01:26 server1 dhcpd: DHCPDISCOVER from 00:0c:76:8b:c4:16 via eth0
Sep 19 16:01:26 server1 dhcpd: DHCPOFFER on 192.168.0.229 to 00:0c:76:8b:c4:16 (matze) via eth0
Sep 19 16:01:31 server1 dhcpd: DHCPREQUEST for 192.168.0.229 (192.168.0.100) from 00:0c:76:8b:c4:16 (matze) via eth0
Sep 19 16:01:31 server1 dhcpd: DHCPACK on 192.168.0.229 to 00:0c:76:8b:c4:16 (matze) via eth0
Файлы аренды:
vi /var/lib/dhcp3/dhcpd.leasesПример содержимого (часть файла):
# All times in this file are in UTC (GMT), not your local timezone. This is
# not a bug, so please don't ask about it. There is no portable way to
# store leases in the local timezone, so please don't request this as a
# feature. If this is inconvenient or confusing to you, we sincerely
# apologize. Seriously, though - don't ask.
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-V3.0.1
lease 192.168.0.229 {
starts 2 2006/09/19 14:01:31;
ends 3 2006/09/20 14:01:31;
binding state active;
next binding state free;
hardware ethernet 00:0c:76:8b:c4:16;
uid "\001\000\014v\213\304\026";
client-hostname "matze";
}Замечание: сроки аренды и часовой пояс в файле представлены в UTC; это поведение isc‑dhcpd.
6 Полезные команды для диагностики и отладки
- tail -f /var/log/syslog — смотреть логи в реальном времени
- grep DHCP /var/log/syslog — отфильтровать DHCP‑записи
- ps aux | grep dhcp — проверить запущенный процесс
- netstat -uap | grep dhcp — подтвердить слушание порта 67/udp
- ip addr show eth0 — убедиться, что интерфейс сервера поднят
7 Когда настройка может не работать — типовые причины
- В сети уже есть другой DHCP‑сервер (например, на роутере). Решение: отключите лишний сервер или используйте разные VLAN/сегменты.
- Диапазон адресов пересекается со статически назначенными адресами. Решение: пересмотрите пул или выделите статические адреса вне пула.
- Неправильный интерфейс указан в конфигурации службы (server слушает не на том интерфейсе). Решение: проверьте /etc/default/dhcp3-server и параметр INTERFACES.
- Фаервол блокирует UDP‑порт 67. Решение: открыть порт 67/udp для интерфейса, на котором слушает DHCP.
- Неправильные параметры сети в конфиге (маска, сеть). Решение: проверьте значения и используйте калькулятор подсетей.
8 Альтернативные подходы и инструменты
- Использовать встроенный DHCP на маршрутизаторе — самый простой вариант для домашних сетей.
- dnsmasq — лёгкий DHCP/DNS‑резолвер, удобен на роутерах и в малых сетях.
- systemd‑networkd/netplan (в некоторых окружениях) — для простых случаев сетевой конфигурации.
- Коммерческие DHCP‑серверы или инфраструктура управления адресами (IPAM) — для крупных сетей.
Выбор зависит от размера сети, требований к ведению учёта аренды и интеграции с DNS.
9 Практические эвристики и рекомендации
- Правило 1: статические адреса (серверы, принтеры, NAS) — всегда вне пула динамики.
- Правило 2: оставьте запас адресов в пуле на 20–30% больше текущей потребности.
- Правило 3: используйте короткие лизинги (lease) в динамично меняющихся средах (где много мобильных устройств) и длинные — в стабильных.
- Правило 4: помечайте аренды клиент‑хостнеймом и поддерживайте документацию/имя хоста.
10 Чек‑лист развёртывания (SOP)
- Проверить, нет ли другого DHCP‑сервера в сети.
- Заблокировать доступ к DHCP‑портам на пограничных интерфейсах (если применимо).
- Зарезервировать статические адреса вне пула.
- Скопировать оригинальный конфиг: cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_orig.
- Внести конфигурацию в /etc/dhcp3/dhcpd.conf.
- Перезапустить службу и проверить логи.
- Подключить тестовую машину без статической конфигурации и подтвердить получение адреса.
- Наблюдать за логами 24–72 часа для выявления конфликтов.
11 Ролевые чек‑листы
Администратор сети:
- Подготовить IP‑план и определить пул.
- Настроить DHCP и проверить интеграцию с DNS (если нужно).
- Обновить документацию сети.
Служба поддержки (helpdesk):
- Проверить, что клиент настроен на получение IP по DHCP.
- При жалобах клиента выполнить ipconfig /renew (Windows) или dhclient (Linux).
- Передать логи администратору при повторяющихся проблемах.
12 Безопасность и жёсткая настройка
- Ограничьте интерфейс прослушивания сервера только теми интерфейсами, где требуется DHCP (параметр INTERFACES или конфигурация systemd).
- Используйте DHCP‑сниффинг и защиту на коммутаторах (DHCP snooping) в корпоративных сетях, чтобы предотвратить подмену сервера злоумышленником.
- Для критичных устройств применяйте статические IP или привязку по MAC, чтобы исключить случайную смену адреса.
- Логи и аудит: храните логи DHCP для расследования инцидентов и мониторинга необычных аренд.
13 Критерии приёмки
- Сервис запущен и слушает UDP 67 на требуемом интерфейсе.
- Клиент без статической конфигурации получает IP из заданного пула.
- Клиент получает правильный шлюз и DNS‑серверы, и при этом имеет доступ в сеть/интернет.
- В логах нет повторяющихся ошибок запуска/конфигурации.
14 Тестовые сценарии и приёмо‑сдаточные проверки
- Подключить новый клиент, убедиться, что он получает IP из пула.
- Повторить подключение после перезапуска клиента (renew) — адрес либо сохраняется, либо выделяется новый, но из пула.
- Исчерпать пул (симуляция) и проверить поведение сервера: клиенты должны получать отказ, а в логах — запись о нехватке адресов.
- Проверить, что статические адреса вне пула не затронуты.
15 Когда DHCP не подходит или неэффективен
- Сеть с высокими требованиями к безопасности и учёту адресов — лучше использовать статические адреса для ключевых систем и централизованные инструменты IPAM.
- Сети, где требуется немедленная гарантия доступности IP (например, кластерные решения), часто предпочитают статические адреса или DHCP‑reservations.
16 Миграция и совместимость
При переносе с роутера на выделенный DHCP‑сервер:
- Временно отключите DHCP на роутере.
- Настройте новый сервер с теми же DNS/шлюзами/диапазонами.
- Наблюдайте за клиентами в течение переходного окна и откатите изменения при проблемах.
17 Ссылки
- ISC‑DHCP: http://www.isc.org/index.pl?/sw/dhcp/
- dhcpd.conf configuration options: http://www.bind9.net/dhcpd.conf.5
- Network Calculators: http://www.subnetmask.info
Итого: приведённая инструкция покрывает базовую установку и проверку ISC‑DHCP на Debian, диагностические приёмы и рекомендации по безопасности и эксплуатации. Удачи с настройкой и не забывайте документировать статические назначения.
Удачи!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента