环境用的redhat5.8,与dns主要相关的软件bind和bind-chroot。bind-chroot会改变bind的配置目录提升dns服务器的安全性。基础配置主要包括named.conf的配置,配置正向解析记录和反向解析记录。解析记录通常包括A记录,www,dns,ftp,mail等。web
查询是否系统是否已经安装对应软件。windows
rpm -q bind rpm -q bind-chroot
我这样的就是没安装,bind-libs,和bind-utils是系统自带的。
缓存
安装安全
yum install bind yum install bind-chroot
安装完成后,查询已安装的软件包所包含的全部文件bash
rpm -ql bind rpm -ql bind-chroot
或者用下面的方式。
服务器
设置域名为dnstest.com ,网络地址为192.168.64.0/24,添加dns,www,ftp主机名,添加别名记录,这些主机对应的IP地址为本身机器的IP地址,反向区域文件添加相应PTR记录。
dns服务器地址为本机ip地址:192.168.64.130网络
编写主配置文件,直接复制下面内容,更改对应内容便可。
注意一点要切记此文件的路径并非"/var/named",而是以下所示:
由于bind-chroot的缘由,全部的和bind有关的配置文件都在chroot/路径的类根目录。这里面只有和bind有关的配置,更安全一点。负载均衡
[root@localhost etc]# pwd /var/named/chroot/etc
options{ directory "/var/named"; }; zone "dnstest.com." IN { type master; file "dnstest.zone"; }; zone "64.168.192.in-addr.arpa" IN { type master; file "reverse.zone"; };
具体解释以下:svg
options{
directory “/var/named”;
};
具体信息含义:
options定义服务器的全局配置选项,在一个named.conf文件中只能有一个
directory “/var/named”;区域文件的存放位置,而这里的/var/named默认是/var/named/chroot/var/named目录下学习
zone “dnstest.com.” IN {
type master;
file “dnstest.zone”;
};
zone语句用于定义区域,其中必须说明域名、DNS服务器的类型和区域文 件名等信息。这是正向记录。
zone “64.168.192.in-addr.arpa” IN {
type master;
file “reverse.zone”;
};
这是反向记录,切记,“64.168.192.in-addr.arpa” 前面的ip一点要反着写,原来是192.168.64. 必定要写成64.168.192. 。
注意com后面有点 的地方,必定不能少。
编写正向解析数据文件
文件目录:/var/named/chroot/var/named/dnstest.zone
$TTL 86400 @ IN SOA dns.dnstest.com. root.dnstest.com. ( 2015111701 3H 15M 1W 1D ) IN NS dns.dnstest.com. dns IN A 192.168.64.130 www IN A 192.168.64.2 ftp IN A 192.168.64.131
具体解释以下:
@:指定域名
dns.dnstest.com. 主机名,以.结尾,表示完整的主机名
root.dnstest.com. 管理员的电子邮件地址
IN:表示资源记录使用TCP/IP地址
()部分指定SOA记录各类选项的值,主要用于和辅助域名服务器同步数据时使用。关于几个时间的解释,(从上到下一一对照):
Serial﹕序列号,每次更新该文件后,要将序列号增大,主要用master/slave模式的自动更新。其格式一般会是“年月日+修改次序”(但也不必定如此﹐您本身可以记得就行)。当 slave(辅助域名服务器) 要进行数据同步的时候﹐会比较这个号码。若是发如今这里的号码比它那边的数值“大”﹐就进行更新﹐不然忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字﹗
Refresh﹕这里是是告诉 slave 要隔多久要进行数据同步(是否同步要看 Serial 的比较结果)。
Retry﹕若是 slave 在进行更新失败后﹐要隔多久再进行重试。
Expire﹕这是记录逾期时间:当 slave 一直未能成功与 master 取得联络﹐那到这里就放弃 retry﹐同时这里的数据也将标识为过时( expired )。
Minimum﹕指定资源记录信息存放在缓存中的时间,这是最小预设 TTL 值﹐若是您在前面没有用“$TTL”来定义﹐就会以此值为准。
NS记录:名称服务器,指明区域中DNS服务器的主机名,也是区域文件中不可缺乏的资源记录。
编写反向解析数据文件
文件目录:/var/named/chroot/var/named/reverse.zone
$TTL 86400 @ IN SOA dns.dnstest.com. root.dnstest.com. ( 2015111701 3H 15M 1W 1D ) IN NS dns.dnstest.com. 130 IN PTR dns.dnstest.com. 2 IN PTR www.dnstest.com. 131 IN PTR ftp.dnstest.com.
service named start service named restart
/etc/resolv.conf,该文件是DNS客户端配置文件,修改 nameserver 的地址为你刚配置dns服务器的地址便可。
测试DNS的命令有,nslookup,host,dig,通常最经常使用的nslookup,windows下也能够用。
abc IN CNAME www.dnstest.com.
host -t dnstest.com
用该命令测试邮件交换记录。mail IN A [ip add(邮件服务器地址)] dnstest.com. IN MX 10 mail.dnstest.com.
*.dnstest.com. IN A IP地址
dnstest.com. IN A 【IP地址】
ftp IN A 192.168.64.50 ftp IN A 192.168.64.51 ftp IN A 192.168.64.52
辅助域名服务器只须要修改named.conf文件便可,不须要建立区域文件,由于区域文件将从主域名服务器上自动复制到辅助域名服务器的slave目录下。
named.conf
options{ directory "/var/named"; }; zone "zhoudi.com." IN { type slave; file "slaves/正向解析(自定义).zone"; masters {主dns的ip;}; }; zone "132.17.172.in-addr.arpa" IN { type slave; file "slaves/反向解析(自定义).zone"; masters {主dns的ip;}; };
我在学习的过程当中遇到如下错误,若是不幸你也遇到,能够参考参考。
以下图,保错找不到dnstest.zone,最后发现是路径问题,能够仔细参考上面教程,就能解决。
若是你路径正确,可是就是nslookup解析不出来,能够看这里。
在named.conf中,这里的ip要反着写。
配置文件是这个哦:/etc/resolv.conf