一. DNS概述
1.什么是DNS?
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,
能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,
最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
2.DNS所涉及的软件与服务
软件: bind
服务: named
(1)bind软件
BIND是DNS协议的一种实现。BIND包含了一个DNS Server(服务名:named),
用来解析主机名到ip地址;一个解析库;一些辅助工具,还有一个安全目录工具,分别属于下面几个包:
bind包里主要包含:
named ##DNS服务
named-chkconfig ##named.conf文件检查工具
named-checkzone ##zone文件检车工具
rndc ##本地和远程dns控制工具
bind-libs ##named DNS服务的库
bind-utils ##包含一系列辅助工具来测试
host
dig
nslookup
nsupdate
bind-chroot ##切根程序,用来切换默认目录到另外一个深层的安全的目录/var/named/chroot,类似于前面光盘进入救援模式的那种情况。
(2)named 服务
named 涉及的文件:
/etc/named.conf # bind主配置文件
/etc/named.rfc1912.zones # 定义zone的文件
/etc/rc.d/init.d/named # bind脚本文件
/etc/rndc.conf # rndc配置文件
/usr/sbin/named-checkconf # 检测/etc/named.conf文件语法
/usr/sbin/named-checkzone # 检测zone和对应zone文件的语法
/usr/sbin/rndc # 远程dns管理工具
/usr/sbin/rndc-confgen # 生成rndc密钥
/var/named/named.ca # 根解析库
/var/named/named.localhost # 本地主机解析库
/var/named/slaves # 从ns服务器文件夹
named主配置文件: /etc/named.conf
listen-on port ##监听端口和ip地址
allow-query ##服务作用范围(本机还是指定网段还是全网)
recursion ##查询方式:递归/迭代
zone ##根区域解析文件
include ##包含的区域文件;例如:include “/etc/named.rfc1912.zones”;
二. DNS高速缓存
1.什么是DNS的高速缓存?
服务器可以高速缓存从其他 DNS 服务器收到的 DNS 记录。 也可以在 DNS 客户服务中使用高速缓存,
将其作为 DNS 客户端保存在最近的查询过程中得到的信息高速缓存的方法。 总的来说就是提高解析速度。
2.DNS高速缓存有什么作用?
当某个访问请求解析过一个域名以后,该解析记录就放置在缓存中,以后再有同样的解析请求,
就直接从缓存中提供结果,加快了访问者的应答速度。
dig命令:
dig(域信息搜索器)命令是个用于询问 DNS 域名服务器的灵活的工具。
他执行 DNS 搜索,显示从受请求的域名服务器返回的答复
三. 配置高速缓存DNS
配置DNS服务端:
1.安装bind软件来实现DNS服务
##安装bind软件
[root@localhost ~]# yum install -y bind
##查看bind软件包含的配置文件
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
##永久性添加行号
[root@localhost ~]# vim /etc/vimrc
############
末尾添加: set nu
2.编写主配置文件
[root@localhost ~]# vim /etc/named.conf
###################
11 listen-on port 53 { any; }; #监听端口和ip地址
17 allow-query { any; }; #服务作用范围
18 forwarders {114.114.114.114;}; #转发器(114.114.114 是所有问题的答案,即当有客户端访问本机DNS服务器时,都从114获取答案)
32 dnssec-validation no; #关闭互联网认证
##重启服务
[root@localhost ~]# systemctl restart named
注意:因为是第一次开启服务,由于加密字符不够,所以开启服务时会一直停留在此界面。
故需要打开此虚拟机图形界面的shell敲击键盘生成加密字符,此时服务便会开启成功
##查看DNS服务端口
[root@localhost ~]# netstat -antlp | grep named
##查看火墙的状态
[root@localhost ~]# systemctl status fierwalld
[root@localhost ~]# systemctl stop firewalld
配置DNS服务端: (测试 )
配置客户端1:
(1).指定 DNS服务器
[root@foundation34 ~]# vim /etc/resolv.conf
######################
nameserver 172.25.254.134 #域名服务器(DNS服务器)
[root@foundation34 ~]# dig www.music.com
(1).指定 DNS服务器
[root@localhost ~]# vim /etc/resolv.conf
############
nameserver 172.25.254.134 #域名服务器(DNS服务器)
[root@localhost ~]# dig www.music.com
客户端询问DNS服务器(134主机),DNS服务器询问114.114.114.114(全国通用DNS地址)
第一次访问网址较慢,之后访问速率大大加快,因为DNS服务器(134主机)缓存了第一次访问网址的结果,
即只有第一台主机访问时需要网络延迟,其他的主机直接访问之前的缓存信息即可
排错思想:
1.重启named服务失败?
(1)清空日志
> /var/log/messages
(2)重启服务
systemctl restart named
(3)查看日志
cat /var/log/messages
(4)根据日志报错提示修改文件内容
2.执行dig命令时报错提示超时?
(1)检查火墙的状态是否为关闭状态
systemctl status firewalld
(2)检查客户端是否指定了 DNS服务器
cat /etc/resolv.conf