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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

一、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,如需转载请自行联系原作者
目录
相关文章
|
24天前
|
弹性计算 监控 负载均衡
|
22天前
|
弹性计算 人工智能 数据安全/隐私保护
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
本文详细介绍如何利用阿里云ECS免费搭建私有Overleaf论文写作服务,包括ECS服务器的部署、Overleaf服务的安装、TexLive包的更新、XeLaTeX修复、中文字体支持及账号管理等步骤。通过这些操作,你可以实现免费且高效的多人协作论文写作,避免付费版本的高昂费用。适合需要频繁合作撰写论文的团队使用。
71 1
【手把手教你】如何免费畅快使用阿里云ECS搭建私有Overleaf论文写作服务
|
27天前
|
域名解析 缓存 网络协议
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
|
28天前
|
Linux 数据库
Linux服务如何实现服务器重启后的服务延迟自启动?
【10月更文挑战第25天】Linux服务如何实现服务器重启后的服务延迟自启动?
141 3
|
27天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
39 1
|
27天前
|
安全 测试技术 数据安全/隐私保护
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
原生鸿蒙应用市场开发者服务的技术解析:从集成到应用发布的完整体验
|
7天前
|
JavaScript 前端开发 API
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
31 0
|
13天前
|
API 持续交付 网络架构
深入解析微服务架构:原理、优势与实践
深入解析微服务架构:原理、优势与实践
16 0
|
14天前
|
存储 供应链 物联网
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
|
14天前
|
存储 供应链 安全
深度解析区块链技术的核心原理与应用前景
深度解析区块链技术的核心原理与应用前景
23 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多