搭建dns服务器
首先提出一些问题
- 什么是 DNS 的授权模式﹖是怎样进行的?
- zone 和 domain 的差别?
- 什么是 DNS 正解和反解?
- 什么是 DNS 的查询模式?
- 查询过程是怎样进行的?
- 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