我的思想随着这些闪耀的绿叶而闪耀;我的心灵因了这日光的抚触而歌唱;

使用ntbind架设Windows下的DNS服务器

技术专栏 致远 352℃

提到DNS服务器估计多数技术人员首先想到的是Bind,这也没错,Bind的强大自不用细说。Bind入门不难,但要想架设一个实用环境的DNS服务器即使对于专业的运维人员也比较繁琐。对一般企业的网管来说使用Linux架设一台DNS服务器不是那么容易的一件事,也许在windows下他们更能顺手一些。

Google了下发现Bind很早就有了windows下的版本叫ntbind,网上也有了些教程教网友怎么做一个简单的DNS服务器。只是这些教程好像只有一个作者,然后其它人都是复制粘贴了下,连原作者写的两处错误代码也一样复制了过来,这两个小错误对老鸟来说很容易就能搞定,但对新手来说恐怕要头疼半天才行,所以我把原教程重新梳理了下,希望能帮到一些刚学做DNS服务器的网友。

首先要做的自然是 下载软件ntbind,现在最新版本是9.4.0,不过我测试使用的版本是9.3.0。下载、解压、安装自不用说,默认安装路径为C:\Windows\system32\dns。

安装完成后进入 C:\Windows\system32\dns\etc 目录建立配置文件named.conf,内容如下:

options {
    // zone文件的位置
    directory “C:\Windows\system32\dns\etc”;
    // 无法解析的域名就去查询ISP提供的DNS
    // 在下面的IP地址位置上填写ISP的DNS地址
    forwarders {
        8.8.8.8;
        114.114.114.114;
    };
    // 仅允许本机和子网内的机器查询
    allow-query {
        127.0.0.1;
        192.168.6.0/24;
    };
};
// 根DNS
zone “.” {
    type hint;
    file “named.root”;
};
// localhost
zone “localhost” IN {
    type master;
    file “localhost.zone”;
    allow-update { none; };
};
// localhost的反向解析
zone “0.0.127.in-addr.arpa” {
    type master;
    file “localhost.rev”;
};
// example.com
zone “example.com” IN {
    type master;
    file “example.com.zone”;
};
  这个文件和网上那个教程有一点点不同,网友可以对比下。
  然后逐个建立named.conf中提到的不能就Bind服务启动必须的几个文件。

named.root: 点此直接下载

localhost.zone:针对localhost的正向解析。代码如下:
$TTL 1D
@       IN      SOA     localhost.      root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum
        IN      NS      localhost.
localhost.        IN      A       127.0.0.1
localhost.rev: 针对localhost的反向解析。代码如下:
$TTL    1D
@       IN      SOA    localhost.    root.localhost. (
        2007091701          ; Serial
        30800               ; Refresh
        7200                ; Retry
        604800              ; Expire
        300 )               ; Minimum
            IN      NS      localhost.
1           IN      PTR     localhost.
example.com.zone:是我们为自己的域的正向解析配置。代码如下:
example.com.    IN  SOA   ns1.example.com.  root.example.com. (
        2007091701         ; Serial
        30800              ; Refresh
        7200               ; Retry
        604800             ; Expire
        300 )              ; Minimum
        IN    NS        ns1.example.com.
aaa       IN    A         192.168.6.2
这样我们配置文件建立完毕,此时可以启动服务了。进入C:\WINDOWS\system32\dns\bin目录然后命令行运行:
named -f -g -d 1
如果你完全复制文章中的代码,Bind在启动的过程中应该不会报什么错误。现在我们来进行测试,将本机dns改成127.0.0.1,然后访问aaa.example.com,这时应该能正常访问你内部网站192.168.6.2,当然这个地方你可以设置别的IP。也可以把example.com.zone中最后的代码改成:
*       IN    A         192.168.6.2    ;
这样无论访问aaa.aaa.example.com还是bbb.example.com都会指向你设置的IP192.168.6.2。
这是一个 使用ntbind架设Windows下DNS服务器的新手教程,至于如何使用srvany将named安装为服务和利用 rndc 命令来控制bind网友可以查阅其它资料。

转载请注明:致远博客 » 使用ntbind架设Windows下的DNS服务器

喜欢 (1)