DNS服务器的基础应用及主从复制

域名系统(英文:Domain Name System,缩写:DNS)是因特网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网。DNS 使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

简而言之,DNS的出现是为了解决人们访问各个网站时的困难,因为如果每一个web服务器都是一个固定的外网IP的话,那么我们访问时必须要在浏览器中输入如http://8.8.8.8的,这对于人类来说太难于记忆了(虽然计算机很喜欢数字),所以我们想了一种方法将一个网站的名称和ip地址关联起来这样使用起来就方便多了。比如访问www.google.com其实就是访问的8.8.8.8这个ip地址,这样我们只要知道google这个公司就可以轻易的记住它的web网站了。其中www.google.com叫做一个FQDN(Fully qualified domain name)即完全资格域名,在互联网上唯一标识一台服务器(在访问者看来),而FQDNàIP的转换叫做正向解析,IPàFQDN的转换叫做反向解析。反向解析的作用主要是解决邮件服务器拒绝垃圾邮件的,因为在互联网中多个FQDN可以指向同一个IP所以通过IP去找FQDN在互联网上是不现实的,这样就可以使用一个随意的IP地址来伪装成特定的FQDN,如果某IP发来的邮件与其注册的域名正、反向解析并不相匹配,那么邮件服务器会把此邮件定义为垃圾邮件处理。

DNS进行解析时默认使用的是UDP的53号端口,使用的查询方式分为两种:递归查询和迭代查询。递归查询查询是客户端与DNS服务器之间的方式,迭代查询时DNS服务器之间的方式。

在一个完整的FQDN当中,一共分为四个部分:主机名.二级域名.一级域名.,最后的一个点代表根域名服务器,全球一共有13组,从A-M编号,其中有些组在世界各地有多组镜像,根域名服务器顾名思义就是以它为起始进行查询,它知道每一个顶级域名服务器的地址,每一个顶级域名服务器知道其所管辖的二级域名服务器的地址,每一个二级域名服务器知道其管辖的每一个主机的地址,这个样经过层层迭代就可以确定一个FQDN的IP地址,然后前段DNS服务器将查询后的最终结果一次返回给客户端这就叫做递归查询。举个例子:

查询 www.czcedu.org

客户端发送查询报文" www.czcedu.org "至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。

如果记录老化或不存在,则

DNS服务器向根域名服务器发送查询报文" www.czcedu.org ",根域名服务器返回 .org 域的权威域名服务器地址,这一级首先会返回的是顶级域名的权威域名服务器。

DNS服务器向 .org 域的权威域名服务器发送查询报文" www.czcedu.org ",得到 .czcedu.org 域的权威域名服务器地址。

DNS服务器向 .czcedu.org 域的权威域名服务器发送查询报文" www.czcedu.org ",得到主机 www 的A记录,存入自身缓存并返回给客户端。

我们看到了DNS服务器的作用,但是如果我们全网内的解析工作都交给一台DNS服务器的话那么一旦它宕机将无法通过FQDN访问互联网,所以我们要对DNS服务器进行备份,接下来我们就说一下DNS服务器的类型:

  1. 主DNS服务器

    1. 维护所负责解析的域内解析库服务器;解析库由管理维护
  2. 从DNS服务器

    序列号:解析库的版本号;前提:主服务器解析库内容发生变化,其序列递增;

    刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;

    重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

    过期时长:从服务器始终联系不到主服务器时,多久之后放弃从服务器角色,停止提供服务;

    通知机制:主服务器在发生改变时会立即通知从服务器来同步解析库

    1. 从主DNS服务器或其它的从DNS服务器那里"复制"(区域传递)一份解析库;这时使用的是TCP的53端口。
  3. 缓存DNS服务器

    解析答案:

    肯定答案:解析到的确定结果

    否定答案:请求的条目不存在等原因导致无法返回结果;

    权威答案:直属服务器提供的答案

    非权威答案:缓存或者非直属服务器提供的答案

    1. 及上图中的与client直接联系的DNS服务器,用于缓存已经确定的查询结果以加快DNS解析速度。
  4. 转发DNS服务器
    1. 将客户端的查询请求全部或部分转发给某特定的DNS服务器

DNS服务器能够解析域名靠的是区域解析库,而区域解析库是由众多的资源记录(RR,Resource Record)组成的,RR由多种类型:

