Опубликован DHCP-сервер Kea 1.5, развиваемый консорциумом ISC

Консорциум ISC представил релиз DHCP-сервера Kea 1.5.0, идущего на смену классическому ISC DHCP. Исходные тексты проекта распространяются под лицензией Mozilla Public License (MPL) 2.0, вместо ранее применяемой для ISC DHCP лицензии ISC License.

DHCP-сервер Kea основан на технологиях BIND 10 и построен с использованием модульной архитектуры, подразумевающей разбиение функциональности на разные процессы-обработчики. Продукт включает в себя полнофункциональную реализацию сервера с поддержкой протоколов DHCPv4 и DHCPv6, способную заменить собой ISC DHCP. В Kea встроены средства динамического обновления DNS-зон (Dynamic DNS), поддерживаются механизмы обнаружения серверов, назначения адресов, обновления и переподключения, обслуживания информационных запросов, резервирования адресов для хостов и PXE-загрузки. В реализации DHCPv6 дополнительно предусмотрена возможность делегирования префиксов. Для взаимодействия с внешними приложениями предоставляется специальный API. Возможно обновление конфигурации на лету без перезапуска сервера.

Информация о выделенных адресах и параметрах клиентов может храниться в разных типах хранилищ — в настоящее время предоставляются бэкенды для хранения в файлах CSV, СУБД MySQL, Apache Cassandra и PostgreSQL. Параметры резервирования хостов могут быть заданы в файле конфигурации в формате JSON или в виде таблицы в MySQL. В состав входит инструмент perfdhcp для измерения производительности сервера DHCP и компоненты для сбора статистики. Kea демонстрирует неплохую производительность, например, при использовании бэкеда MySQL сервер может выполнить 1000 присвоений адресов в секунду (около 4000 пакетов в секунду), а при использовании бэкенда memfile производительность достигает 7500 присвоений в секунду.

0_1361898323.png

Ключевые улучшения в Kea 1.5:

  • Добавлена поддержка централизованного управления конфигурацией DHCP-серверов. Реализация базируется на использовании протокола управления конфигурацией NETCONF (RFC-6241) и стрктурированной модели данных YANG (Yet Another Next Generation, RFC-6020). NETCONF предоставляет основанный на XML RPC для установки, изменения и удаления блоков конфигурации, а YANG структурирует информацию о состоянии устройства и используемой конфигурации (можно рассматривать YANG как продолжение развития SNMP MIB).

    В состав Kea включены готовые модели YANG для DHCPv4 и DHCPv6, отражающие типовые элементы конфигурации DHCP-серверов, которые можно использовать в системах централизованного управления, совместно с другим сетевым оборудованием, включая коммутаторы и маршрутизаторы Juniper, Huawei и Cisco. Для хранения БД с конфигурацией Kea задействован движок Sysrepo, оптимизированный для модели данных YANG и предоставляющий дополнительные инструменты для управления настройками (например, можно использовать шаблоны для быстрого развёртывания серверов с типовыми настройками).

    Для Kea подготовлен специальный фоновый процесс kea-netconf, который при запуске читает начальную конфигурацию из Sysrepo, а затем отслеживает все изменения и на лету отражает их во внутренней конфигурации Kea (если настройки изменены локально, например, при помощи утилиты sysrepocfg, изменения по аналогии переносятся в БД Sysrepo). Для удалённого управления DHCP-сервером предлагается использовать реализацию сервера и клиента NETCONF от проекта Netopeer2;

    0_1544948216.png
  • Добавлена поддержка глобального резервирования хостов. Ранее резервирование хостов могло осуществляться только в привязке к определённым подсетям, что, например, при необходимости привязки к клиенту определённых параметров DHCP требовало создания отдельных настроек резервирования для каждой сети, в которой разрешено работать клиенту. Сейчас для подобных клиентов можно обойтись одной глобальной настройкой;
  • Добавлены средства контроля перегрузки (congestion control). В прошлых версиях все поступающие запросы обрабатывались в порядке их поступления в очереди ограниченного размера. В случае перегрузки возникали заметные задержки, которые приводили к инициированию повторной отправки запросов, забиванию очереди устаревшими запросами и блокированию приёма новых запросов. Для противодействия данному эффекту в Kea 1.5 в дополнение к линейной очереди реализован кольцевой буфер, в случае переполнения которого новые запросы не отбрасываютяся, а вытесняют самые старые. Кольцевой буфер пока предложен в качестве опции и требует явного включения в настройках;
  • Улучшены возможности для создания отказоустойчивых конфигураций (High Availability). Реализован новый механизм для синхронизации базы привязок IP-адресов к клиентам, передающий изменения небольшими блоками, вместо полного обновления сведений о всех привязках, что существенно ускоряет синхронизацию больших подсетей;
  • Предложен концептуальный прототип бэкенда для хранения конфигурации, который будет доведён до рабочего состояния в следующем выпуске Kea 1.6. Новый тип бэкенда позволит использовать СУБД в качестве источника для получения информации о настройках для DHCP-сервера;
  • Добавлена поддержка флага для определения является ли сервер DHCPv4 авторитетным (authoritative) или вторичным, что позволяет организовать совместную работу двух серверов на одном линке;
  • В бэкендах для хранения привязок (lease) появилась возможность хранения дополнительного контекста пользователя (user context), который может включать произвольные данные в формате JSON;
  • Добавлена новая библиотека Class_cmds, предназначенная для отображения, добавления, обновления и удаления классов клиентов, определённых для DHCPv4 и DHCPv6;
  • Инфраструктура разработки, подготовки документации и отслеживания ошибок переведена на платформу Gitlab (ранее использовалась платформа Trac).

© OpenNet