dig :yum install -y bind-utils
yum install bind
/etc/named.conf为DNS主配置文件
/etc/init.d/named为DNS服务起停脚本(Centos7为systemctl start named)
cp /etc/named.conf /etc/named.conf.bak 备份原配置文件
> /etc/named.conf 清空配置文件
vim /etc/named.conf 编辑配置文件
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
chown named /etc/named.conf(一般情况下默认已设置所属主为named)
cd /var/named/
dig -t NS . > named.ca
vim localhost.zone 加入
@ IN SOA localhost. admin.localhost. (
2013081601
1H
10M
7D
1D
)
@ IN NS localhost.
localhost. IN A 127.0.0.1
vim named.local 加入
$TTL 86400
@ IN SOA localhost. admin.localhost. (
2013081601
1H
10M
7D
1D
)
@ IN NS localhost.
1 IN PTR localhost
检查配置是否有问题
named-checkconf(没有任何显示说明没有问题)
正向解析(域名到IP)
named-checkzone "localhost" /var/named/localhost.zone
反向解析(IP到域名)
named-checkzone "0.0.27.in-addr.arpa" /var/named/named.local
rndc-confgen -r /dev/urandom -a 生成rndc.key,如果没有这个key,named启动不了
chown named:named /etc/rndc.key
systemctl start named 启动named
netstat -nlp | grep named 查看一下named进程是否监听了53端口
测试正向解析:dig @127.0.0.1 localhost
测试反向解析:dig @127.0.0.1 -x 127.0.0.1
PTR反解析
增加一个域名
自定义zone(abc.com)
vim /etc/named.conf 加入
zone "abc.com" IN {
type master;
file "abc.com.zone";
};
编辑zone文件:vim /var/named/abc.com.zone
$TTL 600
@ IN SOA abc.com root.abc.com (
2013081601
1H
10M
7D
1D
)
IN NS ns.abc.com.
IN MX 10 mail.abc.com.
ns IN A 192.168.153.133
www IN A 192.168.153.134
mail IN A 192.168.153.100
bbs IN CNAME www.abc.com.
vim /etc/resolv.conf
修改dns为本机IP
named-checkconf
named-checkzone "abc.com"/var/named/abc.com.zone
都OK的话重启named
systemctl restart named
然后ping www.abc.commail.abc.com 会解析到对应的153.133/153.134上
各个参数的含义
q TTL:表示域名缓存周期字段,指定该资源文件中的信息存放在DNS缓存服务器的时间,此处设置为600秒,表示超过600秒则DNS缓存服务器重新获取该域名的信息。
q @:表示本域,SOA描述了一个授权区域,如有abc.com的域名请求将到ns.abc.com域查找。root表示接收信息的邮箱,此处为本地的root用户。
q serial:表示该区域文件的版本号。当区域文件中的数据改变时,这个数值将要改变。从服务器在一定时间以后请求主服务器的SOA记录,并将该序列号值与缓存中的SOA记录的序列号相比较,如果数值改变了,从服务器将重新拉取主服务器的数据信息。
q refresh:指定了从域名服务器将要检查主域名服务器的SOA记录的时间间隔,单位为秒。
q retry:指定了从域名服务器的一个请求或一个区域刷新失败后,从服务器重新与主服务器联系的时间间隔,单位是秒。
q expire:指在指定的时间内,如果从服务器还不能联系到主服务器,从服务器将丢去所有的区域数据。
q Minimum:如果没有明确指定TTL的值,则minimum 表示域名缺省的缓存周期。
q A:表示主机记录,用于将一个主机名与一个或一组IP地址相相对应。
q NS:一条NS 记录指向一个给定区域的主域名服务器,以及包含该服务器主机名的资源记录。
q CNAME:用来将一个域名和该域名的别名相关联,访问域名的别名和访问域名的原始名字将解析到同样的主机地址。
最后四行分别定义了相关域名的指向的IP地址。
配置DNS转发
我们配置的DNS只能解析我们自己定义的zone的,没有定义的是不能解析的。
配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确存在,也就是说这个域名已经被某个DNS服务器解析了
环境
DNS服务器:前文配置好的192.168.153.133abc.com
测试客户机:192.168.153.136
在测试机上修改dns,修改为153.133,我们自己配置的DNS服务器
vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.153.133
dig abc.com 测试,解析到153.133
现在测试机只能解析到已配置好的DNS服务器上,但是访问不了互联网,所以需要在DNS服务器上配置转发
vim /etc/named.conf 在options里加入forward
options {
directory "/var/named";
forward first;
forwarders {8.8.8.8;};
};
这两行就是用来配置转发的,该DNS服务器不能解析的域名就会转发到8.8.8.8这个服务器上去解析。
named-checkconf 检查配置文件是否有错误
systemctl restart named 重启named服务
在测试机上测试ping www.abc.com发现IP是192.168.153.134
ping www.qq.com则是正常的互联网IP