OA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录;

A:internet Address,作用,FQDN --> IP

AAAA: FQDN --> IPv6

PTR: PoinTeR,IP --> FQDN

NS: Name Server,专用于标明当前区域的DNS服务器

CNAME:Canonical Name,别名记录

MX: Mail eXchanger,邮件交换器

每种资源记录定义的格式:

语法:name[TTL]IN rr_type value

注意:

(1) TTL即客户端的到解析结果的缓存时长,可从全局继承;

(2) @可用于引用当前区域的名字;

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应;

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已;

SOA:

name: 当前区域的名字,例如"magedu.com.";

value: 有多部分组成

(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

(2) 录前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如linuxedu.magedu.com;

(3) (主从服务协调属性的定义以及否定的答案的统一的TTL)

例如:

magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (

2015042201  ;序列号

2H          ;刷新时间

10M;重试时间

1W;过期时间

1D;否定答案的TTL值

)

NS:

name: 当前区域的名字

value: 当前区域的某DNS服务器的名字,例如ns.magedu.com.;

注意:一个区域可以有多个NS记录;

例如:

magedu.com.IN NS  ns1.magedu.com.

magedu.com.IN NS  ns2.magedu.com.

注意:

(1) 相邻的两个资源记录的name相同时,后续的可省略;

(2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;

MX:

name: 当前区域的名字

value: 当前区域的某邮件服务器(smtp服务器)的主机名;

一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高;

例如:

magedu.com.IN  MX  10  mx1.magedu.com.

IN MX  20  mx2.magedu.com.

注意:

(1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录;

A:

name: 某主机的FQDN,例如www.magedu.com.

value: 主机名对应主机的IP地址;

例如:

www.magedu.com.IN  A 1.1.1.1

www.magedu.com.IN  A  1.1.1.2

mx1.magedu.com. IN    A   1.1.1.3

mx2.magedu.com.  IN   A   1.1.1.3

避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址;

AAAA:

name:FQDN

value:IPv6

PTR:

name:IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addra.arpa.

value:FQDN

例如:

4.3.2.1.in-addr.arpa.   IN   PTR         www.magedu.com

简写成:

4    IN  PTR          www.magedu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写;

CNAME:

name:别名的FQDN

value:正工名字的FQDN;

例如:

web.magedu.com.      IN          CNAME          www.magedu.com

OK,DNS协议我们已经大致讲清楚了,接下来我们看一下DNS服务到的实现,使用最广泛的的开源实现方式是使用BIND软件包。BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(InternetSystems Consortium)负责开发与维护。BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(InternetSystems Consortium)负责开发与维护。

安装bind包有很多个组件,我们这里就安装bind.x86_64、bind-libs.x86_64、bind-utils.x86_64这三个包,至于其它包的功能大家自行查看吧,篇幅原因就不详细解释了。使用简单的yum安装就可以了默认base源中就有。安装好之后会生成一些关键性的文件:

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf,/etc/named.rfc1912.zones, /etc/rndc.key

解析库文件:/var/named/ZONE_NAME.ZONE

根区域文件:/var/named/named.ca

rndc:remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1:953/tcp来连接named进程;提供辅助性的管理功能;

[[email protected] ~]# vim /etc/named.conf
 
10 options {
 11         listen-on port 53 { 192.168.19.135;127.0.0.1; 192.168.80.129; };      #配置监听的端口和ip
 12         listen-on-v6 port 53 { ::1; };
 13         directory       "/var/named";
 14         dump-file      "/var/named/data/cache_dump.db";
 15         statistics-file"/var/named/data/named_stats.txt";
 16         memstatistics-file"/var/named/data/named_mem_stats.txt";
 17         allow-query     { any; };    #允许查询请求的主机
 18         recursion yes;         #是否允许递归查询
 19         //forward first;
 20         //forwarders { 192.168.19.134; };
 21
 22         dnssec-enable no;
 23         dnssec-validation no;
 24 //      dnssec-lookaside auto;
 25
 26         /* Path to ISC DLV key */
 27 //      bindkeys-file"/etc/named.iscdlv.key";
 28
 29 //      managed-keys-directory"/var/named/dynamic";
 30 };
 31
 32 logging {
 33         channel default_debug {
 34                 file"data/named.run";
 35                 severity dynamic;
 36         };
 37 };
 38
 39 zone "." IN {              #定义根区域
 40         type hint;        #根提示,就是找不到了就从根开始找
 41         file "named.ca";
 42 };
 43
 44 include"/etc/named.rfc1912.zones"; #包含区域文件
 45 include"/etc/named.root.key";
#到此处如果我们没有自定义named.rfc1912.zones中的任何内容那么启动named进程这台服务器就是一台缓存服务器,它如果可以访问物联网就可以解析任何互联网上的域名了,因为它能找到根。
[[email protected] ~]# vim /etc/named.rfc1912.zones
 
 13 zone"localhost.localdomain" IN {
 14         type master;
 15         file "named.localhost";
 16         allow-update { none; };
 17 };
 18
 19 zone "localhost"IN {
 20         type master;
 21         file "named.localhost";
 22         allow-update { none; };
 23 };
 24
 25 zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {
 26         type master;
 27         file "named.loopback";
 28         allow-update { none; };
 29 };
 30
 31 zone"1.0.0.127.in-addr.arpa" IN {
 32         type master;
 33         file "named.loopback";
 34         allow-update { none; };
 35 };
 36
 37 zone"0.in-addr.arpa" IN {
 38         type master;
 39         file "named.empty";
 40         allow-update { none; };
 41 };
 42          #以上定义的都是本地回环地址的正向和反向区域
48 zone "czcedu.com." IN {
 49        type master;
51        file "czcedu.com.zone";
 52 };       #定义主DNS服务器、正向区域,指定区域解析库文件
[[email protected] ~]# vim /var/named/czcedu.com.zone     #编写区域解析库文件
 
  1 $TTL 86400       #缓存值
  2 $ORIGIN czcedu.com.    #区域名称变量
  3 @       IN     SOA     ns1.czcedu.com.admin.czcedu.com. (              #@表示使用ORIGIN变量,如果没有定义则使用区域名称
  4                                        2015071601
  5                                         1H
  6                                         10M
  7                                         1W
  8                                         1D )
  9 @       IN     NS      ns1.czcedu.com.  #这里可以写全区域名称,但结尾必须加“.”
 10         IN     NS      ns2 #也可以省略但不能加“.”
 11         IN     MX 10   mail
 12         IN     MX 20   mx
 13 ns1     IN     A       172.16.10.1
 14 ns2     IN     A       172.16.10.2
 15 mail    IN     A       172.16.10.3
 16 mx      IN     A       172.16.10.4
 17 www     IN     A       172.16.10.5
 18 ftp     IN     CNAME   www
19 *       IN      A      172.16.10.5        #泛域名解析
 20 czcedu.com      IN     A       172.16.10.5     #缺省域名解析
[[email protected] ~]# named-checkconf #检查配置文件
[[email protected] ~]# named-checkzone "czcedu.com"/var/named/czcedu.com.zone         #检查区域解析库文件
zone czcedu.com/IN: loaded serial 2015071601
OK
[[email protected] named]# chown :named czcedu.com.zone     #修改区域文件属组
[[email protected] named]# chmod 640 czcedu.com.zone     #修改权限
[[email protected] named]# dig -t A www.czcedu.com 192.168.1.106  #测试DNS服务器工作是否正常
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -t A www.czcedu.com 192.168.1.106
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:28588
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;www.czcedu.com.                          IN     A
 
;; ANSWER SECTION:
www.czcedu.com.                  86400       IN     A      172.16.10.5     #与我们服务器中定义的相同
 
;; AUTHORITY SECTION:
czcedu.com.            86400       IN     NS    ns1.czcedu.com.
czcedu.com.            86400       IN     NS    ns2.czcedu.com.
 
;; ADDITIONAL SECTION:
ns1.czcedu.com.             86400       IN     A      172.16.10.1
ns2.czcedu.com.             86400       IN     A      172.16.10.2
 
;; Query time: 4 msec
;; SERVER: 192.168.1.106#53(192.168.1.106)
;; WHEN: Sun Apr 26 11:11:12 2015
;; MSG SIZE  rcvd: 116
 
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id:41184
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
 
;; QUESTION SECTION:
;192.168.1.106.                          IN     A
 
;; AUTHORITY SECTION:
.                          10784       IN     SOA a.root-servers.net. nstld.verisign-grs.com.2015071600 1800 900 604800 86400
 
;; Query time: 4 msec
;; SERVER: 192.168.1.106#53(192.168.1.106)
;; WHEN: Sun Apr 26 11:11:12 2015
;; MSG SIZE  rcvd: 106
[[email protected] named]# vim /etc/named.rfc1912.zones #定义反向区域
48 zone "10.16.172.in-addr.arpa." IN {
 49         type master;
 50         file "172.16.10.in-addr.arpa.zone";
 51 };
[[email protected] named]# vim 172.16.10.in-addr.arpa.zone      #定义反向区域解析库文件
 
  1 $TTL 86400
  2 @       IN     SOA     ns1.czcedu.comadmin.czcedu.com (
  3                                        2015071601
  4                                         1H
  5                                         5M
  6                                         1W
  7                                         1D )
  8         IN     NS      ns1.czcedu.com.
  9         IN     NS      ns2.czcedu.com.
 10         IN     MX 10   mail.czcedu.com.
 11         IN     MX 20   mx.czcedu.com.
 12 1       IN     PTR     ns1.czcedu.com.
 13 2       IN     PTR     ns2.czcedu.com.
 14 3       IN     PTR     mail.czcedu.com.
 15 4       IN     PTR     mx.czcedu.com.
 16 5       IN     PTR     www.czcedu.com.
[[email protected] named]# dig -x 172.16.10.5 #检测反向区域解析是否正常
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6<<>> -x 172.16.10.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id:18889
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2,ADDITIONAL: 2
 
;; QUESTION SECTION:
;5.10.16.172.in-addr.arpa.    IN     PTR
 
;; ANSWER SECTION:
5.10.16.172.in-addr.arpa. 86400  IN     PTR  www.czcedu.com.
 
;; AUTHORITY SECTION:
10.16.172.in-addr.arpa.         86400       IN     NS    ns1.czcedu.com.
10.16.172.in-addr.arpa.         86400       IN     NS    ns2.czcedu.com.
 
;; ADDITIONAL SECTION:
ns1.czcedu.com.             86400       IN     A      172.16.10.1
ns2.czcedu.com.            86400       IN     A      172.16.10.2
 
;; Query time: 3 msec
;; SERVER: 192.168.1.106#53(192.168.1.106)
;; WHEN: Sun Apr 26 11:37:57 2015
;; MSG SIZE  rcvd: 138
#建立主从服务器及区域传送,主IP:192.168.1.106;从IP:192.168.1.107
[[email protected] named]# vim /etc/named.rfc1912.zones #定义从服务器
48 zone "10.16.172.in-addr.arpa." IN {        #反向区域
 49         type slave;               #类型为slave
 50         masters { 192.168.1.106; };   #指定主服务器地址
 51         file"slaves/172.16.1.in-addr.arpa.zone";  #区域传输文件放置到slaves目录下
 52 };
 53
 54 zone"czcedu.com." IN {        #正向区域
 55         type slave;
 56         masters { 192.168.1.106; };
 57         file"slaves/czcedu.com.zone";
 58 };
#不过在主服务区域解析库其中必须定义从服务器为一个DNS服务器
[[email protected] named]# vim czcedu.com.zone
13 ns      IN      A      192.168.1.107

好了,这里DNS的基本配置就完成了,还有子域授权及view我们下次再介绍。

时间: 2024-10-14 03:07:23

DNS服务器的基础应用及主从复制的相关文章

DNS服务器的正反解析及主从复制

在最开始的计算机网络中,人们只能通过输入某个网页的IP地址才能够进行对该网站的访问,因此记忆一个网站的完整的IP地址就成为了一件非常头疼的事,显然,人们对文字的记忆远比对数字的记忆强,为了能够解决这一个问题,DNS就出现了. DNS(Domian Name Server)即域名服务器,dns建立了主机名和IP地址之间的映射关系,他是一个可以帮我们将用文字组成的主机名解析为IP的一个工具,尤其当使用IPV6之后,DNS将扮演一个更加重要的角色.那么本节我们就来了解一下DNS服务器相关的知识. 这里

DNS服务器介绍(二)——主从复制和区域转发

背景介绍 实际环境中为了避免单点故障,DNS服务器是由一组服务器组成每一个服务器上都有若干个区域,不同服务器上的相同区域分为主和从两种角色.由于正向和反向是不同的区域,所以多台服务器间的相同区域可以互为主从或者一主多从,本处以右图为例进行演示. DNS服务器的主从复制 1.之前已经在172.16.10.10/24主机上创建了contoso.com正反向解析区域并分别设置为主服务器,对于从服务器,只需要在配置文件中添加解析区域且zone名称必须和主服务器的zone名称保持一致,他会自动去主服务器上

Linux 基础知识(十)DNS服务器主从复制,子域授权

DNS域名系统是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网.DNS使用TCP和UDP端口53 DNS服务器主从复制,子域授权主服务器:10.120.123.13从服务器:10.120.123.250子服务器:10.120.123.251  从服务器的主配置文件:/etc/named.conf options { listen-on port 53 { 10.120.123.250; }; //定义监听的端口以及监听ip //listen-on-

CentOS6上DNS服务器的安装配置-基础篇

一. DNS简介: DNS(Domain Name System),是互联网的一种很重要的基础服务,DNS服务作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53.当在DNS区域传送机制运行在TCP协议,使用端口号53. 二. DNS查询方式: DNS共有两种查询方法: 递归查询 由局部DNS服务器自己负责向

Linux DNS服务器主从复制及区域传送

什么是DNS主从复制? 简单说一下,所谓DNS主从复制,就是将主DNS服务器的解析库复制传送至从DNS服务器,进而从服务器就可以进行正向.反向解析了. 这里提一下DNS服务器类型有以下几种: 主DNS服务器 辅DNS服务器 缓存服务器(默认) 转发器 需要注意的是: 1.做主从的时候时间同步非常重要,必须保持时间的一致性: 2.DNS(bind)的版本问题,最好使用同一版本,或者从DNS版本比主DNS版本高. 什么是区域传送? 区域传送有两种类型: 完全区域传送:axfr 增量区域传送:ixfr

【计算机基础】主机名,IP,域名,端口,DNS服务器的通俗理解

在很早的时候,世界上只有几台计算机,这几台计算机的拥有者想互相连接起来以方便聊天约炮,怎么办呢?他们给各自的计算机起了一个名字,比如张三,李四,王二,以后他们就通过这个计算机名字来相互连接.这几个名字可以理解成主机名. 可是随着时代的发展,计算机越来越多了,再起这样的名字很容易重名,我想大家百度自己的名字总能找到很多不一样的人吧.于是 IP 这个概念出现了,它规定了4个0~255的数字组合为一个计算机地址,比如,张三的计算机ip是0.0.0.0,李四的地址是0.0.0.1,王二的地址是0.255

linux基础学习(十六)DNS服务器的相关配置

DNS高速缓存 什么是DNS高速缓存? DNS 服务器可以高速缓存从其他 DNS 服务器收到的 DNS 记录. 也可以在 DNS 客户服务中使用高速缓 存,将其作为 DNS 客户端保存在最近的查询过程中得到的信息高速缓存的方法. 总的来说就是提高解 析速度. 我们需要两台虚拟机,一台服务端,一台客户端 服务端: 安装DNS服务 yum install bind -y 运行DNS服务 systemctl start named 在火墙中添加DNS服务 firewall-cmd  --list-al

DNS服务器综合实验(包含view下主从+子域授权+转发域)

说明:本文并不是一上来就搭建包含view下主从+子域授权+转发域的实验环境,我们按照先易后难的顺序逐渐深入搭建的.特此说明. ===============================实战======================================= 规划: 主DNS:192.168.0.10 从DNS:192.168.0.11 其他地址:192.168.0.13.192.168.0.14 子域DNS:192.168.0.12 注意:所有工作之前,将所有的主机进行如下设置 [

搭建一个DNS服务器群

本节索引 DNS简介 DNS解析过程 DNS资源记录 DNS主从原理 搭建完整的DNS架构 调试结果 错误分析 本篇小结 DNS简介 DNS(Domain Name System,域名系统),是Internet上作为域名和IP地址相互映射的一个分布式数据库,在这个解析库中定义了某个域名和IP的对应关系.通过DNS的解析,我们不用去记住那些难记的IP地址(数串),我们只要能记住其对应的主机名即可,像www.baidu.com.这中字符串就显得好记多了.DNS协议运行在TCP和UDP的上,对应端口号