DNS服务器系列之一:DNS服务原理、安装及主从配置

简介:

一、DNS简介

1、DNS

   DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库。有了DNS服务器,我们只需要记录一个网站的域名即可访问,而再也不需要记忆那一串长长的IP地址了。在2014.1.21号,就由于国内的DNS域名解析系统遭攻击出现了大规模的故障而导致全国网络的访问故障,可想而知,DNS对于网络来说是至关重要的。

全球有386台根服务器,被编号为A到M共13个标号,编号相同的根服务器使用同一个IP,386台根服务器总共只使用13个IP,因此可以抵抗针对其所进行的分布式拒绝服务攻击(DDoS)。中国大陆在北京有两台编号为L的根服务器镜像,编号为F、I、J的各一,共5台镜像,所以刚才提到的那个故障应该就是国内的DNS根域镜像的故障。

2、分布式数据库

   早期的网络比较单一,域名也比较少,所以hosts文件可以说是比较简单的数据库了,但到了后来网络的爆炸式发展,一个hosts文件、一台服务器、一组DNS集群都不能扛得住越来越多的主机请求,所以到后来出现了分布式数据库,把一个数据库切成n片,放到不同的主机上来解析客户端的请求,当需要解析不同的主机时,就到不同的服务器上去实现,以到达缓解根服务器巨大的压力。

3、域名的划分

   根域:.

   一级域:.com,.org,.mil,.gov,.edu,.net

   国家域:.cn,.hk,.tw,.jp,.us,.uk,.ir,.iq

   二级域:www.ibm.com中的ibm就是二级域名

   主机名:上面的www是主机而不是域名

wKioL1Mm9_yxdhXcAAA6HV36IDw954.png

FQDN(Full Qualified Domain Name):安全合格域名,按照中国人的习惯是从大到小写,但老外习惯从小往大了写,就像写信一样,自底向上,所以一个FQDN应该是"www.ibm.com."。

4、DNS查询方式

1)递归查询(recursion)

   客户端只发出一次请求,要求对方给出最终结果。如果客户端要查找的内容直接在服务器上得到结果,刚给出的答案是一个权威答案,否则就是一个参考答案。

2)迭代查询(iteration)

   客户端发出一次请求,服务器替代客户端一次次的去请求以获得最终答案,所以迭代查询是服务器代为其查询,因此,客户端指向的DNS服务器,一定是允许给本地主机做递归的。

wKioL1Mm-GvzegWjAADn_R_6wLc039.png

5、资源记录(Resource Record)

   DNS数据库文件中的每一个条目叫做资源记录,它是一个纯文本文件,只能包含资源记录或宏定义。

   资源记录的格式:

   Name     [ttl]    IN    RRtype    Value

1)、SOA:

   Start of Authority,起始授权

   SOA必须是区域数据库文件的第一条记录

   name:只能是区域名称,通常可以简写为@,如shuishui.com

   value:主DNS的FQDN

   例:@    600    IN    SOA     ns.shuishui.com.     dnsadmin.shuishui.com.(

                           serial number;序列号,不能超过10位,如:2014031801

                           refresh time;刷新时间,第每隔多久到主服务器检查一次

                           retry time;重试时间,如果刷新失败,多久重试

                           expire time;过期时间

                           negative answer ttl;否定答案的ttl )

   上面的那个dns.admin.shuishui.com.是管理员邮箱,第一个点代表的是@,但这里@是一个宏,所以就用.代替了。

   注意:SOA后面ns.shuishui.com.中最后面那个.一定不能省略,如果省略,系统会默认给补上你的区域名称。

2)、NS

   Name Server,域名服务器

   name:区域名称,通常可以简写为@

   value:DNS服务器的FQDN(可以使用相对名称)


3)、A

   Address,IP地址,负责FQDN——>IP的解析

   name:FQDN(可以使用相对名称)

   value:IP

4)、AAAA

   IPv6地址

5)、MX

   Mail eXchanger:邮件交换器,可以有多个,那就需要做优先级

   name:区域名称,用于标识smtp服务器

   value:包含优先级和FQDN,优先级的范围:0-99,数字越小,级别越高

6)、CNAME

   Canonical Name,别名记录

   name:FQDN

   value:FQDN

   注意:但凡value上是FQDN,那么这个FQDN都需要有一个A记录,否则不能解析,PTR除外

7)、PTR

   负责IP——>FQDN的解析,只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in-addr.arpa.后缀组成

   name:IP,逆向的主机地址,如:93.251.16.172.in-addr.arpa.

   value:FQDN,这里的FQDN不需要有A记录,反向区域中不能出现A记录和MX

