DNS基础原理及配置详解
DNS服务器搭建与配置
域名解析流程:(以www.johnson.com为例)
1.当客户端要解析一个域名时,客户端首先分析本地hosts文件,若无对应的主机条目,就去分析
本地缓存,若没有答案,则向本地DNS服务器发起请求
2.DNS服务器接收到请求,首先分析服务器本地的缓存,看是否存在要解析的答案,有则直接返回
没有则向根发起请求
3.根接收到请求,但根并不负责任何递归性的回答,所以,根会返回www.johnson.com的顶级域
.com所在的主机地址给本地DNS服务器
4.本地DNS服务收到根的指向性答复,然后去找负责.com的DNS服务器
5.负责.com的DNS服务器发现johnson.com是自己的管理的区域,但自己并不负责做递归性的答复
所以返回负责解析johnson.com的DNS服务器地址给本地DNS服务器
6.本地DNS服务器向负责解析johnson.com这个域的DNS服务器发起请求
7.负责解析johnson.com这个二级域的DNS服务器接收到解析www.johnson.com请求后,分析自己
的区域数据库文件,发现存在www主机,给本地DNS服务器返回答案(权威答案)
8.本地DNS服务器收到答复,将答案返回给客户端,域名解析过程完成
是不是发现解析一个主机名的过程很麻烦,所以才需要缓存这个东西,把第一次请求的答案放到缓存
中,当同一请求再次出现时,直接从缓存中返回答案,客户端和DNS服务器都可以缓存
需要注意的是,客户端是相对而言的,比如本地DNS服务器向根发起请求,那么相对于根,本地DNS
服务器就是客户端,不管请求者是客户端还是DNS服务器,只要你向我发起请求,你就是客户端
=========================================================================================
Censtos7 192.168.1.119 DNS服务器
用于测试的IP地址 192.168.1.118(随意一个IP地址,可以ping通的测试效果更明显),最终我们用自定义的域名 (此次我们用www.imooc.com)解析到该IP地址上
安装软件:
yum -y install bind bind-utils
检查软件安装内容
rpm -ql bind
修改配置文件
#备份一下文件
mv /etc/named.conf /etc/named.conf.default
#重新创建一个文件
vi /etc/named.conf
内容如下:
options {
directory "/var/named";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "imooc.com" IN {
type master;
file "imooc.com.zone";
};
检查配置文件是否正确
named-checkconf
添加imooc.com.zone 文件
vi /var/named/imooc.com.zone
内容如下:
$TTL 7200
imooc.com. IN SOA imooc.com. 892939414.qq.com (222 1H 15M 1W 1D)
imooc.com. IN NS dns1.imooc.com.
dns1.imooc.com. IN A 192.168.1.119
www.imooc.com. IN A 192.168.1.118
注意:
892939414.qq.com是一个邮箱地址,@在DSN中是保留字符串,所以用.代替
给文件赋权限
cd /var/named/
chown root:named imooc.com.zone
检查file文件是否正确
named-checkzone imooc.com imooc.com.zone
重启服务
systemctl restart named.service
测试
dig @192.168.1.119 www.imooc.com
将DNS服务器地址修改为192.168.1.119
windows环境
Linux环境下修改 /etc/resolv.conf 文件
nameserver 192.168.1.119
测试得到如下结果说明配置成功了。