一.提问:
-什么是DNS:
DNS是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
-什么是高速缓存:
高速缓存是一种特殊的存储器子系统,其中复制了频繁使用的数据,以利于CPU快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。
二.实现高速缓存:
配置静态网络 vim /etc/sysconfig/network-scripts/ifcfg-eth0
2 BOOTPROTO=none
3 IPADDR=172.25.254.122
4 PREFIX=24
5 GATEWAY=172.25.254.22
更改全局网关 vim /etc/sysconfig/network
3 GATEWAY=172.25.254.22
修改DNS配置文件 vim /etc/resolv.conf
3 nameserver 114.114.114.114
重启网络 systemctl restart network
#每次更改网络配置文件后都要重启网络
检查网络连接状态 ping 172.25.254.22
更改主机名称 hostnamectl set-hostname dns-server.example.com
配置yum源 vim /etc/yum.repos.d/yum.repo
5 baseurl=http://172.25.254.22/rhel7.0
yum repolist
检查网关 route -n
##地址伪装功能开启,真实主机变成路由器
firewall-cmd --list-all
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
firewall-cmd --list-all
>此时,虚拟机连上网络可以进行正常上网(ping, dig)
下载bind yum install bind -y
开启named服务 systemctl start named
##第一次开启服务时,因为加密字符不够,服务无法正常开启,敲击键盘或移动鼠标即可正常开启服务
关闭服务端防火墙 systemctl stop firewalld
查看named服务包含配置文件 rpm -qc bind
查看配置文件 vim /etc/named.conf
重启named服务 systemctl restart named
查看监听端口 netstat -antlupe | grep named
测试: 客户端vim /etc/resolv.conf
3 nameserver 172.25.254.122
dig qq.com
##############################################
vim /etc/named.conf
1.服务端服务只允许53接口回环使用
客户端无法访问SERVFAIL
2.服务端53端口共享,但只允许本地用户访问
11 listen-on port 53 { any; };
客户端访问被拒绝REFUSED
3.服务端域名没有解析
11 listen-on port 53 { any; };
17 allow-query { any; };
客户端域名无法解析SERVFAIL
4.全部配置完成
11 listen-on port 53 { any; };
17 allow-query { any; };
18 forearders { 114.114.114.114; };
32 dnssec-validation no #是否进行DNSSEC确认开关
NOERROR
客户端访问成功(第一次访问时时长相对较长,而后因DNS查询信息已经缓存开始进行高速缓存)##
#############################################
三.本地解析:
1.本地正向解析:
修改配置文件 vim /etc/named.conf
11 listen-on port 53 { any; };
17 allow-query { any; };
修改子配置文件 vim /etc/named.rfc1912.zones
25 zone "westos.com" IN {
26 type master;
27 file "westos.com.zone"
28 allow-update { none; };
29 };