什么是DNS?
数据库
DNS(Domain Name System) 域名系统。它是现在互联网上可以相互通讯的服务之一,对于如今的互联网特别特别重要的,由于在这我的们不能很好记忆数字IP地址的问题上,输入IP地址来访问其余的主机是很困难的,和不现实的,若是数字IP地址用咱们所熟悉的各类名称(字符,例如:baidu taobao 等)就很好记忆啦。DNS就是来完成这个解析的功能的。
缓存
DNS工做的原理:服务器
首先,咱们先了解一个内容,例如www.baidu.com,ide
www.baidu.com 在DNS中是有阶层的 .com 中国工具
.baidu.com 中国河南测试
www.baidu.com 中国河南XX市spa
那么咱们说说DNS服务的工做机制以下图:
3d
咱们对上图进行下说明:blog
首先,客户端想要访问 www.baidu.com这个服务器递归
1,把请求发送给DNS服务器,DNS服务器收到请求后,发送给 .(根)服务器,
2,根服务器发现.com这个域是本身管辖的,就返回给DNS服务器,.com的地址,而后DNS服务器就去访问com这个服务器
3,.com这个服务器收到DNS的请求后,就发现.baidu.com就在本身的域内,因而就把.baidu.com返回给DNS,让它去找.baidu.com
4, .baidu.com收到DNS的请求后,发现对方要找的是本身域下的www,就告诉DNS你找对人啦,我就是你要找的,我这就把个人IP地址发给你,因而DNS请求到了目标IP地址。
5,DNS服务器把请求到的目标IP返回给PC机,PC机根据获得的www.baidu.com的IP地址,就找www.baidu.com这个服务器通讯去啦,至此域名解析完成。
既然DNS这么重要,那么咱们怎么样要配置一个DNS服务器呢?
第一步, 咱们要知道,建立一个DNS服务器就比如一个市要开发一个新区同样,必需要给上级申请,上级比准后才能建设是否是,这里也是同样,咱们必须向咱们上层的域管理者申请备案,而后才能得到认同,别的主机访问咱们,上级才知道咱们是哪一个部分的,不然,上级都不知道咱们的存在,别的主机怎么能访问咱们呢?
第二步,才是开始建设配置DNS服务器啦,下边就详细说 下
在一台主机上建立一个DNS服务器,要准备一些环境。要能启动该服务,咱们就须要bind这个工具,bind是DNS服务工具。
与DNS服务相关的几个配置文件,先给大家说下:
/etc/hosts 它是最先记录IP与主机名的档案(那时的互联网无法和如今比,因此一个文档就能够记录了)
/etc/resolv.conf 它是DNS客户端的配置文件,记录DNS服务器IP的,这里DNS指向以下图:
/etc/named.conf 它是bind这个工具的主配置文件,它里面定义了:
options {
director “工做目录(默认/var/named)”
recursion yes //是否接受递归查询
};
zone "." IN {
type hint; //zone是定义区域的关键字,此处
file "named.ca" // 指定该区域的数据库文件默认在/var/named/
};
好啦,配置文件介绍完了,下面开始简单配置吧,
咱们主配置文件以下(只含有主要内容,其余我都注释掉了):
下一步咱们去 /etc/named.rfc1912.zones 这个文件内写上要定义的域mage.com
看到file "mage.com.zone" 那行没,那个文件名就是咱们要配置的正向解析库文件,它在/var/named/mage.com.zone ,下面咱们来看看里面的东西;
@ (本地域名) SOA(起始区域受权记录) ns.magecom(就是DNS服务器的名字)
第一行的意思:区域受权的第一条记录,因此任务该文件的第一行必须是SOA类型的,
域mage.com 受权 ns.mage.com这个DNS服务器管理下面的服务器
admin.mage.com 这个名称是DNS服务器管理员的邮箱地址,
201401 表明的是此文件序列版本号,若是此文件内容有更新则必须修改此序列号,不然在主从服务器模式上,从服务器将不会从主服务器上跟新数据的。
3D 表明的是从服务器多久从主服务器上同步数据的刷新时间为3天
1H 表明的重试间隔时间为1小时,即从服务器联系不到主服务器,须要重试连接的时间间隔
1W 表明的过时时间1周,便是,从服务器多久后就再也不工做的时间
3H 记录在缓存中的存留时间
每个服务器的名称都应该对应一个存在的IP地址,且必须有一条A记录也就是主机记录,
为何xxx.mage.com对应的不是IP地址呢?由于这是我给www.mage.com起的一个别名,至关于人的小名都表明同一个服务器。
至此,咱们就配置成功了,下面咱们要启动这个DNS服务器。
service named start
/etc/rc.d/init.d/named start
用命令 ss -unl (看53号端口是否处于监听状态,若是有证实启动成功)
既然启动成功了,那咱们测试下DNS服务器可否解析域名成功呢?
有如下几种命令:
nslookup 这个能够直接用 nslookup ns.mage.com查询
还能够直接使用 nslookup,会出现一个交互界面:
显示的都能解析出域名对应的IP,是否是。
另一种测试的命令是host命令如: host www.mage.com
而host -a www.mage.com则要显示更为详细的内容
还有一个很是强大的命令就是dig,是如今很是流行的DNS测试工具之一,用法以下:
dig: 查询选项
+trace 跟踪查询
+notrace 不跟踪查询
+recurse 递归查询
+norecurse 不递归查询
dig trace www.mage.com 正向跟踪查询
dig -x www.mage.com 则就是反向查询了
对于反向查询,首先咱们定义有反向区域,在反向区域内建立反向解析库文件以下:
咱们在/etc/named.rfc1912.zones中,定义反向区域
编辑反向解析库文件 172.16.249.zone
并修改该文件的权限为640,且属组为named组,
看吧,成功解析出mail.mage.com这个域名,这就是反解的通常步骤。
上面就是主DNS服务器的配置,可是只有一个主DNS服务器,那若是DNS服务器当机了怎么办呢?全部要有一个辅助的DNS主机也叫“从DNS服务器”
从DNS服务器的建立:
因为从DNS的服务器中的解析库数据是从主DNS服务器同步过来的,因此不须要手工创建数据库文件。因此,咱们只需编辑从DNS服务器的配置文件就行,编辑以下:且要指定主DNS服务器的IP。
mkdir /var/named/slaves 还要在/var/named/建立目录slaves,这是配置从DNS服务器的要求
同时还需在主DNS服务器里面添加从DNS的SOA记录与A记录,
而后从新启动从DNS服务器, service named start
你就会发如今slaves这个目录下已经有同步的文件了
如今你就可使用从DNS服务器来完成主DNS服务器须要解析的域名啦,来看看吧:
我是经过从DNS来解析www.mage.com这个域名的,得出的和主DNS解析的同样,是否是很简单(⊙o⊙)?