1、配置相关参数

yum install -y epel-release
setenforce 0
/etc/init.d/iptables stop
chkconfig iptables off

2、安装相关包

yum install bind bind-devel bind-utils

3、修改配置文件


一共有四个相关文件:named.ca(根域名配置)named.conf(dns server主配置文件)、正向解析文件、逆向解析文件


named.ca:

$ dig -t NS . @192.168.1.1 >  /tmp/named.ca    # 查询根dns server,并保存为文件,用于named.conf引用
$ cat /tmp/named.ca
; <<>> DiG  9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t NS . @192.168.1.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode:  QUERY, status: NOERROR, id: 54385
;; flags: qr rd ra; QUERY: 1, ANSWER: 13,  AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;.            IN  NS
 
;; ANSWER SECTION:
.          113146 IN  NS  j.root-servers.net.
.          113146 IN  NS  k.root-servers.net.
.          113146 IN  NS  l.root-servers.net.
.          113146 IN  NS  m.root-servers.net.
.          113146 IN  NS  a.root-servers.net.
.          113146 IN  NS  b.root-servers.net.
.          113146 IN  NS  c.root-servers.net.
.          113146 IN  NS  d.root-servers.net.
.          113146 IN  NS  e.root-servers.net.
.          113146 IN  NS  f.root-servers.net.
.          113146 IN  NS  g.root-servers.net.
.          113146 IN  NS  h.root-servers.net.
.          113146 IN  NS  i.root-servers.net.
 
;; Query time: 29 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Dec 13 14:35:01 2016
;; MSG SIZE  rcvd: 228


 

named.conf:(配置文件使用;//作为注释)

$ cat named.conf
//
// named.conf
//
// Provided by Red Hat bind package to  configure the ISC BIND named(8) DNS
// server as a caching only nameserver  (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for  example named configuration files.
//
 
# 主配置
options {
    listen-on  port 53 { 192.168.10.102; };             # 定义端口绑定的ipv4地址,
    //listen-on-v6  port 53 { ::1; };                    # 定义端口绑定的ipv6地址,
    directory   "/var/named";                             # named服务工作目录,
    dump-file   "/var/named/data/cache_dump.db";    # dump数据文件路径,
         statistics-file "/var/named/data/named_stats.txt";    # 静态文件路径,
         memstatistics-file "/var/named/data/named_mem_stats.txt";    #
    allow-query     { any; };    # 允许客户端查询的ip地址,any为任意,例如:192.168.1.0/24;172.16.0.0/18等,
    recursion  yes;    # 递归查询,除根服务器外尽量开启,
 
    dnssec-enable  yes;    # 是否开启dns sec,dns sec可以验证dns数据有效性,
    dnssec-validation  yes;    # 是否进行dns sec验证,
 
    /*  Path to ISC DLV key */
    bindkeys-file  "/etc/named.iscdlv.key";    #  设置内置key文件路径,
 
    pid-file  "/var/run/named/named.pid";     # pid文件路径,
    managed-keys-directory  "/var/named/dynamic";    # 设置dns sec动态key文件路径,
};
 
# 日志相关配置
logging {
         channel default_debug {      # 定义日志输出方式:syslog,file,stdout,stderr,文本文件。               
         file "data/named.log";     # 日志文件
         severity dynamic;    #多个级别:debug、info等
         };
};
 
# 根域配置
zone "." IN {
    type  hint;
    file  "/tmp/named.ca";    # 前面生成的根域文件;
};
 
zone "example.com" IN {      #  定义example.com的域名正向解析配置
    type  master;                # 域类型,类型可分为hint(根域),master(主dns),slave(从dns)。
    file  "/etc/ns.example.com";    # 正向解析文件
    allow-update  { none; };    # 是否允许
};
zone "10.168.192.in-addr.arpa"  IN {    # 定义逆向域名解析区域,此处zone的名字必须为ip地址反序+".in-addr.arpa"
    type  master;                              # 域类型,
    file  "/etc/10.168.192.zone";          # 逆向解析文件,
    allow-update  { none; };                # 是否允许更新,
};
 
include  "/etc/named.rfc1912.zones";     # 包含其他配置文件
include "/etc/named.root.key";


 

正向解析文件:ns.example.com

$ cat ns.example.com
$ TTL设定,定义区域中数据文件各项记录默认TTL值为86400,缺少不影响使用,会出现警告
$TTL   86400        
@          IN  SOA ns.example.com.  root.example.com.(    
# SOA记录设定,"@"代表相应域名,也就是在named.conf中这顶的zone,SOA表示区域授权开始。每一个区域文件只能有一个SOA。SOA后面指定的是区域的授权主机名称和管理员邮箱。注意域名后有“.”。而且授权主机名称必须在DNS设置中能够找到一个A记录,也就是ns对应的那条A记录。@在配置文件中有其他含义,因此邮箱@用.代替。
                            2016121301    ; serial        # serial 文件修改版本,格式为年月日加上修改次数,每次修改配置文件时应改动此数字。slave DNS进行信息同步时,会比较数值,当数值比自身值大时才会更新。
                            3H     ; refresh      # slave 与master同步的间隔时间;
                            15M    ; retry        # slave dns更新失败后,要隔多久进行重试;
                            1W     ; expiry        # slave dns同步失败后,多长时间清除对应记录;
                            1D)    ; minimum        # 默认最小TTL值,如果前面没有设定,此值为基准
# H:小时、D:天、W:周、M:分
# NS:定义此主机为域名服务器、MX:定义邮件交换服务器、A:定义A记录,即域名到IP的记录、CNAME:定义域名的别名;
           IN  NS  ns.example.com.        # 定义NS
           IN  MX  10  mail         # 定义mail交换,优先级为10
           IN  A   192.168.10.102
ns         IN  A   192.168.10.102
www        IN  A   192.168.10.102
mail       IN  A   192.168.10.102
linux      IN  CNAME  www


逆向解析文件:10.168.196.in-addr-arpa

# 与正向解析类似,多出PTR选项,定义一个反向解析记录,及IPURL的记录。

$ cat 10.168.192.zone  
$TTL   86400
10.168.192.in-addr.arpa. IN  SOA ns.example.com.      root.example.com.  (
                         2016121301 ; Serial
                         28800      ; Refresh
                         14400;     ; Retry
                         3600000       ; Expire
                         86400  )       ; Minimum
        IN    NS       ns.example.com.
102      IN    PTR      mail.example.com.
102     IN    PTR       www.example.com.


 

4、启动server

设置相关权限:

chown -R root.named /etc/named.conf /etc/ns.example.com/etc/10.168.192.zone /tmp/named.ca
/etc/init.d/named start
tail -f /var/log/messages # 查看启动日志
netstat -tlnup |grep 53    # 查看启动端口


5、nslookup测试域名

nslookup ns.example.com
nslookup mail.example.com