BIND
BIND (Berkeley Internet Name Domain, до цього Berkeley Internet Name Daemon) — універсальний каркас для побудови елементів інтернет-інфраструктури, таких як сервери DNS і DHCP; відкрита і найпоширеніша реалізація DNS-сервера, що забезпечує виконання перетворення DNS-імені в IP-адресу і навпаки. BIND підтримується організацією Internet Systems Consortium. 10 з 13 кореневих серверів DNS працюють на BIND, решта 3 працюють на NSD.
Тип | DNS-сервер |
---|---|
Розробник | Internet Systems Consortium |
Стабільний випуск | 10 1.2.0 (17 квітня 2014 ) |
Репозиторій | gitlab.isc.org/isc-projects/bind9.git |
Операційна система | GNU/Linux, NetBSD, FreeBSD, OpenBSD, Mac OS X, Windows |
Мова програмування | C |
Ліцензія | Ліцензія ISC |
Вебсайт | www.isc.org/software/bind |
Історія
BIND був створений студентами на початку 1980-х на грант, виданий DARPA і вперше був випущений у BSD 4.3.
У версіях до 9 було виявлено чимало серйозних проблем з безпекою.
Версія 9 була переписана заново компанією Nominum , реліз був випущений у вересні 2000 року.
Ранні версії BIND зберігали інформацію тільки в текстових файлах зон. Починаючи з версії 9.4, як сховище можна використовувати LDAP, Berkeley DB, PostgreSQL, MySQL і ODBC.
BIND 10
Консорціум ISC представив стабільний реліз BIND 10 у лютому 2013, після чотирьох років розробки і через 13 років з моменту випуску BIND 9. BIND 10 має кардинально перероблену внутрішню архітектуру: на відміну від ранішої моделі реалізації всієї доступної функціональності в одному серверному процесі, в BIND 10 здійснений перехід до розділення функцій по окремим взаємопов'язаним процесам, кожен з яких реалізує свій сервіс. Поділ за різними процесам дозволив раціонально використовувати ресурси багатоядерних систем, розширив можливості масштабування, забезпечив ізоляцію окремих функцій і підвищив надійність.
Ключовою ланкою BIND 10 є процес msgq, він використовується для організації обміну повідомленнями між модулями. Функції авторитетного DNS-сервера виконує модуль auth, а функціональність DHCP забезпечується модулями dhcp4 і dhcp6. Модулі auth, dhcp4 і dhcp6 для збільшення масштабованості і балансування навантаження можуть запускатися в декількох екземплярах, наприклад, для кожного CPU на сервері може бути запущена окрема копія модуля, а запити на мережевий порт можуть рівномірно розподілятися між процесами. Для обслуговування вхідних і вихідних AXFR-запитів (трансфер зон цілком) представлені окремі сервіси xfrin і xfrout. Функції динамічного DNS-сервера виконує модуль ddns, а управління зонами делеговані модулю zonemgr.
Для організації віддаленого управління DNS-сервером підготовлений модуль cmdctl, поверх якого підготовлено кілька надбудов для управління конфігурацією, таких як утиліта bindctl, веб-інтерфейс WebTool, GUI-інтерфейс GuiTool і утиліта для забезпечення сумісності з конфігуратором BIND9. Для розбору і зберігання конфігурації задіяний модуль cfgmgr. Для управління сервером і зміни конфігурації може використовуватися RESTful-інтерфейс, що працює поверх HTTPS. Окремий інтерес представляє модуль накопичення статистики, який у поєднанні з додатковими надбудовами може віддавати статистику по протоколах HTTP (в XML-поданні) або SNMP.
17 квітня 2014 консорціум ISC випустив BIND 10 1.2.0. Випуск примітний завершенням стадії розвитку проекту під орудою консорціуму ISC і передачею проекту співтовариству, що має на меті перехід до відкритішої і незалежної моделі розробки. Повідомляється, що у консорціуму ISC немає ресурсів для одночасного розвитку двох альтернативних проектів — BIND 9 і BIND 10, тому ISC продовжить розробку ширше використовуваного BIND 9, а BIND 10 передасть в руки співтовариства.
Для уникнення плутанини з BIND 9, створюваний силами спільноти проект буде поширюватися під новим ім'ям Bundy. Релізів BIND 10 більше випускатися не буде, замість них будуть представлені випуски Bundy. Весь тягар з розвитку та супроводження кодової бази передається зацікавленим особам зі спільноти та інших компаній, офіційно ISC в розробці більше брати участь не буде. Код проекту буде перенесений на GitHub.
Очікується, що розширення кола розробників, що працюють над Bundy і вивчають цей код, призведе до прискорення процесу виявлення та виправлення помилок, а відкритіший процес розвитку Bundy дасть можливість самостійно розвивати необхідні функції, необхідність наявності яких може бути неочевидна при централізованій координації розробки. Розробка DHCP-сервера зі складу BIND 10 винесено в окремий субпроект Kea, котрий розвивається як відокремлений DHCP-сервер на базі технологій BIND 10. При цьому, напрацювання Kea також можуть входити до складу релізів Bundy.