二、DNS的安装

   DNS是同时监听TCP与UDP协议的53号端口的,它的协议是DNS,软件名称是BIND(当然也有其它的)、进程名是named,这里就详细介绍以BIND方式安装DNS服务

1、安装bind,最好提前装好yum源,省得解决依赖关系。

1
[root@nmshuishui ~] # yum -y install bind

2、启动服务,检查是否已经监听53号端口

wKioL1Mm-lzytZRXAABQ17kGWF4055.png

启动服务成功,默认监听tcp与udp的53号端口

3、配置DNS

1)修改主配置文件

   现在DNS虽然已经启动成功,但还不能提供正常的解析服务,因为还没有创建区域数据库文件。

   主配置文件:定义区域,在/etc/named.conf

   区域数据文件:区域数据文件其实就是区域文件数据库,里面定义资源记录,它是一个纯文本文件,只能包含资源记录或宏定义。

wKiom1Mm_lOyoLD6AACU1A6CCe0936.png

修改完主配置文件后,再重启下named,这时它就会监听服务器的22号端口了。

wKiom1Mm_0SSMGQJAABks8N3Mj8660.png

2)创建正向区域

   DNS服务器有四种类型:主DNS服务器,从DNS服务器,缓存名称服务器,转发服务器

   因为这里新建的是第一台DNS服务器,所以DNS服务器类型为主DNS服务器,使用file指定数据文件,以;号结尾。

wKioL1MnAlODIPUxAABDPzgTK3M564.png

   在/var/named/下创建正向区域文件数据库,命令为shuishui.com.zone,并填写资源记录

1
2
3
[root@nmshuishui named] # pwd
/var/named
[root@nmshuishui named] # vim shuishui.com.zone

wKioL1MnDOXg-9UhAAAo2iEFKGQ482.png

修改配置文件及区域后需要执行的6个步骤

wKioL1MnCCLzXYZvAADZbPZ81B4300.png

测试正向区域解析

   使用dig进行测试,-t选项指定类型,@指定使用哪台主机去解释,如果不使用@的话,默认会使用/etc/resolv.conf 下指定的DNS服务器进行解析。

wKioL1MnCeXDX_DlAAB7ndyqW0Y510.png

3)创建反向区域

   直接定义在shuishui.com这个区域下就可以了,当然也是主服务器类型,使用file指定区域数据文件,要以;号结尾。

1
vim  /etc/named .rfc1912.zones

wKioL1MnCwKTRgEHAAAR_MNU6DU625.png

在/var/named/下创建反向区域文件数据库,命令为172.16.251.zone,并填写资源记录

wKioL1MnJZyTIUInAAAt-8FzzYI328.png

修改配置文件及区域后需要执行的6个步骤

wKiom1MnJimAjgRLAACr4kyVm84139.png

测试反向区域解析

   使用dig进行测试,-t选项指定类型,@指定使用哪台主机去解释,如果不使用@的话,默认会使用/etc/resolv.conf 下指定的DNS服务器进行解析

wKioL1MnJmrTiCZQAABkTp_tJ8E719.png

三、DNS主从同步

1、向区域中添加从服务器的关键两步:

   1)、在上级获得授权

   2)、在区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录。

2、向从区域中添加区域,但不需要自己创建数据文件,因为要从主DNS服务器上做区域传送,为了安全,要放在/var/named/slaves目录下,这也是系统专门为从服务器准备的存放区域数据文件的路径。

wKioL1MnKEHBpDv6AAA_FW_Bz2Q107.png

3、查看同步过来的正向区域数据文件,很直观,很明了

wKiom1MnKPXRzxeGAAAxuZqS2CI191.png

4、在从服务器上解析下试试

wKioL1MnKtOD1W7bAAAnstVfdj8878.png

从服务器解析成功,DNS主从同步OK!










本文转自 nmshuishui 51CTO博客,原文链接:http://blog.51cto.com/nmshuishui/1378368,如需转载请自行联系原作者
目录
相关文章
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
域名解析 应用服务中间件 Shell
使用nps配置内网穿透加域名解析
使用nps配置内网穿透加域名解析
1320 77
|
11月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
5401 0
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
587 2
|
设计模式 存储 安全
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模式分为以下 7 种: • 代理模式 • 适配器模式 • 装饰者模式 • 桥接模式 • 外观模式 • 组合模式 • 享元模式
953 140
【23种设计模式·全精解析 | 创建型模式篇】5种创建型模式的结构概述、实现、优缺点、扩展、使用场景、源码解析
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1572 29
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
628 4
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS