CentOS7 DNS 服务 bind9实战
目录
一、DNS理论基础
1,DNS 的出现及演化
IP地址通信 》》hosts文件解析》》DNS系统
2,DNS概述入门
DNS (Domain Name System,域名系统),域名与IP的相互映射,提供用户访问互联网;
DNS端口:53 UDP协议
DNS的分布式数据库是以域名为索引的,每个域名实际上就是一颗很大的逆向树,树深最大127层,每个节点都有63个字符的文本标号;
3,DNS域名解析过程
首先,客户端先在本地缓存查找有没有域名缓存,如果没有,客户端发出DNS请求翻译IP地址或主机名。DNS服务器在收到客户机的请求后:
(4步描述)
(1)检查DNS服务器的缓存,若查到请求的地址或名字,即向客户机发出应答信息;
(2)若没有查到,则在数据库中查找,若查到请求的地址或名字,即向客户机发出应答信息;
(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。
(4)若没有找到,则返回错误信息。
4,Dns的分类
主DNS服务器:就是一台存储着原始资料的DNS服务器。
从DNS服务器:使用自动更新方式从主DNS服务器同步数据的DNS服务器。也成辅助DNS服务器。
缓存服务器:不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。
转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。
5,DNS记录类型
A记录:
将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录
CNAME记录:
如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录
MX记录:
建立电子邮箱服务,将指向邮件服务器地址,需要设置MX记录
NS记录:
域名解析服务器记录,如果要将子域名指定某个域名服务器来解析,需要设置NS记录
TXT记录:
可任意填写(可为空),通常用做SPF记录(反垃圾邮件)使用
AAAA记录:
将主机名(或域名)指向一个IPv6地址(例如:ff03:0:0:0:0:0:0:c1),需要添加AAAA记录
SRV记录:
记录了哪台计算机提供了哪个服务。格式为:服务的名字.协议的类型(例如:_example-server._tcp)
显性URL:
将域名指向一个http(s)协议地址,访问域名时,自动跳转至目标地址(例如:将www.net.cn显性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址为:www.hichina.com)。
隐性URL:
与显性URL类似,但隐性转发会隐藏真实的目标地址(例如:将www.net.cn隐性转发到www.hichina.com后,访问www.net.cn时,地址栏显示的地址仍然为:www.net.cn)。
二、环境介绍
[root@localhost ~]# uname -a
Linux 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
三、部署bind
3.1 yum 安装bind 9
[root@localhost ~]# yum -y install bind*.x86_64
[root@localhost ~]# systemctl enable named
[root@localhost ~]# systemctl start named
[root@localhost ~]# systemctl status named
3.2 查看端口状态
[root@localhost ~]# netstat -lntup|grep 53
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 4363/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 4363/named
tcp6 0 0 ::1:53 :::* LISTEN 4363/named
tcp6 0 0 ::1:953 :::* LISTEN 4363/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 4363/named
udp6 0 0 ::1:53 :::* 4363/named
# 记得关闭selinux
如上,则bind启动完成
四、修改配置文件
4.1调整网络访问权限
[root@localhost ~]# vim /etc/named.conf
##改options中的listen-on那一行的 “127.0.0.1” 为 “any”,allow-query 中的“localhost” 为”any”,意思是接受其他主机的访问和查询,如下:
重启bind服务
[root@localhost ~]# systemctl restart named
4.2 远程测试53端口是否可以访问
使用telnet 命令测试,如果没有自己去百度如何添加这个服务
4.3 添加配置zone
[root@localhost ~]# vim /etc/named.conf
zone "qiu.com." IN {
type master;
file "qiu.com.zone";
};
4.4 编辑qiu.com.zone 正向解析文件
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp named.localhost qiu.com.zone
[root@localhost named]# chown named.named qiu.com.zone
[root@localhost named]# chmod 640 qiu.com.zone
改为如下配置:
$TTL 1D
@ IN SOA ns.qiu.com. xx.qiu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.test.com.
ns A 192.168.56.11
master A 192.168.56.11
www CNAME master
web CNAME slave
4.5 检查配置文件
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "qiu.com." /var/named/qiu.com.zone
zone qiu.com/IN: loaded serial 0
OK #输出OK 代表正常,否则自行查询日志,或加入qq群 逗哥为您排查
五、重启named.server,测试域名解析
[root@localhost named]# systemctl restart named
[root@localhost named]# dig www.qiu.com @192.168.56.11
如上,在dns 服务器 192.168.56.11 上查到 www.qiu.com 指向 master.test.com,然后master.test.com 指向 192.168.56.11
六、配置反向解析
6.1 编辑 /etc/named.conf 在第3步添加的 zone 下面 添加:
zone "0.168.192.in-addr.arpa." IN {
type master;
file "192.168.56.rev";
};
6.2 创建rev文件
[root@localhost named]# cp qiu.com.zone 192.168.56.rev
[root@localhost named]# chown named.named 192.168.56.rev
6.3 编辑 192.168.56.rev
[root@localhost named]# cat 192.168.56.rev
$TTL 1D
$TTL 1D
@ IN SOA ns.qiu.com. xx.qiu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ NS ns.qiu.com.
11 PTR ns.qiu.com. #11是master的IP
11 PTR master.qiu.com.
12 PTR slave.qiu.com #12是slave的iP
6.4 检查配置文件
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]# named-checkzone "56.168.192.in-addr.arpa" /var/named/192.168.56.rev
zone 56.168.192.in-addr.arpa/IN: loaded serial 0
OK ##正常
七、测试反向解析
[root@localhost named]# systemctl restart named
[root@localhost named]# dig -x 192.168.56.12 @192.168.56.11
至此,主DNS 服务器上的 正向、反向解析已配置成功。