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,如需转载请自行联系原作者


相关文章
|
5天前
|
Linux 网络安全 数据库
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
linux centos系统搭建samba文件服务器 NetBIOS解析 (超详细)
|
5天前
|
域名解析 存储 缓存
Linux中搭建DNS 域名解析服务器(详细版)
Linux中搭建DNS 域名解析服务器(详细版)
|
6天前
|
存储 弹性计算 固态存储
阿里云服务器配置选择指南,2024年全解析
阿里云服务器配置选择涉及CPU、内存、带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型实例,如2核2G3M配置,适合网站和轻量应用。企业用户则应选择企业级独享型ECS,如计算型c7、通用型g7,至少2核4G起,带宽建议5M,系统盘考虑SSD云盘或ESSD云盘以保证性能。阿里云提供了多种实例类型和配置,用户需根据实际需求进行选择。
|
11天前
|
缓存 负载均衡 网络协议
【亮剑】一次完整的HTTP请求的重要性和详细过程
【4月更文挑战第30天】本文介绍了HTTP请求的重要性和详细过程。首先,DNS解析将域名转换为IP地址,通过递归和迭代查询找到目标服务器。接着,TCP三次握手建立连接。然后,客户端发送HTTP请求,服务器处理请求并返回响应。最后,理解这个过程有助于优化网站性能,如使用DNS缓存、HTTP/2、Keep-Alive、CDN和负载均衡等实践建议。
|
11天前
|
监控 网络协议 安全
【亮剑】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题
【4月更文挑战第30天】当设备IP能ping通但无法上网时,可能是DNS解析、网关/路由设置、防火墙限制、网络配置错误或ISP问题。解决步骤包括检查网络配置、DNS设置、网关路由、防火墙规则,以及联系ISP。预防措施包括定期备份配置、更新固件、监控网络性能和实施网络安全策略。通过排查和维护,可确保网络稳定和安全。
|
12天前
|
网络协议 Windows
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
Windows Server 各版本搭建 DNS 服务器实现域名正反向解析
|
10天前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
114 6
|
1天前
|
负载均衡 固态存储 Linux
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
轻量应用服务器、云服务器、gpu云服务器是阿里云服务器产品中,比较热门的云服务器产品类型,不同类型的云服务器产品收费模式与收费标准是不一样的,本文为大家展示这几个云服务器产品的最新收费标准情况,以供参考。
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
|
1天前
|
弹性计算 负载均衡 容灾
应用阿里云弹性计算:打造高可用性云服务器ECS架构
阿里云弹性计算助力构建高可用云服务器ECS架构,通过实例分布、负载均衡、弹性IP、数据备份及多可用区部署,确保业务连续稳定。自动容错和迁移功能进一步增强容灾能力,提供全方位高可用保障。
6 0
|
1天前
|
存储 弹性计算 监控
探索阿里云弹性计算:如何优化云服务器ECS的性能与成本
在云时代,【阿里云ECS】的性能优化与成本控制至关重要。利用实例规格选择、自动伸缩、网络和存储配置,可增强性能、减少成本。结合监控工具和优化建议,用户能解决性能问题,提升应用稳定性,实现高效且经济的云计算运营。
7 1

相关产品

  • 云解析DNS
  • 推荐镜像

    更多