配置DNS主从服务器,能够实现正常的正反向解析
配置文件介绍
提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y
[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件
/var/named/slaves # 从dns服务器文件夹
[root@localhost ~]# vim /etc/named.conf
options {
#定义监听端口,如果所有地址都监听,则只写端口
listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
#定义数据文件目录
directory "/var/named";
#只允许本地主机进行查询
allow-query { localhost; };
};
#定义区域
zone "." IN {
type hint;
file "named.ca";
};
配置正向解析
1.下载bind服务并开启
[root@localhost ~]# yum install -y bind
[root@localhost ~]# systemctl start named
[root@localhost ~]# systemctl enable named
2.制定配置计划
www.xx.com——分配一个真实ip
dns.xx.com——分配一个真实ip
dhcp.xx.com——可以选择分配虚拟地址
nfs.xx.com——可以选择分配虚拟地址
ntp.xx.com——可以选择分配虚拟地址
3.修改主配置文件/etc/named.conf
修改监听的服务器的地址为真实地址
[root@localhost ~]# vim /etc/named.conf
listen-on port 53 { 192.168.119.130; };
directory "/var/named";
};
zone "baidu.com" IN {
type master;
file "named.baidu.com";
};
4.配置数据配置文件/var/named/
(1)在/var/named/下vim一个“.zone”结尾的区域文件
(2) 目前里面内容为空,格式有点不好把控,可以使用cp命令去将本地数据配置文件拷贝到本文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -a named.localhost named.baidu.zone
//-a可以将组合权限等一起复制
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
(3) 进行配置
[root@localhost ~]# vim /var/named/named.baidu.com
$TTL 1D
@ IN SOA @ admin.baidu.com. ( 0 1D 1H 1W 3H )
IN NS ns.baidu.com.
IN MX 10 mail.baidu.com.
ns IN A 192.168.119.130
mail IN A 192.168.119.130
www IN A 192.168.119.130
ftp IN CNAME www
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl disable firewalld --now
SOA主要是与区域有关,所以domain要写域名。而SOA后面会接七个参数,这七个参数的意义如下:
Master DNS服务器主机名:这个区域主要是哪台DNS作为Master的意思。
管理员的Email,发生问题可以联系这个管理员。由于@在数据库文件中有特殊含义,所以将用“.”代替@
序号(Serial),这个序号代表的是这个数数据库文件的新旧,序号越大代表越新。所以当你更改了数据库内容时,需要将这个数值放大。
更新频率(Refresh)定义slave多久向Master要求数据更新。
失败重新尝试时间(Retry),如果Slave无法对Master实现连接,那么在多长时间内,Slave会尝试重新连接到Master。
失效时间(Expire),如果一直尝试失败,持续连接到达这个设置值时限,那么Slave将不再继续尝试连接,并且尝试删除这份下载的zone file信息。
缓存时间(Minumum TTL),如果这个数据库zone file中,每条记录都没有写到TTL缓存时间的话,那么就以这个SOA的设置值为主。ttl的意思是当这笔记录被其他DNS服务器查询到后,这个记录会在对方DNS服务器的缓存中,保持多久时间。如果写了$TTL,则以该值为准。
时间单位:M(分钟),H(小时),D(天),W(周),默认是秒
6.进行测试
(1)Linux上测试,另外开一台虚拟机使用host,dig,nslookup、ping命令进行测试。
四、配置反向解析
1.修改主配置文件/etc/named.conf
只需要在区域文件书写处新添加区域文件即可
[root@localhost ~]# vim /etc/named.conf
zone "119.168.192.in-addr.arpa" IN {
//倒着写你服务器ip所在网段,最后一位0可以省略,后缀需要加上.in-addr-arpa
type master;
file "119.168.192.zone";
};
2.修改数据配置文件
在/var/named/目录下vim一个119.168.192.zone 文件
PRT表示反向解析
[root@localhost ~]# vim /var/named/119.168.192.zone
//基本格式和正向解析相同
$TTL 1D
@ IN SOA dns.lll.com. test.163.com (
0
1D
1H
1W
3H )
IN NS dns.ssll.com.
//将域名与IP指向反过来书写,这里的因为都属于是同一网段只需要写末尾一位
160 IN PTR dns.lll.com
161 IN PTR mail.lll.com
160 IN PTR www.lll.com
xx IN PTR ftp
xx IN PTR dhcp
xx IN PTR ntp
3.检查书写并重启服务
[root@localhost ~]# systemctl restart named
4.测试
nslookup 被解析的ip (主服务服务器ip)
[root@localhost named]# nslookup 192.168.119.10
server can't find 10.119.168.192.in-addr.arpa: NXDOMAIN
[root@localhost named]# nslookup 192.168.119.160
160.119.168.192.in-addr.arpa name = dns.lll.com.119.168.192.in-addr.arpa.