一.什么是dns
众所周知,在互联网上通信是要使用ip地址的,然而ip地址不便于人们记忆,所以要将ip地址映射为便于理解记忆的域名,dns为我们提供了这项服务。dns即domain name system(域名系统),它可以正向解析将域名解析为对应的ip地址,也可以反向解析将ip地址解析为域名。
二.域名结构
1.根域名服务器
最顶级的dns服务器是根服务器,全球只有13台,管理着互联网的主目录,其中十台在美国,两台在欧洲,一台在日本。
2.顶级域名服务器
顶级域名包括以下三种:
(1)国家顶级域名:用来代表某个国家,如cn代表中国,uk代表英国。
(2)通用顶级域名:常用的有com(商用域名),edu(教育机构),int(国际组织),net(网络服务机构),org(非营利组织),gov(政府部门)等。
(3)基础结构域名:这种顶级域名只有一个即arpa,用于反向域名解析,因此称为反向域名。
3.权限域名服务器
域名的结构由标号序列组成,各标号之间用点隔开:
. 三级域名 . 二级域名 . 顶级域名.
例如www.baidu.com.,最右侧的.是根域名,com是顶级域名,baidu是二级域名,www是三级域名。
三.dns工作过程
1.当使用浏览器上网时,浏览器会首先查找自己的缓存。
2.如果没有会查找所在主机的hosts文件。
3.如果在hosts文件中没有找到域名的映射,会向本地dns服务器的53端口发送请求,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。这里要注意的是如果发送的请求大于512字节,双方会协商建立tcp连接。
4.如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
5.如果本地服务器即无法解析该域名,也没有关于它的缓存,本地服务器有递归查询与迭代查询两种方案。
如果使用递归查询,本地服务器会向上级服务器发出请求,上级服务器如果能解析这个域名则返回记录,无法解析则会向更高一级的服务器查询直到根服务器。不管上级服务器如何查询,本地服务器只会发送一次请求。
如果使用迭代查询,本地服务器会向根服务器发送请求,根服务器会判断该域名归哪个顶级服务器管理并返回其ip地址,本地服务器再访问这个顶级域名服务器,重复流程直到解析出该域名对应的ip地址。
四.部署
BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。bind程序运行起来的进程名为named,通过rpm -ql查找它的配置文件所在路径。
案例一:正向解析
vim /etc/named.conf
指出资源记录所在位置,解析baidu.com域