The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Консорциум ISC представил DHCP-сервер Kea 1.3

27.10.2017 22:36

Консорциум ISC опубликовал релиз DHCP-сервера Kea 1.3.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 присвоений в секунду.

Новые возможности Kea 1.3:

  • Добавлена функциональность общих сетей (Shared networks), дающая возможность группировать вместе несколько подсетей. Клиенту в таких общих сетях динамически назначается адрес из любой подсети, входящей в группу. При необходимости можно назначать типовые параметры для общей сети, которые могут быть переопределены для отдельных подсетей, классов клиентов или хостов.
  • Завершена реализация REST Web API для управления конфигурацией, доступного через HTTPS. Сняты ограничения на максимальный размер запросов и ответов через REST API, что позволяет применять его для управления крупными конфигурациями;
  • Представлены новые библиотеки для интеграции с Kea:
    • Библиотека с REST-интерфейсом для управления выделением IP-адресов (lease), позволяющая запрашивать данные о присвоениях адресов, добавлять привязки и изменять установленные связи.
    • Библиотека для управления подсетями через REST API, дающая возможность добавлять, удалять и изменять подсети без перезагрузки полной конфигурации.
    • Новый обработчик (hook) command_processed, через который можно подключать внешние библиотеки для переопределения обработчиков определённых команд;
  • Добавлено множество мелких возможностей, которые позволили достигнуть паритета в функциональности с ISC DHCP и упростили миграцию с ISC DHCP на Kea. Например, появилась поддержка опций 21 DHCPv4 и 10 DHCPv6, а также улучшена поддержка специфичных для вендоров опций DHCPv4 с кодом 43. Добавлена возможность определения опций с привязкой к пулам адресов DHCPv4. Реализовано условное выражение "ifelse";
  • Из путей дальнейшего развития Kea отмечается создание средств для обеспечения отказоустойчивости и создание экосистемы из внешних скриптов, дополнений, модулей интеграции и интерфейсов. Из недавно появившихся дополнений упоминается скрипт для генерации читаемого списка активных привязок (lease), обработчик Run Script для вызова внешних скриптов для любых доступных hook-ов, набор unit-файлов для systemd.


  1. Главная ссылка к новости (https://www.isc.org/blogs/kea-...)
  2. OpenNews: Консорциум ISC опубликовал DHCP-сервер Kea 1.1
  3. OpenNews: Первый стабильный релиз DHCP-сервера Kea, идущего на смену ISC DHCP
  4. OpenNews: Организация ISC намерена перевести BIND 10 на более открытую модель разработки
  5. OpenNews: Первый стабильный выпуск полностью переработанного DNS-сервера BIND 10
  6. OpenNews: Выпуск DNS-сервера BIND 10 1.2.0 ознаменовал передачу проекта сообществу
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47461-kea
Ключевые слова: kea, dhcp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (46) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:46, 27/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > а при использовании бэкенда memfile производительность достигает 7500 присвоений в секунду.

    А с /dev/null наверное ещё быстрее?

     
     
  • 2.3, Andrew Kolchoogin (ok), 23:11, 27/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > А с /dev/null наверное ещё быстрее?

    Такого бэкенда нет, а напрасно. У Циски в виде 'no ip dhcp conflict-logging', например, есть.

     
  • 2.4, rshadow (ok), 00:02, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Честно говоря - не впечатляет. Это уровень какой-то поделки 10 летней давности. Даже учитывая специфику задачи, нормальный асинхронный сервер на сях должен сотни тысяч запросов в секунду держать. Не говоря уж о том что всякие там nginx-сы да nosql-лы миллионы держат.
     
     
  • 3.18, Джон Ленин (?), 23:11, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ты же понимаешь, что автоматическая конфигурация DHCP зиждется на основе мультикаст-спама, и после присвоения клиент держит конфиг заданный пользовательским Lease-Time, или пытается автоматически перенастроиться после разрыва (если биллинг рвёт соединение раз в сутки).

    И вот нафига сервер должен позволять слишком частый спам, если речь идёт о задаче "настроилось - и просто работает потом"

     
     
  • 4.30, Аноним (-), 10:35, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    dhcp-relay? Не, не слышал
     

  • 1.2, letsmac (ok), 23:06, 27/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    >> В настоящее время предоставляются бэкенды для хранения в файлах CSV, СУБД MySQL, Apache Cassandra и PostgreSQL

    Сам функционал приятен - но нафиг не нужен.

     
     
  • 2.6, Аноним (-), 06:45, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Ну и дурак, можно триггерами и вставными функциями все реализовать прямиком из СУБД
     
     
  • 3.15, ram_scan (?), 14:51, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не всякий бэкенд поддерживает такие плюшки, а те что поддерживают все по разному. Нахрена такой геморрой с "тут играем тут не играем тут рыбу заворачивали" ?
     
  • 2.16, Аноним (-), 15:58, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    SQL бекенд для хранения mac->ip привязок и прочих параметров -- самое оно для ISP.
     
     
  • 3.17, letsmac (ok), 21:28, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > SQL бекенд для хранения mac->ip привязок и прочих параметров -- самое оно
    > для ISP.

    Для таких привязок BDB  или любого key-value индексированного за глаза хватит. Зачем там слон или мускул? Для увеличения кода и памяти?

     
     
  • 4.31, fi (ok), 16:11, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    see: http://www.sauron-dns.jyu.fi/features.shtml

    теперь удобно более не генерировать .txt :)))

     

  • 1.5, qsdg (ok), 05:15, 28/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > ... в файле конфигурации в формате JSON

    JSON -- худший формат для конфигов, нельзя комментарии писать, что для конфигов критично. Взяли бы YAML, ну.

     
     
  • 2.7, Аноним (-), 07:17, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    {"comment":"json iz da wurst format"}
     
     
  • 3.12, Анонним (?), 12:54, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не стандартизирован → не поддерживается консольными редакторами (типа vim) → неудобен → бесполезен.
     
     
  • 4.13, Анонним (?), 12:55, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Не стандартизирован → не поддерживается консольными редакторами (типа vim) →
    > неудобен → бесполезен.

    Не сам JSON конечно, а формат комментариев.

     
  • 3.14, username (??), 13:01, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты типа пошутил так?
    Понятно что можно закосить под комментарии но это не тоже самое.
     
  • 2.41, KonstantinB (ok), 22:23, 31/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    JSON вообще изначально задумывался как формат обмена данными между программами, а не что-то, что пишут руками (как конфиги).

    Если очень хочется, вполне можно расширить JSON комментариями вида // и научить этому парсер JSON-конфигов. Я так пару раз делал, нормально. IDEA даже понимает - подсвечивает комментарии (и выдает предупреждение, что нестандартненько).

    Но вообще лучше YAML, да.

     
     
  • 3.44, PnD (??), 11:56, 02/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Для человекочитаемого — лучше TML (развитие грамматик вида "ключ = значение").
    (xml, json, yaml) — для сериализации.
     
  • 3.46, adorne (?), 20:24, 07/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    То-то я и задрался писать конфиг руками, всё на свете проклял с этими скобками, кавычками и запятыми.
     

  • 1.8, mumu (ok), 09:48, 28/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я эту картинку уже лет 6 наблюдаю. А Kea как нигде не было, так и нет.
     
     
  • 2.9, mumu (ok), 09:53, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А, там же дата есть. Ну ок, 4.5 года.
     
  • 2.10, rshadow (ok), 11:02, 28/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Логично. Нужно же дать что-нибудь интересное чтобы народ потянулся. А их архитектурные решения мало кого волнуют.
     
  • 2.22, P.Galloway (ok), 14:00, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Я эту картинку уже лет 6 наблюдаю. А Kea как нигде не
    > было, так и нет.

    Ну у них в первых релизах (и даже первые неск. лет) - функционал уж сильно малый был, и много чего, что нужно в повседневной работе, не было (сейчас плохо помню, но, ЕМНИП, "изкаропки" не было fallback между двумя dhcp-серверами, что-то с поддержкой некоторых опций DHCP, не было dyn. update DNS и чего-то ещё связанное с особенностями работы с ним разными клиентами), из-за чего в малых сетях у меня его использовать, в принципе бы, не получилось (про большие думать страшно - там бы был показательный забег по граблям достойный SO).

     

  • 1.11, Аноним (-), 11:13, 28/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >набор unit-файлов для systemd

    Поттер не одобряет, нужно только полное встраивание systemd-kead :)

     
     
  • 2.19, Евгений Ваганович (?), 00:04, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    одобряю!
     

  • 1.20, СОВА (?), 01:54, 29/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Смотрел их код. Хотел привязать postgresql. Ужасно. Все завязано на mysql. Привязать фишки постгреса с полями inet и mac невозможно. Ip хранят как число. Рассматривали в качестве перехода на ipv6. Сейчас в качестве dhcp с БД мне кажется гораздо лучше работает freeradius. Но он практически не поддерживает ipv6.
     
     
  • 2.21, P.Galloway (ok), 13:51, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Patches are welcome.
    А если серьёзно - плохо, но, возможно, в будущих релизах подтянут.
    Кроме связки с БД у вас с использованием никаких проблем не наблюдалось? Или толком посмотреть в работе, из-за куцей интеграции с БД, не получилось?
     
  • 2.23, angra (ok), 19:58, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ip хранят как число

    А как что его хранить надо? Вроде самый естественный и рациональный способ.

     
     
  • 3.24, P.Galloway (ok), 21:59, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кэп мягко намекает, что IPv4 адрес это массив из 4 октетов, который не совсем есть таки число (что собственно не мешает перегнать его в число и даже обратно).
    Возможно, что товарищ выше, именно это и подразумевал, что адреса хранятся в виде массивов октетов и для чтения и обработки человеком, мягко говоря, неудобны (ну нельзя взять и посадить "обезъяну" и дать ей задание вбивать при подключении новых абонентов машинное представление адреса, переводя его из человеческого в уме), и, что требуется написать пару функций перевода человеческого представления в "нормальное" и наоборот, я, право, не смотрел внимательно как там у Kea дела сейчас, т.к. знакомился с проектом "в целях общего развития" во времена ещё BIND10 (тогда много чего ещё не было).
    Сам проект был с хорошим намеченным roadmap, но кол-во багофич, на первых порах, было просто ужасающим, как я понимаю, проекту попросту не хватило финансирования и исправлять это никто не спешит, т.к. уже есть isc-dhcp и другие, и их функционал устраивает большую часть потребителей - зачем вкладываться в что-то непонятное, которое ещё и использовать пока нельзя? Спасибо хоть, что есть гранты, благодаря которым проект ещё не помер окончательно.
     
     
  • 4.25, angra (ok), 22:42, 29/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Кэп мягко намекает, что IPv4 адрес это массив из 4 октетов, который  не совсем есть таки число (что собственно не мешает перегнать его  в число и даже обратно).

    И чем же он не число? На всякий случай напоминаю, что с точки зрения собственно IP протокола это единое поле из 32 бит, то бишь обычный unsigned integer, а не массив из четырех октетов, которым придан мистический смысл.


    > для чтения и обработки человеком, мягко говоря, неудобны (ну нельзя взять и посадить "обезъяну" и дать ей задание вбивать при подключении новых абонентов машинное представление адреса, переводя его из человеческого в уме)

    Условная "обезьяна" напрямую работает с полями в БД, минуя интерфейс? Вылезайте из криокамеры, сейчас 2017-й, а не 1987-й, когда SQL позиционировался как язык для оператора, а не для кода. Лазить в БД ручками "обезьяны" не будут.

     
     
  • 5.26, P.Galloway (ok), 01:17, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Из-за долгой истории и legacy в протоколе нет понятий байт, integer и прочих - о... большой текст свёрнут, показать
     
     
  • 6.28, angra (ok), 09:49, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вам так хочется поговорить за историю и протоколы Ну давайте поговорим Начнем ... большой текст свёрнут, показать
     
     
  • 7.33, P.Galloway (ok), 18:18, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А теперь после ностальгических воспоминаний давайте вернемся к изначальному вопросу "как
    > хранить ip в базе?". Какие есть рациональные альтернативы числу, не привязанные
    > к конкретной СУБД?

    Логично предположить, что 4 двоичных байт (или же 32 двоичных же бита), а число это или нет - будет зависеть от базы/ОС_хоста/etc. Но с вашей позицией я, в целом, согласен, т.к. на большинстве, если не на всех, современных платформ это и будет числом.

     
  • 5.27, P.Galloway (ok), 09:16, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Из-за долгой истории и legacy в протоколе нет понятий байт, integer и прочих - о... большой текст свёрнут, показать
     
  • 3.32, fi (ok), 16:18, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Ip хранят как число
    > А как что его хранить надо? Вроде самый естественный и рациональный способ.

    в Pg есть свой удобный тип для ip, естественно с поиском и сортировками.


     
     
  • 4.34, P.Galloway (ok), 18:25, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > в Pg есть свой удобный тип для ip, естественно с поиском и
    > сортировками.

    И ничто не мешает допилить Kea, или, что проще - ваш экземпляр БД, чтобы он хранил значения в нужном вам формате, а возвращал DHCP-серверу "число".

     
  • 4.35, angra (ok), 19:15, 30/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Может кого-то удивит, но поиск и сортировка работают и для ip в виде числа. Но число, в отличии от специфичного для pg типа, есть во всех БД, что позволяет работать с ними более унифицировано, а не писать костыли для каждой.
     
     
  • 5.37, fi (ok), 11:34, 31/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Может кого-то удивит, но поиск и сортировка работают и для ip в
    > виде числа. Но число, в отличии от специфичного для pg типа,
    > есть во всех БД, что позволяет работать с ними более унифицировано,
    > а не писать костыли для каждой.

    Может кого-то удивит, но…  текст тоже представлен в виде чисел, но нам как-то привычней использовать char или text для него. И вот вам пример условия:

    contains: inet '192.168.1/24' >> inet '192.168.1.5'

    ну ка сколько вам нужно накатать кода в mysql???

    то что другие базы более отсталые в этом плане не делает их лучше. ))))

     
     
  • 6.38, angra (ok), 13:28, 31/10/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Может кого-то удивит, но…  текст тоже представлен в виде чисел, но нам как-то привычней использовать char или text для него

    Нет, не представлен. Чтобы ты хоть чуть-чуть понял, попробуй сказать каким числом представлено все это предложение.

    > ну ка сколько вам нужно накатать кода в mysql???

    Страницу, нет, не меньше двух!!!

    Ну или как то так:

    3232235781 between 3232235776 and 3232236031

    >то что другие базы более отсталые в этом плане не делает их лучше. ))))

    Чудо, ты больше хеловорда писало хоть что-то? Судя по гениальным выводам - нет.

     
     
  • 7.39, fi (ok), 14:09, 31/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Может кого-то удивит, но…  текст тоже представлен в виде чисел, но нам как-то привычней использовать char или text для него
    > Нет, не представлен. Чтобы ты хоть чуть-чуть понял, попробуй сказать каким числом
    > представлено все это предложение.

    Да без проблем: d0bfd0bed0bfd180d0bed0b1d183d0b920d181d0bad0b0d0b7d0b0d182d18c20d0bad0b0d0bad0b8d0bc20d187d0b8d181d0bbd0bed0bc20d0bfd180d0b5d0b4d181d182d0b0d0b2d0bbd0b5d0bdd0be20d0b2d181d0b520d18dd182d0be20d0bfd180d0b5d0b4d0bbd0bed0b6d0b5d0bdd0b8d0b52e0a - а самому слабо было???

    >> ну ка сколько вам нужно накатать кода в mysql???
    > 3232235781 between 3232235776 and 3232236031

    Упс! это где же тут "192.168.1/24" ??? или ты прямо в голове преобразовал??? Точно не ошибся, сделал обратное преобразование для проверки?  А как насчет IPv6 - смогешь???

    тупо отрицать удобства работы с IP в привычной нотации

     
     
  • 8.40, angra (ok), 17:20, 31/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Про число ты так и не понял Ну ладно, начнешь писать код, поймешь Еще раз пов... текст свёрнут, показать
     
     
  • 9.43, fi (ok), 10:45, 01/11/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    мериешься членом банально и неверно ты 32бита не осилил распарсить в SQL, куда... текст свёрнут, показать
     
  • 2.45, PnD (??), 12:07, 02/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и пусть хранят (хорошо, что не строку).
    Повесьте вьюху с приведением типов и оперируйте ей. Это же ж постгря!
     

  • 1.29, Аноним (-), 09:58, 30/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Порт под MacOS естественно назвать iKea ;)
     
  • 1.36, Daemon (??), 22:19, 30/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Давно отказались от "чистого" dhcp. Только "псевдостатика", только хардкор! И хоть знаешь кому звюздюлей давать после очередного взлома сервака "студентами-практикантами"...
     
     
  • 2.42, Аноним (-), 06:16, 01/11/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Студни мак не научились подменять? Это что, швейное пту?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру