DNS服务器和主从DNS服务器的搭建

简介:

在使用浏览器进行网上冲浪的时候,我们只需要输入网址即可访问,但是在网络中,网址并不是一个有效的东西,真正起作用的是网址所对应的IP地址,但是IP地址是一堆没有规律的数字,难以记忆、使用,所以就有了DNS服务器。DNS服务器的功能就是将网址转换成IP地址,这样在我们想要访问一个主机的时候就不需要记住它的IP地址,而是只需要记住它的网址即可,剩下的工作有DNS服务器去替我们完成,由它来将一个网址转换成IP地址,来供给我们访问。下面就来介绍如何在CentOS6中搭建一个DNS服务器。

一、DNS服务器的搭建

搭建一个DNS服务器需要一台主机来当作这个服务器,然后为了测试,还需要另外一台主机,所以在这里我使用虚拟机创建了两个主机,并使用XShell进行远程连接(连接的方法查看原先的博客),一台的IP地址为172.16.6.11,另外一台主机IP地址为172.16.128.0。

wKioL1mdA2viHI6pAAFvbERwRM8147.jpg-wh_50

在进行配置之前,首先要安装相应的软件,使用以下命令(记得配置yum源):

1
yum  install  bind

配置一个DNS服务器需要四步:

  1.配置/etc/named.rfc1912.zones文件,在其中添加区域文件

  2.在/var/named/中添加区域数据文件

  3.修改/etc/named.conf配置

  4.加载配置

下面详细的介绍这四步:

首先打开/etc/named.rfc1912.zones文件

1
~] # vim /etc/named.rfc1912.zones

然后在最后面添加以下内容,之后保存退出:

1
2
3
4
zone  "test.com"  IN {
         type  master;
         file  "/etc/named/test.com.zone" ;
};

   在这个文件中可以有以下几种选择,视情况而定。(因为我只需要别的主机能查询即可,所以在这个例子中我只写了这两句话)

    allow-query { acl|IP|Network; };

      允许向本服务器发起查询请求的主机,即:白名单;

    allow-transfer { acl|IP|Network; };

      允许哪些从服务器可以从本机进行区域传送;默认是所有主机都可以;建议应该只允许从服务器完成此项工作,即:白名单;

    allow-recursion { acl|IP|Network; };

      允许哪些主机向当前DNS服务器发起递归查询请求

    allow-update { acl|IP|Network; };

      (因为谁都可以更新区域数据库不安全,所以需要这个来限制谁可以)DDNS(动态DNS,使用DHCP服务器), Dynamic DNS(因为不安全,所以一般禁用这个功能:allow-update { none; };)


第二步:在/var/named/中添加区域数据文件

1
~] # vim /etc/named/test.com.zone

在其中写上以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ORIGIN  test .com.
$TTL 86400
@ IN  SOA ns1. test .com. admin. test .com. (
                                 2017082301;serial
                                 1H;refresh
                                 15M;retry
                                 1W;expire
                                 1D);TTL
         IN NS ns1. test .com.
ns1. test .com.   IN  A   172.16.128.0
www     IN  A   172.16.100.1
www     IN  A   172.16.100.2
www     IN  A   172.16.100.3
www     IN  A   172.16.100.4
web     IN  CNAME www

在这里每个字符串的含义如下:

SOA:Start of Authority,起始授权记录

 在任何一个数据库中有且只能有一条SOA记录,而且必须是数据库的第一条

      在这个文件中SOA用来记录这个域名的一些时间上的配置,上面的例子中“2017082301”代表的是版本,每一次修改这个数据文件都要同时修改这个版本号;“1H”代表的是刷新时间,即每个多久到主服务器检查数据是否更新,用于主从服务器,暂时可以不管,单位可以是——“什么都不写—秒”,“M—分钟”,“H—小时”,“D—天”,“W—周”等等;15M代表的是重试时间;1W代表过期时间;1D代表当主服务器停止工作之后从服务器最多工作时间。

A:Address,主机记录

      记录了网址即FQDN(完全合格域名)到IP地址的映射关系。

AAAA:Address,FQDN --> IPv6

     记录FQDN到IPv6的映射关系(暂时用不到)

