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

提到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网友可以查阅其它资料。

AD: 腾讯云 1核2G云服务器首年38元
推广推荐

Proudly Powered By WordPress | IEWB.NET 2009-2024 版权所有