Назад | Перейти на главную страницу

Dns сервер какой лучше привязать или mydns?

Я собираюсь запустить новый веб-сайт, для которого потребуются DNS-серверы. Он может иметь более 10 000 зон и будет получать больше файлов зон по мере нашего увеличения. Проблема в том, какое программное обеспечение DNS-сервера, по вашему мнению, более эффективно: mydns который использует mysql для хранения данных или bind где используются плоские файлы? Как эти DNS-серверы обрабатывают балансировку нагрузки, чтобы мы могли сбалансировать нагрузку между несколькими серверами, чтобы ни один из них не перегружался?

На мой взгляд, BIND лучше. Его легко настроить, вам не нужно перезапускать BIND, кроме случаев, когда вы обновляете программное обеспечение. Что вам нужно знать для BIND, так это команду rndc. Rndc позволяет перезагрузить отдельную зону, оставив BIND включенным. Если вы редактировали файл зоны, rndc немедленно опубликует изменения.

BIND может запускать базу данных. Вам необходимо указать некоторые шаги в шаге ./configure.

У меня есть хорошие инструкции, но они на русском языке. Попробую написать небольшой план действий.

  1. Предполагается, что MySQL-сервер уже установлен и настроен.
  2. Скачать проект mysql-bind с офф. сайт http://mysql-bind.sourceforge.net/ (там нам понадобятся два файла: mysqldb.c и mysqldb.h).
  3. Перейдите в папку с загруженным файлом, чтобы извлечь:

    cd ~ / загрузки / tar -xzf mysql-bind.tar.gz

  4. Перейдите в порт и загрузите исходный код bind9 (ваша версия mysql-bind предназначена для этой службы). Пока не компилировать!

    cd / usr / ports / dns / bind9 сделать извлечение извлечения

  5. Скопируйте загруженные файлы mysql-bind в источники привязки:

    cp ~ / downloads / mysqldb.c / usr / ports / dns / bind9 / work / bind-xxx / bin / named / cp ~ / downloads / mysqldb.h / usr / ports / dns / bind9 / work / bind-xxx / bin / named / include / named /

  6. Перейдите в папку с исходным кодом (work / bind-xxx) и внесите следующие изменения: a) Файл bin / named / Makefile.in читается:

    DBDRIVER_OBJS = mysqldb. @ O @ DBDRIVER_SRCS = mysqldb.c

    Запустите команду mysql_config -cflags и записываем вывод в переменную DBDRIVER_INCLUDES (пример: DBDRIVER_INCLUDES = -I/usr/local/include/mysql -fno-strict-aliasing -pipe)

    Запустите команду mysql_config -libs и записываем вывод в переменную DBDRIVER_LIBS (пример: DBDRIVER_LIBS = -L/usr/local/lib/mysql-lmysqlclient-lz-lcrypt-lm)

    б) В файле bin/named/main.c:

    • Добавление файла заголовка #include <named/mysqldb.h>
    • Внутри функции setup(), добавить звонок mysqldb_init() перед линией ns_server_create().
    • Внутри функции cleanup(), добавьте mysqldb_clear (); после ns_server_destroy().
  7. Установите Bind:

    cd / usr / ports / dns / bind make make install

  8. Создайте для каждой зоны свою таблицу mysql:

    CREATE TABLE имя_таблицы (имя varchar (255) по умолчанию NULL, ttl int (11) по умолчанию NULL, rdtype varchar (255) по умолчанию NULL, rdata varchar (255) по умолчанию NULL) TYPE = MyISAM;

  9. Создайте необходимые записи для зоны:

    INSERT INTO table_name VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. Webmaster.mydomain.com. 2008092901 28800 7200 86400 28800'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.'); INSERT INTO table_name VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com. '); INSERT INTO имя_таблицы ЗНАЧЕНИЯ ('w0.mydomain.com', 259200, 'A', '192.168.1.1'); INSERT INTO table_name VALUES ('w1.mydomain.com', 259200, 'A', '192.168.1.2');

  10. В файле named.conf прописываем правильную зону:

    зона "smol.website.ru" {тип мастер; уведомить нет; database "mysqldb имя_базы_данных имя_таблицы mysql_ip_address пароль для входа"; };

  11. Обратите особое внимание, в последней строке следует указать логин и пароль. Информация хранится в незашифрованном виде, что, конечно, опасно! Таким образом, есть два способа: как что-то сложное, чтобы сохранить код в закодированном коде или в базе данных, чтобы создать логин пользователя - «привязать» и передать - «привязать» и поставить его на выбор привилегий.
  12. Прошу прощения за мой английский. Надеюсь это поможет.
  13. инструкция написана для freebsd, для Linux должно быть аналогично

http://mysql-bind.sourceforge.net/ будет создавать таблицы для каждой добавляемой вами зоны, это действительно плохо, если вы собираетесь разместить более 100 тысяч зон.