PTR:PoinTeR,指针记录

 标识从IP地址到完全合格域名的映射关系,IP --> FQDN(用于反解析,即根据IP地址解析出网址是什么)

NS:Name Server,名称服务器记录

 用户标明当前域中所有的DNS服务器

CNAME:Conanical Name,别名记录

 host1 CNAME host2:host1的真名是host2——host1是host2的别名

  标识从完全合格域名到完全合格域名的映射关系

 FQDN --> FQDN

       例如:www.testA.com和www.testB.com是同一个IP地址则可以使用这个来进行标识

MX:Mail eXchanger,邮件交换器记录

 标识域中邮件服务器的主机名,从域名映射到完全合格域名,Domain name --> FQDN

 user@qq.com --> mail.qq.com

 优先级: 0-65536,数字越小优先级越高

在了解了每个字符串的含义之后就可以自己来进行编写合适的解析内容。接下来保存退出。

注意:此时创建出来的这个文件的属主和属组都是root,这样的文件named命令无法读取,所以需要使用chgrp或chown命令更改数组为“named”

1
~] # chown :named /etc/named/test.com.zone

wKioL1mdFAfysES3AAChxWjcdIM296.jpg-wh_50

第三步:修改/etc/named.conf配置

在这一步中修改/etc/named.conf配置文件的原因是这个文件是为了安全着想,屏蔽了未知主机的查询请求,所以我们只需要按照下图所示修改相应的选项然后保存即可

1
~] # vim /etc/named.conf

wKiom1mdDaXi6z4zAAEpNu8wwwI527.jpg-wh_50


第四步:重新加载配置文件

在上面的操作都完成之后,直接使用以下两条命令来重新加载配置文件即可

1
2
~] # rndc reload
~] # service named reload

加载成功的界面如下:

wKiom1mdDuTQOpd2AAAzGHWwTdk297.jpg-wh_50

如果加载失败,则使用“~]# named-checkconf”或者“named-checkzone”命令检查是否有拼写错误。如果没有则重启named服务(~]# service named restart)再试一试。

经过以上四步之后,一个DNS服务器就已经配置好了,我们可以使用“dig”、“host”、“lookup”这三个命令来进行查看,但是在CentOS中“dig”命令是使用最多的命令,所以在这里只进行dig命令的演示。

比如:查看www.test.com的IP地址:

1
~] # dig -t A www.test.com @172.16.128.0

wKioL1mdELmRNFkeAAE-DazHXL0579.jpg-wh_50

在使用了这个命令之后,dig将“www.test.com”对应的所有的IP地址全都列了出来

或者在上面定义的时候我们对“www.test.com”网址起了个别名,叫做“web.test.com”,此时,使用以下命令得到的结果,和使用“www.test.com”得到的结果是一样的:

1
~] # dig -t A web.test.com @172.16.128.0

或者我们还可以使用ping命令来进行验证,不过在使用“ping”命令之前要先修改“/etc/resolv.conf”文件,在这个文件的最后加上一句话:“nameserver 172.16.128.0”来指定DNS服务器。保存退出之后就可以使用ping命令来ping“www.test.com”网址了:  

~]# ping www.test.com

wKioL1mdEt_RXmt-AACHlYW0OSU773.jpg-wh_50


在这个例子中我们可以发现,虽然没能ping通,但是IP地址已经解析成功了,ping不通的原因是因为“172.16.100.4”这个IP地址不存在。



二、主从服务器的搭建

在日常的使用当中,无法避免的会有服务器因为突然出现故障从而无法提供服务,但是在互联网中,这样的事情是会致命的,所以我们要极力的去避免这种事情的发生。为此就出现了主从服务器的概念,通过一台另外的从服务器来进行备份,当主服务器出现意外之后,从服务器就及时的站出来应急,当主服务器恢复之后,从服务器再退回去。这样就实现了应急时的无缝处理。配置主从DNS服务器是在DNS服务器的基础上进行配置,所以比较简单,仅仅需要有限的几步即可配置完成,下面来进行详细的介绍。

第一步:打开从服务器的/etc/named.rfc1912.zones文件,在其中添加几句话

