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,如需转载请自行联系原作者
目录
相关文章
|
11天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
11天前
|
数据采集 消息中间件 监控
Flume数据采集系统设计与配置实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入探讨Apache Flume的数据采集系统设计,涵盖Flume Agent、Source、Channel、Sink的核心概念及其配置实战。通过实例展示了文件日志收集、网络数据接收、命令行实时数据捕获等场景。此外,还讨论了Flume与同类工具的对比、实际项目挑战及解决方案,以及未来发展趋势。提供配置示例帮助理解Flume在数据集成、日志收集中的应用,为面试准备提供扎实的理论与实践支持。
24 1
|
1天前
|
JSON Java Maven
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
6 0
Javaweb之SpringBootWeb案例之自动配置以及常见方案的详细解析
|
1天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
6 0
|
6天前
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
|
7天前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
11 0
|
11天前
|
网络协议 Java 物联网
阿里云服务器上搭建 MQTT服务
阿里云服务器上搭建 MQTT服务
|
11天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
6天前
yolo-world 源码解析(六)(2)
yolo-world 源码解析(六)
16 0
|
6天前
yolo-world 源码解析(六)(1)
yolo-world 源码解析(六)
8 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多