什么是DNS?
DNS(Domain Name System) 域名系统。它是如今互联网上能够相互通信的服务之一,对于现在的互联网特别特别重要的,因为在这个人们不能很好记忆数字IP地址的问题上,输入IP地址来访问其他的主机是很困难的,和不现实的,如果数字IP地址用我们所熟悉的各种名称(字符,例如:baidu taobao 等)就很好记忆啦。DNS就是来完成这个解析的功能的。
DNS工作的原理:
首先,我们先了解一个内容,例如www.baidu.com,
www.baidu.com 在DNS中是有阶层的 .com 中国
.baidu.com 中国河南
www.baidu.com 中国河南XX市
那么我们说说DNS服务的工作机制如下图:
我们对上图进行下说明:
首先,客户端想要访问 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服务器, service named start
你就会发现在slaves这个目录下已经有同步的文件了;
现在你就可以使用从DNS服务器来完成主DNS服务器需要解析的域名啦,从DNS服务器配置相对要简单的多。
本文出自 “linux小盆友” 博客,请务必保留此出处http://ny0716.blog.51cto.com/9154254/1536668
linux_DNS服务器(正解/反解)的简单创建,布布扣,bubuko.com
原文地址:http://ny0716.blog.51cto.com/9154254/1536668