1
~] # vim /etc/named.rfc1912.zones
1
2
3
4
5
zone  "test.com"  IN {
         type  slave;
         masters { 172.16.128.0; };
         file  "slaves/test.com.zone" ;
};

   这样从服务器上就配置完成了

  第二步:配置主服务器上zone文件

   下面回到主服务器上,打开要备份到从服务器上的zone文件

1
~] # vim /etc/named/test.com.zone

将已经存在的文件修改为下面的样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ORIGIN  test .com.
$TTL 86400
@ IN  SOA ns1. test .com. admin. test .com. (
                                 2017082301;serial
                                 1M;refresh
                                 15M;retry
                                 1W;expire
                                 1D);TTL
         IN NS ns1. test .com.
         IN NS ns2. test .com.
         MX 10 mx1. test .com.
ns1. test .com.   IN  A   172.16.128.0
ns2. test .com.   IN  A   172.16.6.11
www     IN  A   172.16.100.1
www     IN  A   172.16.100.2
www     IN  A   172.16.100.3
www     IN  A   172.16.100.4
web     IN  CNAME www
mx1     IN  A   172.16.100.4

  其实仅仅是添加了两句话,分别是:

1
IN NS ns2. test .com.
1
ns2. test .com.   IN  A   172.16.6.11

  这两句话是告诉主服务器从服务器存在并且在哪里,添加完成之后保存退出即可

  第三步:重新加载配置文件

  在主服务器上使用命令“rndc”和“service named reload”

  然后回到从服务器上即可在/var/named/slaves/目录中查看到备份的zone文件

1
~] # head -4 /var/named/slaves/test.com.zone

这样在从服务器上使用dig命令,并且把自己当作DNS服务器也可以进行网址的解析了

wKioL1mdGuPA_IVmAAE28AedN9s500.jpg-wh_50

  而且当我们在主服务器上修改zone文件的版本号,保存退出并使用“rndc reload”命令之后,从服务器会再次的从主服务器上备份一个新的zone文件,这样就实现了及时的数据备份

wKioL1mdG5CzEmhnAADontl2_G0511.jpg-wh_50

wKioL1mdG8TwI2ReAACv01tUxwc730.jpg-wh_50


  注意:如果当在主服务器上修改了版本号之后,发现从服务器没有及时的更换新的数据文件,可能有以下几种原因:

    1.主服务器中的/etc/named.conf配置不对——请参考上面的例子重新配置(重点查看端口监听那)

    2.主服务器zone文件修改之后,版本号没有修改或者修改为了一个小于从服务器上的版本号,从服务器在查看时发现版本号没有修改或者小于自身则不进行备份

    3.防火墙或者selinux没有关闭

        使用“setenforce 0”命令避免selinux的影响

        使用“iptables -F”命令避免防火墙的影响

















本文转自正经的青年51CTO博客,原文链接: http://blog.51cto.com/11142243/1958634,如需转载请自行联系原作者


相关文章
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
8月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
10月前
|
网络协议
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
存储 弹性计算 安全
阿里云服务器ECS通用型规格族解析:实例规格、性能基准与场景化应用指南
作为ECS产品矩阵中的核心序列,通用型规格族以均衡的计算、内存、网络和存储性能著称,覆盖从基础应用到高性能计算的广泛场景。通用型规格族属于独享型云服务器,实例采用固定CPU调度模式,实例的每个CPU绑定到一个物理CPU超线程,实例间无CPU资源争抢,实例计算性能稳定且有严格的SLA保证,在性能上会更加稳定,高负载情况下也不会出现资源争夺现象。本文将深度解析阿里云ECS通用型规格族的技术架构、实例规格特性、最新价格政策及典型应用场景,为云计算选型提供参考。
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
4970 0
|
存储 机器学习/深度学习 人工智能
阿里云服务器第八代通用型g8i实例评测:性能与适用场景解析
阿里云服务器通用型g8i实例怎么样?g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。本文将深入探讨g8i实例的产品特性、优势、适用场景及规格族,以帮助您更好地了解这款产品,以供参考和选择。
|
7月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
600 10
|
7月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
7月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
736 8

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS