BIND (Berkeley Internet Name Domain, до цього Berkeley Internet Name Daemon) — універсальний каркас для побудови елементів інтернет-інфраструктури, таких як сервери DNS і DHCP; відкрита і найпоширеніша реалізація DNS-сервера, що забезпечує виконання перетворення DNS-імені в IP-адресу і навпаки. BIND підтримується організацією Internet Systems Consortium. 10 з 13 кореневих серверів DNS працюють на BIND, решта 3 працюють на NSD.

BIND
Тип DNS server
Розробник Internet Systems Consortium
Перший випуск червень 1986; 37 років тому (1986-06)
Стабільний випуск 9.18.26(ESV) & 9.16.50(now EOL) (17 квітня, 2024; 4 дні тому (2024-04-17))
Нестабільний випуск 9.19.23 (17 квітня, 2024; 4 дні тому (2024-04-17))
Операційна система Linux, NetBSD, FreeBSD, OpenBSD, macOS
Мова програмування C
Ліцензія Mozilla Public License[1]
Репозиторій gitlab.isc.org/isc-projects/bind9.git
Вебсайт www.isc.org/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. Окремий інтерес представляє модуль накопичення статистики, який у поєднанні з додатковими надбудовами може віддавати статистику по протоколах HTTPXML-поданні) або 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.

Посилання ред.

  1. LICENSE in main BIND 9 branch.