配置和安装dns服务之前先了解一下linux的dns知识
详见http://www.51cto.com/art/200709/57249.htm下面知识对我有用的一些
DNS与BIND的区别
DNS:一种主机名称与IP的解析协议
BIND:提供DNS服务的套件
DNS服务器工作原理
客户端linux主机利用/etc/resolv.conf中提供的DNS服务器的IP来进行查询
DNS服务器会这样做:
假设要访问
(1) 先看本身有没有记录
(2) 向最顶层查询
向最顶层的.(root)这部主机来查询.(root)的下一层.cn
(3) 向第二层查询
就到.cn查询,找到.edu.cn
(4) 接着一步一步下来
(5) 记录暂存记忆档
查找要找的IP后,就将,对应的IP信息在自己的暂存记忆档中保存起来
这个暂存档是有时间性的,当过了DNS设定记忆的时间(通常是24小时),该记忆就会被释放
几点注意:
a> 只有域名是经过上层合法的DNS主机设定的,才可以在INTERNET上被查询到
b> 主机的暂存记忆档,是有时间性的,所以当修改一个域名之后,可能要2~3天才能全面的启用
c> 每一部可以记录主机名称与IP对应的DNS服务器都可以随意更动他自己的资料库,注意,是他自己的
要让你的主机名称对应IP且让Internet上的电脑都可以查询的到,就需要:
(1) 上层DNS 授权让你设定DNS主机,或者
(2) 直接请上层DNS主机来帮你设定
区域(Zone)
一个正解或反解的设定就是一个zone
如,以鸟哥的vbird.idv.tw为例,一个域名的DNS设定档里必需有
##hint(root)的设定
##vbird.idv.tw这个域名的正解设定
##localhost的正解设定(非必要)
##localhost的反解设定(非必要)
那么就有四个zone
DNS server使用的是bind这个套件,他的主要参数档是/etc/named.conf
查询DNS是否安装
(1)
# rpm -qa | grep bind
bind-utils-9.2.4-16.EL4 <==是用户端搜寻主机名称的相关指令
bind-9.2.4-16.EL4 <==DNS服务器主程序
bind-chroot-9.2.4-16.EL4 <==将bind主程序关在家里?
那个chroot即change to root,那个root代表的是根目录
可以用该命令来将某个目录指定为bind程序的根目录,由于是根目录,所以bind便不能离开该目录。
CentOS默认将bind锁在/var/named/chroot中
BIND的默认设定
/etc/named.conf ——设定档
/etc/sysconfig/named ——是否启动chroot及额外的参数,由这个档案控制
/var/named/ ——资料库档案默认放置在这个目录
/var/run/named ——named这去程序执行时默认放置pid-file在此目录内
可通过查看/etc/sysconfig/named来查看chroot所指定的目录
# vi /etc/sysconfig/named
ROOTDIR=/var/named/chroot
这样bind的相关程序所需要的所有资料会是在:
/var/named/chroot/etc/named.conf
/var/named/chroot/var/named/zone_file1
/var/named/chroot/var/named/zone_file...
/var/named/chroot/var/run/named/...
不过,仍旧可以使用/etc/named.conf来设定你的DNS
因为系统会主动的帮你将/var/named/chroot/etc/named.conf链接到/etc/named.conf
16.DNS的master/slave架构
master——本身具有提供Internet查询所需的资料
slave——
Cache-only——这种DNS主机没有自己的资料库,单纯帮助Client端向外部的DNS主机要求资料而已。代理?