Kea DHCP — это современный DHCP-сервер, разработанный Internet Systems Consortium (ISC) для замены устаревшего isc-dhcp-server. Если вы ищете актуальное решение для автоматической раздачи IP-адресов в вашей сети — Kea станет отличным выбором. В этом руководстве мы подробно разберём настройку Kea DHCP на Ubuntu с нуля: установку, базовую конфигурацию, создание пулов адресов, резервирование IP по MAC, дополнительные опции и отладку.
💡 Важно: ISC DHCP (isc-dhcp-server) объявлен устаревшим и больше не поддерживается. Его поддержка официально прекращена в 2022 году. Kea — это современная замена с модульной архитектурой, поддержкой REST API и высокой производительностью
Оглавление
- 1. Что такое Kea DHCP и почему он лучше ISC DHCP
- 2. Требования и подготовка к установке
- 3. Установка Kea DHCP на Ubuntu
- 4. Базовая настройка kea-dhcp4.conf
- 5. Настройка пула адресов и подсетей
- 6. Настройка DNS, шлюза и опций
- 7. Настройка резервирования IP (Host Reservations)
- 8. Настройка нескольких подсетей и VLAN
- 9. Управление через kea-shell и REST API
- 10. Просмотр аренд (leases) и мониторинг
- 11. Отладка и устранение неполадок
- 12. Миграция с ISC DHCP на Kea
- 13. Заключение и ссылки на будущие статьи
1. Что такое Kea DHCP и почему он лучше ISC DHCP
Kea DHCP — это высокопроизводительный DHCP-сервер, разработанный ISC (Internet Systems Consortium). Он пришёл на смену классическому isc-dhcp-server, который использовался десятилетиями, но больше не поддерживается.
Ключевые преимущества Kea:
- Модульная архитектура — каждый компонент работает независимо (DHCPv4, DHCPv6, DDNS, Control Agent).
- REST API — возможность динамической перезагрузки конфигурации без остановки сервера через
kea-shell. - Высокая производительность — Kea обрабатывает тысячи запросов в секунду, что критично для крупных сетей и провайдеров.
- Поддержка современных баз данных — хранение аренд и резервирований в MySQL, PostgreSQL.
- Гибкая система классов и hook-библиотек — позволяет расширять функциональность.
Сравнение Kea и ISC DHCP:
| Характеристика | ISC DHCP | Kea DHCP |
|---|---|---|
| Статус поддержки | ❌ Не поддерживается (EOL 2022) | ✅ Активно развивается |
| Формат конфигурации | dhcpd.conf | JSON |
| REST API | Нет | ✅ Да (kea-ctrl-agent) |
| Динамическая перезагрузка | Только restart | Через API без остановки |
| Базы данных для аренд | Только файлы | MySQL, PostgreSQL, Memfile |
🔗 Будущая статья: Сравнение DHCP-серверов: Kea vs ISC DHCP vs dnsmasq
2. Требования и подготовка к установке
Перед установкой Kea DHCP убедитесь, что выполнены следующие условия:
- Ubuntu Server 22.04 LTS или новее (рекомендуется 24.04 LTS).
- Статический IP-адрес на сервере (или зарезервированный через DHCP).
- Права sudo.
- Интернет для установки пакетов.
Важно: Kea работает на Ubuntu 23.04 и новее. На Ubuntu 22.04 пакет доступен, но может быть старой версии. Для получения последней версии рекомендуется использовать официальный репозиторий ISC.
2.1. Определение сетевого интерфейса
Узнайте имя сетевого интерфейса, на котором будет работать DHCP-сервер:
ip link show
Обычно интерфейсы называются eth0, ens3, enp0s3. Запомните это имя — оно понадобится в конфигурации.
3. Установка Kea DHCP на Ubuntu
Существует два способа установки Kea: из официальных репозиториев Ubuntu (проще, но версия может быть не самой свежей) и из репозитория ISC (рекомендуется для production).
3.1. Установка из официальных репозиториев Ubuntu
Для базовых задач и тестирования подойдёт стандартный репозиторий:
sudo apt update
sudo apt install kea -y
Эта команда установит мета-пакет kea, который включает все компоненты:
kea-dhcp4-server— DHCPv4 серверkea-dhcp6-server— DHCPv6 серверkea-ctrl-agent— REST API агент для управленияkea-dhcp-ddns-server— сервер динамического обновления DNS
3.2. Установка последней версии из репозитория ISC (рекомендуется)
Для получения актуальной версии Kea 2.6+ используйте официальный репозиторий ISC:
# Удалить старую версию (если установлена)
sudo apt remove --purge kea
# Установить curl
sudo apt install curl -y
# Добавить репозиторий ISC
curl -1sLf 'https://dl.cloudsmith.io/public/isc/kea-2-6/setup.deb.sh' | sudo bash
# Обновить репозитории и установить Kea
sudo apt update
sudo apt install isc-kea-dhcp4 -y
3.3. Настройка пароля для kea-ctrl-agent (если нужен REST API)
При установке kea из официальных репозиториев вас спросят о настройке пароля для Control Agent:
- no action — Control Agent не будет запущен.
- configure with a random password — сгенерировать случайный пароль.
- configure with a given password — указать свой пароль.
Пароль сохраняется в файле /etc/kea/kea-api-password. Для изменения пароля выполните:
sudo dpkg-reconfigure kea-ctrl-agent
🔗 Будущая статья: Kea Control Agent: полное руководство по REST API
4. Базовая настройка kea-dhcp4.conf
Конфигурационный файл Kea находится по пути /etc/kea/kea-dhcp4.conf и имеет формат JSON. Рекомендуется сделать резервную копию оригинального файла перед редактированием:
sudo cp /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bak
Откройте файл для редактирования:
sudo nano /etc/kea/kea-dhcp4.conf
4.1. Минимальная рабочая конфигурация
Вот пример базовой конфигурации, которая заставит Kea раздавать IP-адреса:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": ["eth0"]
},
"control-socket": {
"socket-type": "unix",
"socket-name": "/run/kea/kea4-ctrl-socket"
},
"lease-database": {
"type": "memfile",
"lfc-interval": 3600
},
"valid-lifetime": 3600,
"subnet4": [{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [{
"pool": "192.168.1.100 - 192.168.1.200"
}],
"option-data": [{
"name": "routers",
"data": "192.168.1.1"
}]
}]
}
}
4.2. Пояснение параметров
interfaces-config.interfaces— сетевой интерфейс, на котором сервер слушает запросы (заменитеeth0на ваш интерфейс).control-socket— UNIX-сокет для управления сервером.lease-database— где хранятся аренды.memfileозначает хранение в CSV-файле/var/lib/kea/kea-leases4.csv.valid-lifetime— время аренды в секундах (3600 = 1 час).subnet4— массив подсетей, которые обслуживает сервер.pools— диапазон выдаваемых IP-адресов.option-data.routers— шлюз по умолчанию.
4.3. Проверка синтаксиса конфигурации
Перед перезапуском сервера всегда проверяйте конфигурацию на ошибки:
sudo kea-dhcp4 -t -c /etc/kea/kea-dhcp4.conf
Если конфигурация корректна, вы не увидите ошибок. При наличии ошибок Kea укажет строку и проблему.
4.4. Запуск и перезапуск службы
sudo systemctl restart kea-dhcp4-server
sudo systemctl status kea-dhcp4-server
Включите автозапуск при загрузке системы:
sudo systemctl enable kea-dhcp4-server
5. Настройка пула адресов и подсетей
Что такое пул dhcp? Это диапазон IP-адресов, которые сервер может выдавать клиентам. В Kea пулы настраиваются внутри объявления подсети.
5.1. Один пул в подсети
"subnet4": [{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [{
"pool": "192.168.1.100 - 192.168.1.200"
}]
}]
5.2. Несколько пулов в одной подсети
Можно создать несколько пулов, например, для разных типов устройств:
"subnet4": [{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [
{ "pool": "192.168.1.100 - 192.168.1.150" },
{ "pool": "192.168.1.160 - 192.168.1.199" }
]
}]
5.3. Настройка таймеров аренды
Kea поддерживает три типа таймеров:
renew-timer— через сколько секунд клиент должен попытаться продлить аренду (T1).rebind-timer— через сколько секунд клиент должен попытаться перепривязаться (T2).valid-lifetime— общее время жизни аренды.
Пример настройки:
"renew-timer": 900,
"rebind-timer": 1800,
"valid-lifetime": 3600
🔗 Будущая статья: Продвинутые таймеры аренды в Kea DHCP
6. Настройка DNS, шлюза и опций
Dhcp сервер настройка dns — критически важный этап. Kea позволяет настраивать опции на разных уровнях: глобальном, уровне подсети, уровне пула и уровне резервирования.
6.1. Глобальные опции (действуют для всех подсетей)
"option-data": [
{
"name": "domain-name-servers",
"data": "8.8.8.8, 8.8.4.4"
},
{
"name": "domain-name",
"data": "example.local"
},
{
"name": "domain-search",
"data": "example.local, corp.example.local"
}
]
6.2. Опции на уровне подсети
Опции, заданные в подсети, переопределяют глобальные для этой подсети:
"subnet4": [{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [{ "pool": "192.168.1.100 - 192.168.1.200" }],
"option-data": [
{
"name": "routers",
"data": "192.168.1.1"
},
{
"name": "domain-name-servers",
"data": "192.168.1.2, 8.8.8.8"
}
]
}]
6.3. Часто используемые опции DHCP
| Опция (Option) | Название в Kea | Назначение |
|---|---|---|
| 1 | subnet-mask | Маска подсети (задаётся автоматически из subnet) |
| 3 | routers | Шлюз по умолчанию |
| 6 | domain-name-servers | DNS-серверы |
| 15 | domain-name | DNS-суффикс |
| 42 | ntp-servers | NTP-серверы |
| 66 | tftp-server-name | TFTP-сервер |
| 67 | boot-file-name | Файл загрузки (PXE) |
🔗 Будущая статья: Все опции DHCP: от Option 1 до Option 252 — справочник администратора
7. Настройка резервирования IP (Host Reservations)
Что такое статический dhcp? Это привязка конкретного IP-адреса к MAC-адресу устройства. В Kea резервирования настраиваются в секции reservations внутри подсети.
7.1. Базовое резервирование по MAC-адресу
"subnet4": [{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [{ "pool": "192.168.1.100 - 192.168.1.200" }],
"reservations": [
{
"hw-address": "00:11:22:33:44:55",
"ip-address": "192.168.1.10"
},
{
"hw-address": "AA:BB:CC:DD:EE:FF",
"ip-address": "192.168.1.20",
"hostname": "fileserver"
}
]
}]
7.2. Резервирование с индивидуальными опциями
Можно задать специфические опции для конкретного устройства (например, другой DNS) :
"reservations": [
{
"hw-address": "00:0c:29:e5:f5:43",
"ip-address": "192.168.1.201",
"option-data": [
{
"name": "domain-name-servers",
"data": "10.0.0.11"
}
]
}
]
7.3. Резервирование по client-id
Некоторые устройства используют client-id вместо MAC-адреса:
"reservations": [
{
"client-id": "01:52:54:00:9d:05:35",
"ip-address": "192.168.1.202",
"hostname": "ubuntu-client"
}
]
Важно: IP-адреса резервирований должны находиться вне динамического пула, чтобы избежать конфликтов. В примере выше пул начинается со 100, а резервирования — 10 и 20.
🔗 Будущая статья: Массовое резервирование IP в Kea через базу данных
8. Настройка нескольких подсетей и VLAN
Kea может обслуживать несколько подсетей (например, разные VLAN) одновременно. Для этого добавьте несколько блоков в массив subnet4.
8.1. Пример для двух подсетей
"subnet4": [
{
"id": 1,
"subnet": "192.168.1.0/24",
"pools": [{ "pool": "192.168.1.100 - 192.168.1.200" }],
"option-data": [
{ "name": "routers", "data": "192.168.1.1" }
]
},
{
"id": 2,
"subnet": "192.168.2.0/24",
"pools": [{ "pool": "192.168.2.100 - 192.168.2.200" }],
"option-data": [
{ "name": "routers", "data": "192.168.2.1" }
]
}
]
8.2. Работа с VLAN через DHCP Relay
Если Kea находится в одной VLAN, а клиенты — в других, необходимо настроить DHCP Relay (IP Helper) на маршрутизаторе. Kea автоматически определит подсеть по IP-адресу Relay (GIADDR) и выдаст адрес из соответствующего пула.
🔗 Будущая статья: Настройка DHCP для нескольких VLAN через IP Helper
9. Управление через kea-shell и REST API
Одно из главных преимуществ Kea — возможность перезагружать конфигурацию без остановки сервера через API.
9.1. Перезагрузка конфигурации через kea-shell
Если у вас настроен kea-ctrl-agent и задан пароль, выполните:
kea-shell --host 127.0.0.1 --port 8000 --auth-user kea-api --auth-password $(cat /etc/kea/kea-api-password) --service dhcp4 config-reload
После ввода команды нажмите Ctrl+D. Успешный ответ:
[ { "result": 0, "text": "Configuration successful." } ]
9.2. Проверка статуса через API
kea-shell --host 127.0.0.1 --port 8000 --auth-user kea-api --auth-password $(cat /etc/kea/kea-api-password) --service dhcp4 status-get
9.3. Альтернативный способ: перезапуск службы
Если REST API не нужен, можно просто перезапустить службу:
sudo systemctl restart kea-dhcp4-server
🔗 Будущая статья: Kea REST API: автоматизация управления DHCP
10. Просмотр аренд (leases) и мониторинг
Kea хранит информацию о выданных IP-адресах в файле /var/lib/kea/kea-leases4.csv :
sudo cat /var/lib/kea/kea-leases4.csv
Пример вывода:
address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state
192.168.1.100,00:0c:29:e5:f5:43,01:00:0c:29:e5:f5:43,3600,1741827897,1,0,0,client1,0
10.1. Мониторинг через журнал
sudo journalctl -u kea-dhcp4-server -f
Или через syslog:
sudo tail -f /var/log/syslog | grep kea
10.2. Настройка логирования в файл
В конфигурацию можно добавить отдельный файл логов:
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "/var/log/kea/kea-dhcp4.log"
}
],
"severity": "INFO",
"debuglevel": 0
}
]
Не забудьте создать директорию для логов:
sudo mkdir -p /var/log/kea
sudo chown _kea:_kea /var/log/kea
11. Отладка и устранение неполадок
11.1. Частые ошибки
Ошибка 1: «Kea не запускается»
- Причина: Синтаксическая ошибка в JSON-файле (лишняя запятая, незакрытая скобка).
- Решение: Проверьте конфигурацию:
sudo kea-dhcp4 -t -c /etc/kea/kea-dhcp4.conf.
Ошибка 2: «Нет интерфейса»
- Причина: Указан несуществующий интерфейс в
interfaces-config. - Решение: Узнайте правильное имя интерфейса командой
ip link showи исправьте.
Ошибка 3: «Клиенты не получают IP»
- Причина: Другой DHCP-сервер в сети или файрволл блокирует порты 67/68.
- Решение: Проверьте наличие других DHCP-серверов, откройте порты в UFW.
11.2. Проверка наличия других DHCP-серверов
sudo tcpdump -i eth0 -n port 67 or port 68
11.3. Настройка UFW для Kea
sudo ufw allow 67/udp
sudo ufw allow 68/udp
12. Миграция с ISC DHCP на Kea
Если у вас есть существующая конфигурация ISC DHCP (/etc/dhcp/dhcpd.conf), её необходимо переписать в формат JSON. ISC предоставляет утилиту kea-admin для миграции, но часто проще настроить Kea вручную.
12.1. Основные соответствия параметров
| ISC DHCP (dhcpd.conf) | Kea (kea-dhcp4.conf) |
|---|---|
subnet 192.168.1.0 netmask 255.255.255.0 | "subnet": "192.168.1.0/24" |
range 192.168.1.100 192.168.1.200; | "pools": [{"pool": "192.168.1.100 - 192.168.1.200"}] |
option routers 192.168.1.1; | "option-data": [{"name": "routers", "data": "192.168.1.1"}] |
default-lease-time 600; | "valid-lifetime": 600 |
host printer { hardware ethernet ...; fixed-address ...; } | "reservations": [{"hw-address": "...", "ip-address": "..."}] |
12.2. Перенос файла аренд
Файл аренд ISC DHCP (/var/lib/dhcp/dhcpd.leases) имеет другой формат. Kea не умеет его читать. Рекомендуется:
- Остановить ISC DHCP.
- Настроить Kea с нуля.
- Клиенты получат новые аренды.
🔗 Будущая статья: Пошаговая миграция с ISC DHCP на Kea
13. Заключение и ссылки на будущие статьи
Мы подробно разобрали настройку Kea DHCP на Ubuntu — современную замену устаревшему ISC DHCP. Вы научились устанавливать Kea, настраивать пулы адресов, резервирования по MAC, опции DNS и шлюза, управлять сервером через REST API и отлаживать работу.
Ключевые выводы:
- Kea — это будущее DHCP. ISC DHCP больше не поддерживается.
- Конфигурация в формате JSON требует внимательности к синтаксису (запятые, скобки).
- Всегда проверяйте конфигурацию командой
kea-dhcp4 -tперед перезапуском. - REST API позволяет перезагружать конфигурацию без остановки сервера.
Следующие статьи из серии (обновляются):
- 🔗 Сравнение DHCP-серверов: Kea vs ISC DHCP vs dnsmasq
- 🔗 Kea Control Agent: полное руководство по REST API
- 🔗 Продвинутые таймеры аренды в Kea DHCP
- 🔗 Все опции DHCP: от Option 1 до Option 252 — справочник администратора
- 🔗 Массовое резервирование IP в Kea через базу данных
- 🔗 Настройка DHCP для нескольких VLAN через IP Helper
- 🔗 Kea REST API: автоматизация управления DHCP
- 🔗 Пошаговая миграция с ISC DHCP на Kea
- 🔗 Настройка ISC DHCP сервера на Ubuntu
- 🔗 Подробная настройка DHCP на Windows Server 2019/2022
Если вы искали современное руководство по настройке Kea DHCP на Ubuntu — эта статья дала вам все необходимые примеры. Успешной настройки вашей сетевой инфраструктуры!












Добавить комментарий