1. 理论部分
1)什么是dns
DNS(Domain Name System)域名系统
在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆。为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。
2)主机名与域名的区别
主机名是内网的名字;域名是外网的名字。
主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。
3)dns结构
在DNS中,域名包括根域、顶级域、二级域和主机名。如下图
全世界共有13台DNS根域服务器。
顶级域:由Internet名称授权机构管理,有两种常见的类型,如下:
组织域:
.com(商业) 、 .org (组织) 、 .edu(教育) 、 .gov (政府) 、 .net(通讯) 、 .mil(军事) 、 .info(信息)
国家或地区顶级域:
Cn(中国) 、 hk(中国香港) 、 uk(英国) 等
4)域名解析过程
域名解析的过程:
- 第一步:客户端用户从浏览器输入www.baidu.com网站网址后回车,系统会查询本地hosts文件及DNS缓存信息,查找是否存在网址对应的IP解析记录。如果有就直接获取到IP地址,然后访问网站,一般第一次请求时,DNS缓存是没有解析记录的;
- 第二步:如果客户端没有DNS缓存或hosts没有对应www.baidu.com网站网址的域名解析记录,那么,系统会把浏览器的解析请求,交给客户端本地设置的DNS服务器地址解析(此DNS为LDNS,即Local DNS),如果LDNS服务器的本地缓存有对应的解析记录,就会直接返回IP地址;如果没有,LDNS会负责继续请求其它的DNS服务器;
- 第三步:LDNS会从DNS系统的“.”根开始请求www.baidu.com域名的解析,经过一系列的查找各个层次DNS服务器,最终会查找到www.baidu.com域名对应的授权DNS服务器,而这个授权DNS服务器,正是该企业购买域名时用于管理域名解析的服务器。这个服务器有www.baidu.com对应的IP解析记录,如果此时都没有,就表示企业的运维人员么有给www.baidu.com域名做解析;
- 第四步:baidu.com域名对应的授权DNS服务器会把www.baidu.com对应的最终IP解析记录发给LDNS;
- 第五步:LDNS把收到来自授权DNS服务器关于www.baidu.com对应的IP解析记录发给客户端浏览器,并且在LDNS本地把域名和IP的对应解析缓存起来,以便下一次更快的返回相同的解析请求的记录;
- 第六步:客户端浏览器获取到了www.baidu.com的对应IP地址,接下来浏览器会请求获得的IP地址对应的Web服务器,Web服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器;
至此,一次访问浏览网页的完整过程就完成了。
5)查询的分类
从查询方式分类
递归查询:客户端向dns服务求请求域名解析的查询过程
迭代查询:dns服务器向其他dns服务器查询的过程
从查询内容分类
正向解析:根据主机名称(域名)查找对应的 IP 地址
反向解析:根据 IP 地址查找对应的主机域名
6)域(zone)的概念
实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域),根据所管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:
缓存域名服务器
通过向其他域名服务器查询获得域名 -> IP 地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
主域名服务器
特定 DNS 区域的官方服务器,具有唯一性
负责维护该区域内所有域名 -> IP 地址的映射记录
从域名服务器
也称为 辅助域名服务器
其维护的 域名 -> IP 地址记录 来源于主域名服务器
2. centos7搭建dns服务
1)服务基础
软件包:bind
服务名:named
默认端口:53
配置文件:主配置文件+区域数据文件
主配置文件:/etc/named.conf
[root@localhost ~]# yum -y install bind