DNS:域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。
1、因特网的域名结构
由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。
域名只是逻辑概念,并不代表计算机所在的物理地点。分为三大类:
(1)国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)
(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。
(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。
发展:
Hosts文件 ---------------需要不停地添加域名
1.周期性任务 ---------------在指定时间自动的去写(自动化)
2.server ---------------东西太多(性能)
3.分布式数据库 -------------全球各地分放
查找方式:
递归 ------计算机只发送一次请求
迭代 -----多次
实际解析分为两段,一段递归一段迭代
客户端和本地DNS服务器之间属于递归查询
DNS服务器和DNS服务器之间属于迭代查询
域名解析过程:当客户机中输入www.baidu.com时,这时客户机首先会查询本地浏览器缓存,如果有则调用这个映射关系,完成域名解析,如果没有则查看hosts文件,如果有则调用,如果没有则查看DNS解析器缓存,如果有则返回,如果没有,则请求参数中设置的DNS服务器,称为本地DNS服务器,请求本地DNS服务器,如果解析的域名在本地DNS服务器的配置区域资源中,则立即返回,此结果为权威性答案。如果查询的域名不在本地DNS服务器的配置区域资源中,但是在DNS服务器缓存中含有该域名的映射,则调用这个IP地址,完成域名解析,此结果不含有权威性。如果还没有查询到,就会根据本地DNS服务器的设置进行下一步操作,如果未启用转发模式,则本地DNS就把请求发送给13台根服务器,根服务器会根据收到的请求发送给本地服务器负责管理(.com)这个域名是的一个顶级域名服务器的IP,本地DNS服务器收到这个IP后会联系负责.com的这台服务器,如果这台服务器也不能解析,则会发送负责管理(qq.com)的二级域名服务器的IP,本地DNS收到后会联系这个IP的服务器,重复操作,直到找到www.bai.com的主机,如果为转发模式,则会转发给上一级的DNS服务器,由上一级的DNS服务器解析,如果也不能解析则转发给上上级DNS服务器或者发送给根服务器,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
DNS 服务类型:
主DNS服务器:数据修改(接受用户请求返回数据) master
辅助dns服务器: 定期请求数据同步 slave
缓存dns服务器: 只缓存dns数据 hint
转发服务器:缓存服务器去掉缓存功能 forward
配置dns主从服务器,解析qq.com域下的所有主机,www.qq.com aaa.qq.com bbb.qq.com …
主服务器
Vim /etc/named.conf
Cp /var/named/named.localhost /var/named/named.qq.com
Vim /var/name/named.baidu.com
访问需要停止防火墙:
systemctl stop firewalld
setenforce 0
从服务器的搭建
#yum install bind -y
访问需要停止防火墙:
systemctl stop firewalld
setenforce 0
(2)#vim /etc/named.conf
options {
listen-on port 53 { 192.168.80.130; };
directory “/var/named/slaves”;
};
zone “baidu.com” IN {
type slave;
file “named.baidu”;
masters { 172.24.8.129; }; 注意:主服务的ip
};
(3)#systemctl restart named
(4)重启服务
systemctl restart named
客户端
Vim /etc/resolv.conf
将nameserver的IP换为主服务器的IP地址
关闭防火墙
systemctl stop firewalld
setenforce 0
输入域名进行解析
在从服务器中检验