搭建dns服务器


首先提出一些问题

  1. 什么是 DNS 的授权模式﹖是怎样进行的?
  2. zone 和 domain 的差别?
  3. 什么是 DNS 正解和反解?
  4. 什么是 DNS 的查询模式?
  5. 查询过程是怎样进行的?
  6. DNS cache 的作用和它对查询流程的影响?


BIND服务

在 Linux 上面﹐提供 DNS 服务的套件是叫 bind,
但执行服务程序名称则是 named。
请您确定系统上装有 bind﹑bind-utils﹑以及 caching-nameserver 这几个套件。


配置文件

/etc/named.conf
如果安装的是bind-chroot,则文件在
/var/named/chroot/etc/named.conf


/var/named/chroot/etc/named.caching-nameserver.conf
这个是主要配置文件的模板配置文件(区域模板配置文件


首先生成主要配置文件,复制出一份模板配置文件到此目录下,并更改名字为named.conf


cd  /var/named/chroot/etc    
cp  named.caching-nameserver.conf  named.conf
默认会有三个配置:


zone "." IN {
  type hint;
  file "named.ca";
};
根区域“ . ”(root zone) 的设定﹐同时它是一个 internet ( IN ) 的区域类别( class )。这里还指定了root zone 的服务器种类( type ) 为“hint”(也只有这个 zone 会使用这样的种类)。最后﹐用 file 指定这个区域记录文件为﹕“named.ca”﹐也就是“/var/named/named.ca”档案。


在 root zone 后面﹐您应该还会看到如下这两段,一个是localhost的正向解析,一个是反向解析。不允许自行更新DNS记录。


zone "localhost" IN {
  type master;
  file "localhost.zone";
  allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
  type master;
  file "named.local";
  allow-update { none; };
}; 
首先来看root zone,named.ca
里边的记录类似如下:


. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
以‘ . ’开头的﹐那就是所谓的 root zone 了﹗
第二栏都是‘ 3600000 ’﹐这是 TTL (Time To Live) 设定﹐也就是在 cache 中保留的时间,
其后的‘ NS ’是“Name Server”的意思﹐是 DNS 记录名称之一﹐也就是负责这个记录的 name server 是哪一台主机。
‘ A ’记录﹐也就是 Address 的意思﹐解释 [A-M].ROOT-SERVER.NET. 这些主机各自的 IP 地址所在。


如果您了解 DNS 的查询模式﹐您会知道 DNS 服务器在查询非自己管辖的 zone 的时候﹐首先会向 root 查询下一级的 zone 在哪里﹐然后逐级查询下去。但问题是﹕当 named 刚启动的时候﹐在 cache 里面一片空白﹐它怎么知道 root zone 的 servers 在哪里呢﹖这不是一个矛盾吗﹖所以﹐就必须靠这个档案告诉 named 关于 root zone 的 servers 有哪些﹖以及在哪里﹖


locaohost.zone