一,DNS简介
DNS域名解析协议,它只是一种大家都遵守的协议。因此也是要靠软件来提供DNS服务,然而在linux系统上通常用bind这个软件提供DNS服务。DNS主要功能是将主机名称解析成IP,因此我们浏览网页时,只是输入一个网址,就能够访问到对方所提供的网页。
DNS既然能够提供解析,那必须依靠自身的数据库,才能提供解析功能,然而组成数据库的内容,也就是我们所称作的资源记录,资源记录有多种类型,下面介绍有哪些类型。
1,资源记录类型:
(1)A 记录:FQDN --> ip, (在ipv6中A记录标识为AAAA)
(2)PTR记录:IP -->FQDN
(3)soa(start of authbority起始授权记录):用于标识区域的主要负责人,一般是主dns,放在资源记录的第一个位置。
(4)ns(nameserver):用于标志一个区域的dns服务器。
(5)mx:用于标识这个区域的邮件服务器,必须一个对应的A记录。
(6)cname:别名
2,资源记录格式:name [ttl] in type rdata
(1)type是A记录,则name表示FQDN,rdata是ip。
(2)type是ns,name是当前区域名称,DNS服务器的名称,任何ns记录都有与之对应的A记录。
(3)type是cname,name是别名,rdata是正式名称.
(4)type是mx,则name是区域名称,rdata是优先级和对应的服务器名称,当然肯定存在a记录。
(5)ttl(time to live):存活时间,在此我们可以省略,但是必须定义一个全局的存活时间。
(6)soa:格式
domain_nameIN SOA fqdn(主dns服务器名称) (
serial number(数据库版本号,有改变自动加1)
refresh time(刷新时间
retry time(重试时间)
expire time(失效时间)
ttl for nagative answer (否定回答的ttl
)
3,区域类型:
(1)hint:启始域,或线索域,存放全球的13台根节点,如果定义了转发就可以不用定义。
(2)master:主dns区域
(3)slave:从dns区域
(4)forward:转发区域
实验环境:redhat 5.8
二,实验步骤:
安装bind,这里安装bind97,所以卸载本机自带的
(1)在主DNS编辑/etc/named.conf(如果没有可以自己新建),并修改权限为640,属组为named,主要为了安全性。
在/var/named的目录下,依次新建以下几个文件:localhost.zone,127.0.0.zone,name.ca安装软件时已经提供了,如果没提供也可以自己建立。
# vim /etc/localhost.zone
$TTL 600
@ IN SOA localhost. admin.localhost. (
2013101401
1H
30M
7D
3H )
IN NS localhost.
IN A 127.0.0.1
127.0.0.zone的内容,只是将NS记录写PTR的格式。
# cp /etc/localhost.zone /etc/127.0.0.zone
(2)下面介绍两个命令测试配置文件跟区域文件的语法有没有
named-checkconf 检查/etc/named.conf语法有没有错误,详细用法man下。
# named-checkconf /etc/named.conf
named-checkzone 检查区域文件有没有错误,但是不能检查逻辑错误
# named-checkzone localhost /etc/localhost.zone
zone localhost/IN: loaded serial 2013101401
OK
(3)启动named服务,测试是否正常
修改/etc/resolv.conf为自己的DNS服务器,如果不修改在测试时需要指定用哪个服务来解析
正向解析
反向解析
(3)用rndc控制DNS
将密钥的前面的注释符号去掉
此时可以用rndc来控制dns服务,检查bind是否正常运行,先重启named 服务
(4)下面建立自己的区域
在/etc/named.conf中建立
在/var/named目录,建立正反向区域所对应的文件
正向区域文件
反向区域文件
此时已增加两个区域,修改权限与属组,用rndc reconfig重新载入配置文件,用dig命令测试能否正常解析。
下面测试区域能否正常传送
上面表示能够正常传送,也可以用host -l 测试
(5)在上面的区域中我定义了两个ns记录,一个为从服务器,现在配置从服务器,前面的步骤都一样,把这些文件从主服务复制到从服务器,省去再次建立的麻烦。named.conf,localhost.zone,127.0.0.zone,bingo.com.zone,192.168.0.zone,用scp命令,这些文件复制过来可以先测试named服务能否正常运行。只是在从服务器上的named.conf需要做如下修改,注意rndc的密钥需要重新生成。
查看/var/log/messages下的日志有没有成功从主服务器把文件复制过来,注意是自动复制,不是手动
(6)在主服务器上添加一条记录测试是否正常:
添加完后,用rndc reload重新载入配置文件,先可以在主服务器测试能否正常解析dig -t A web.bingo.com。然后在从服务器观察有没有添加成功
(7)限制区域传送,只允许从服务器传送。在主服务器添加一条记录
在从服务器测试能否传送成功dig -t axfr bingo.com @192.168.0.130
(8)接一下篇子域授权