前言
DNS惟高速缓存是bind的附加功能,可以实现域外解析,在前序课程中,我们完成的都是域内解析,也就是说都是DNS自己管理的域,不管是主dns服务器还是辅助dns服务器,都是如此,但当客户端要求DNS服务器解析不是自己管理的域时,DNS有两种解决途径:
- 惟高速缓存:将要解析的域名发向根域服务器,采用递归查询的方式,逐步把域名解析出来,然后告知客户端解析的结果。
- 转发器:将要解析的域名发给网络中其它DNS服务器,由其它DNS服务器负责解析,自己只负责将解析的结果告知客户端。
以上两种方法我们用于域外解析,本讲先讲解惟高速缓存服务器的搭建。
实验过程
实验环境
- CentOS7:192.168.138.88 DNS惟高速缓存服务器(备注:该主机配置为可以访问互联网,根据自己的网络环境,配置ip地址和网关)。
- Windows Xp Professional:192.168.138.188 dns客户端指向CentOS7。
图1描述了惟高速缓存服务器的工作原理,我们从该图上可以清楚的看出,toutiao.com域不是由DNS服务器管理的,客户端发送www.toutiao.com,相对于DNS服务器来说,是陌生的,它只能借助其它的方法进行域名解析。惟高速缓存DNS采用递归查询的方式,将域名发向根域服务器,从根域服务器开始,逐层解析顶级域名、一级域名的IP,最终找到toutiao.com这台DNS服务器,获得了www主机记录。惟高速缓存DNS将解析的IP向客户端通报,同时将记录保存在自己的缓存中,如果下次有用户同样要访问头条网站,就直接从缓存中读取记录,这种方法可以加快DNS服务器的响应时间,因为递归查询相对来说是比较慢的。
实验步骤
图2 设置DNS服务器的IP地址信息。这里注意,由于惟高速缓存DNS需要访问根域服务器(根域服务器位于互联网上,稍后说明),所以一定要配置该主机能够访问互联网,要根据自己的实际网络环境配置。我的实验环境:192.168.138.0/24网段,网关192.168.138.2。
图3 安装bind软件,这个步骤简单,大家不要忘记配置yum本地安装源(略)。
图4 修改bind的主配置文件/etc/named.conf,“recursion no”选项,是否开启递归查询,no表示不开启。
图5 在客户端解析一下头条的网址www.toutiao.com,发现服务器拒绝应答:“Query refused”。
图6 我们再回到/etc/named.conf文件,将recursion选项改为 yes,同时看一下根域服务器文件:named.ca,该文件记录了根域服务器的信息。
图7 进入/var/named目录,我们看到了根域服务器文件,通过cat指令查看,里面有根域服务器根域服务器对应的IP,惟高速缓存就是根据这些IP地址先访问到根域服务器的。值得一提的是,全世界一共只有13台根域服务器,仔细看根域服务器的IP,都是公网IP,这也是为什么一定要配置服务器能够上网的原因,否则无法访问根域服务器,就不能进行递归查询了,解析也会失败。
修改完毕后不要忘记重启dns服务:systemctl restart named
图8 我们重新验证www.toutiao.com,发向能够解析,注意应答方式:Non-authoritative answer,非授权应答,说明服务器在进行域外解析。实验完毕!
总结
综合来看,惟高速缓存DNS的配置很简单,几乎不需要进行特殊的配置,比主DNS简单很多,但是在原理的理解上,还是要下一番功夫的。关于递归解析,根域服务器的概念,大家还是要多补充,才能够理解惟高速缓存DNS这个特殊的概念,本讲到这里,我们下一讲再见!
閱讀更多 年糕IT講堂 的文章