bind -伯克利大学所开发ns(name server)服务器软件。

这篇挺详细,可以参考:

http://www.linuxidc.com/Linux/2013-05/84478.htm


配置文件: /etc/named.conf

区域数据文件: /var/named(master存放此处),/var/named/slave(slaver 自动同步此处)

acl telecom_ip { 192.168.1.12; };//acl 用于定义访问列表
acl unicom_ip { 192.168.1.21; };

options {                                     ## options:主选项
        directory       "/var/named";         ## directory:定义下面file文件存放绝对路径
        allow-recursion { 192.168.1.0/24; };  ## 允许哪些IP递归查询
        notify yes;                           ## 默认yes,修改后提示辅助ns服务器
        querylog yes;                         ## 是否开启日志(生产环境中不建议开启)
};


view telecom {                                ## view 定义一个区域,用来做智能dns,比如例子
        match-clients { telecom_ip; };        ## 中定义telecom,unicom2个view,match-clients
        zone "test.com" IN {                  ## 匹配acl定义的IP段,此时定义的zone,需要写
                type master;                  ## 在view的{}内。 
                file "telecom.test.com.zone"; ##zone 定义授权管理的区域
        };                                    ## type 定义ns服务器类型{master|slaver}                       
};                                            ## file 定义区域文件名,存放在directory定义处

view  unicom {
        match-clients { unicom_ip; };
        zone "test.com" IN {
                type master;                   ## type slave;
                file "unicom.test.com.zone";   ## master { 192.168.1.11; } slave需要指定master
                allow-transfer { 192.168.1.12; } ##定义允许哪slaver进行zone传送
        };
};

view anys {
        match-clients { any; };
        zone "test.com" IN {
                type master;
                file "test.com.zone";
        };


zone "localhost" IN {
        type master;
        file "named.localhost";


下面是zone数据文件内容,

定义:

SOA记录:每个Zone仅有一个SOA记录。定义zone的权威服务器,需要写FQDN。SOA记录包括Zone的名字,一个技术联系人和各种不同的超时值。

NS记录:定义zone的ns服务器,可以有多个。

MX:定义zone的mail服务器。

A:定义主机,name <--> ip 

CNAME:定义别名

  • #Serial 
    数值Serial代表这个Zone的序列号。供Slave DNS判断是否从Master DNS获取新数据。每次Zone文件更新,都需要修改Serial数值。RFC1912 2.2建议的格式为YYYYMMDDnn 其中nn为修订号;

  • #Refresh
    数值Refresh设置Slave DNS多长时间与Master Server进行Serial核对。目前Bind的notify参数可设置每次Master DNS更新都会主动通知Slave DNS更新,Refresh参数主要用于notify参数关闭时;

  • #Retry
    数值Retry设置当Slave DNS试图获取Master DNS Serial时,如果Master DNS未响应,多长时间重新进行检查;

  • #Expire
    数值Expire将决定Slave DNS在没有Master DNS的情况下权威地提供域名解析服务的时间长短;

  • #Minimum
    在 8.2版本之前,由于没有独立的 $TTL 指令,所以通过 SOA 最后一个字段来实现。但由于 BIND 8.2 后出现了 $TTL  指令,该部分功能就不再由 SOA 的最后一个字段来负责,由 $TTL 全权负责,SOA 的最后一个字段专门负责 negative answer ttl(negative caching)

$ORIGIN .        ##全局变量,"$"符进行声明
$TTL 600        ; 10 minutes   ##dns记录在本地服务器存在时间默认s单位。
test.com             IN SOA  ns1.test.com. admin.test.com. (  ##定义SOA的权威服务器ns1.test.com.
                                20150134   ; serial
                                3600       ; refresh (1 hour)
                                300        ; retry (5 minutes)
                                172800     ; expire (2 days)
                                21600      ; minimum (6 hours)
                                )
                        NS      ns1.mageedu.com.
                        NS      ns2.mageedu.com.
                        MX      10 mail.mageedu.com.
$ORIGIN test.com.
*                       A       192.168.1.1
fin                     NS      ns1.fin
$ORIGIN fin.test.com.
ns1                     A       192.168.1.21
$ORIGIN test.com.
ftp                     CNAME   www
imap                    A       192.168.1.1
mail                    A       192.168.1.121
market                  NS      ns1.market
$ORIGIN market.test.com.
ns1                     A       192.168.1.31
$ORIGIN test.com.
ns1                     A       192.168.1.11
ns2                     A       192.168.1.12
pop3                    A       192.168.1.121
www                     A       192.168.1.1



子域授权

比如添加了find.test.com这个子域,授权192.168.1.12进行管理。主域的区域数据文件需要有子域的记录。如下:

fin                     NS      ns1.fin
ns1                     A       192.168.1.21


nslookup使用方法:

server 192.168.1.11  ##定义查询dns服务器

type q={A|NS|MX} ##定义查询哪一种记录


dig使用方法:

dig -t A www.test.com @192.168.1.1  ## -t {A|NS }指定查询记录类型,@指定用哪个ns服务器查询


named-checkconf 检查配置文件语法错误,named-checkzone 检查zone文件是否有误


rndc远程管理ns服务器。