dns服务器bind和mydns哪个好?

Nes*_*h A 4 mysql domain-name-system bind

我将要创建一个需要 DNS 服务器的新网站。它可能有超过 10,000 个区域,并且随着我们变大会获得更多区域文件。问题是,您认为哪个dns服务器软件更有效:mydns哪个使用mysql存储数据或bind哪个使用平面文件?这些 DNS 服务器如何处理负载平衡,以便我们可以平衡多个服务器之间的负载,以免任何服务器过载?

Ale*_*hov 8

对我来说,BIND 更好。配置简单,除非升级软件,否则无需重启BIND。您应该查看 BIND 的是 rndc 命令。Rndc 允许您重新加载单个区域,同时保持 BIND 运行。如果您编辑了区域文件,rndc 将立即发布更改。

BIND 绝对有可能运行数据库。您需要在 ./configure 步骤中指定一些步骤。

我有一些很好的说明,但它们是俄语的。我会试着写一个小行动计划。

  1. 假设 MySQL-server 已经安装和配置。
  2. 从关闭下载 mysql-bind 项目。站点http://mysql-bind.sourceforge.net/(在那里,我们需要两个文件:mysqldb.c 和 mysqldb.h)。
  3. 跳转到下载文件所在的文件夹进行解压:

    cd ~/downloads/tar -xzf mysql-bind.tar.gz

  4. 跳转到端口下载源码bind9(你的mysql-bind版本是为这个服务设计的)。虽然不编译!

    cd /usr/ports/dns/bind9 make fetch 提取

  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/箱/命名/包括/命名/

  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

    b) 在文件中bin/named/main.c

    • 添加头文件#include <named/mysqldb.h>
    • 在函数内部setup()mysqldb_init()在该行之前添加一个调用ns_server_create()
    • 在函数内部cleanup(),添加 mysqldb_clear(); 之后ns_server_destroy()
  7. 安装绑定:

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

  8. 为每个区域创建其表 mysql:

    CREATE TABLE table_name ( name varchar(255) default NULL, ttl int(11) default NULL, rdtype varchar(255) default NULL, rdata varchar(255) default 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 table_name VALUES ('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”{ type master; 通知没有;database "mysqldb database_name table_name mysql_ip_address 登录密码"; };

  11. 特别注意,在最后一行应该指定用户名和密码。信息以未加密的形式存储,这当然是危险的!所以有两种方法:将代码保存在编码代码或数据库中以创建用户登录 - “绑定”和传递 - “绑定”并将其特权选择。
  12. 我为我的英语道歉。希望这可以帮助。
  13. 该指令是为 freebsd 编写的,对于 Linux 应该是类似的