DNS就是域名系统,是因特网中的一项核心的服务,是用于实现域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用记住能够被机器直接读取的IP数串。通过主机名,得到该主机名对应的IP地址的过程就是域名解析(或者叫主机名解析)。
换句话说,IP地址是面向主机的,而域名则是面向用户的。
域名和IP的对应关系保存在host文件中。
正向解析:指根据域名(主机名)查找到对应的IP地址。
反向解析:指根据IP地址查找到对应的域名(主机名)。
递归查询:
本机向本地域名服务器发出一次查询请求,等待最总的结果。如果本地域名服务器无法解析,自己会以DNS客户端机器的身份向其他域名服务器查询,直到得到最终的IP地址告诉本机。
迭代查询:
本地域名服务器向根域名服务器查询,根域名服务器告诉本地域名服务器下一步应该去哪里进行查询,然后它再去进行查询,每次它都是以客户端的身份去各个服务器进行查询。
DNS工作原理
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域 (根的子域) 的主域名服务器的地址。
本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
重复第四步,直到找到正确的纪录。
本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
具体描述如下
1、主机先向本地域名服务器进行递归查询。
2、本地域名服务器采用迭代查询,向一个根域名服务器进行查询。
3、根域名服务器告诉本地域名服务器,下一次应该查询的顶级域名服务器的IP地址。
4、本地域名服务器向顶级域名服务器进行查询。
5、顶级域名服务器告诉本地域名服务器,下一步查询权限服务器的IP地址。
6、本地域名服务器向权限服务器进行查询。
7、权限服务器告诉本地域名服务器所查询的主机的IP地址。
8、本地域名服务器最后把查询的结果告诉主机。
域名的分级
域名可以划分为各个子域名,子域名还可以继续划分为子域名的子域,这样就会出现顶级域名、二级域名、三级域名等。
国家顶级域名 中国:cn,美国:us,英国:uk....
通用顶级域名 com公司企业,edu教育机构,gov政府部门,mil军事部门,net网络,org非盈利组织.....
反向域名 arpa,用于PTR查询(IP地址转换成域名)
正向解析
首先配置虚拟机一
1.先安装所需的服务
[root@localhost ~]# yum -y install bind
2.主配置文件
[root@localhost ~]# vim /etc/named.conf
3.修改区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
4.将区域数据文件进行备份,注意用cp-p保留权限复制,否则会报错
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost qf.com.zone
5.修改区域数据配置文件。域名后面要加“.”
[root@localhost named]# vim qf.com.zone
6.关闭防火墙,安全机制,重启服务
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]# systemctl restart named
7.将主机的ip设置为dns的地址
[root@localhost named]# vim /etc/resolv.conf
配置虚拟机二
配置dns服务器的ip地址
验证
反向解析实验
在正向解析的基础上,配置反向
配置虚拟机一
1.配置区域配置文件
[root@localhost named]# vim /etc/named.rfc1912.zones
2.备份区域数据文件
[root@localhost named]# cp -p qf.com.zone qf1.com.zone
[root@localhost named]# ls
data named.ca named.localhost qf1.com.zone slaves
dynamic named.empty named.loopback qf.com.zone
[root@localhost named]# vim qf1.com.zone
3.修改区域数据文件
切换虚拟机二验证
[root@localhost named]# systemctl restart named
配置主从服务器
配置主服务器(虚拟机一)
1.现将从的ip地址也添加到dns地址中
[root@localhost named]# vim /etc/resolv.conf
2.配置区域配置文件,指向从服务器
[root@localhost named]# vim /etc/named.rfc1912.zones
配置从服务器(虚拟机二)
1.配置主配置文件
[root@localhost ~]# vim /etc/named.conf
2.配置区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
3.配置dns服务器的ip地址
4.主停了,验证