一、相关包与环境
DNS(Domain Name Service)网域名称服务,是将域名和IP地址相互映射的一个分布式数据库,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
其相关软件包有如下三个:
bind-libs.x86_64 #提供库文件
bind-utils.x86_64 #提供工具包
bind.x86_64 #提供主程序包
bind-chroot #安全套件,本篇不涉及
实验环境:
192.168.147.129 DNS服务器
192.168.147.131 DNS测试服务器
192.168.147.128 DNS测试服务器
二、安装bind包
服务脚本和名称:/etc/rc.d/init.d/named /usr/lib/systemd/system/named.service
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key
自定义的域信息可以写在/etc/named.conf,也可以写在/etc/named.rfc1912.zones(一般写在这里)
解析库文件:/var/named/ZONE_NAME.ZONE
/var/named这个目录专门用于存放解析库文件,在主配置文件中有定义。
yum install bind -y
[root@centos7 ~]# rpm -ql bind
/etc/logrotate.d/named
/etc/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/rwtab.d/named
/etc/sysconfig/named
/run/named
/usr/lib/systemd/system/named-setup-rndc.service
[root@centos7 named]# systemctl start named
三、配置DNS服务
这里以配置www.jiangege.com域为例。
首先修改主配置文件/etc/named.conf,默认情况下是已经启用了本地缓存功能。不过为了加快查询速度和解决一些报错,通常情况下我们还需要一些调整。编辑前建议先备份
cp -a /etc/named.conf{,.bak}
[root@centos7 ~]# vim /etc/named.conf
options {
listen-on port 53 { localhost; }; //这里默认是监听在本机的127.0.0.1端口上
listen-on-v6 port 53 { ::1; };
directory "/var/named"; //这里定义的区域解析库的存放路径
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost;any; }; //默认只允许在本机查询,所以这里得加一个any表示允许所有主机查询
recursion yes; //递归查询,默认开启
dnssec-enable no; //禁用dnssec,下面那项也改为no
dnssec-validation no;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
编辑 vim /etc/named.rfc1912.zones文件
[root@centos7 ~]# vim /etc/named.rfc1912.zones
zone "jiangege.com" IN {
type master;
file "jiangege.com.zone";
};
在/var/named中创建jiangege.com.zone文件,由于有格式要求,我们这里可以以 /var/named/named.localhost为模板复制一份然后再修改。
cp -a named.localhost jiangege.com.zone //-a保留权限,因为named.localhost这个文件要以named身份读取
[root@centos7 named]# vim jiangege.com.zone
$TTL 1D
jiangege.com. IN SOA ns.jiangege.com. nsadmin.jiangege.com. (
1 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.jiangege.com.
www CNAME ns
ns A 192.168.147.129
完成之后重新加载或重启一下服务即可。
[root@centos7 named]# rndc reload
四、测试
在192.168.147.131和192.168.147.128上分别测试,使用host命令或dig命令测试
[root@centos6 ~]# host www.jiangege.com 192.168.147.129
Using domain server:
Name: 192.168.147.129
Address: 192.168.147.129#53
Aliases:
www.jiangege.com is an alias for ns.jiangege.com.
ns.jiangege.com has address 192.168.147.129
[root@centos7 ~]# dig www.jiangege.com @192.168.147.129
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.jiangege.com @192.168.147.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18948
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.jiangege.com. IN A
;; ANSWER SECTION:
www.jiangege.com. 86400 IN CNAME ns.jiangege.com.
ns.jiangege.com. 86400 IN A 192.168.147.129
;; AUTHORITY SECTION:
jiangege.com. 86400 IN NS ns.jiangege.com.
;; Query time: 1 msec
;; SERVER: 192.168.147.129#53(192.168.147.129)
;; WHEN: Wed Jun 26 02:47:42 EDT 2019
;; MSG SIZE rcvd: 90