DNS服务器介绍(一)——创建DNS正反解析区域

简介:

背景介绍

DNS服务作为互联网上一个基础服务承担着将用户请求的名称转换成对应的IP或将IP转换为名称的功能。DNS实际上是将互联网上所有主机的FQDN以“.”分割成若干个区域,每一个区域都有特定的主机来进行管理。以正向解析为例:当用户发起对www.contoso.com名称的解析请求时,本地DNS服务器会先查询缓存内是否有该名称的IP,如果没有此时就分为两种情况:

wKiom1kLIQzCd_prAACimwhL0wM356.png

当客户端向本地的DNS服务器发起请求时(1),如果本地DNS服务器不允许递归查询,他会立即向客户端反馈找不到该名称对应的IP(2),此时的查询过程称为递归查询;如果本地DNS服务器允许递归查询,当他在缓存及本地的区域解析库文件中找不到该名称对应的IP时,首先会去根域进行查询(3),根域会告诉本地DNS服务器.com域的IP(4),本地DNS服务器再去找.com域进行查询(5),以此类推直到获得到www.contoso.com主机的IP后(10),本地DNS服务器才会将该地址告诉客户端(2),客户端再次使用得到的IP去访问www.contoso.com主机(11),本地DNS服务器同时将该名称和IP的对应信息记录在自己的缓存中。

通过上述得知,除了(2)是递归查询外,(3)-(10)都是迭代查询,由于允许递归会大量消耗服务器资源,所以很多大型的DNS服务器比如根域服务器就不允许做递归查询,打开或关闭的方法是在bind的配置文件/etc/named.conf中定义。

wKioL1kLIQ2BgU0xAABNpCQoQp8979.png

当用户输入一个地址后,例如www.contoso.com,如果本地DNS服务器没有该地址的记录它会去找根区域解析,通过前文得知区域是以“.”来进行划分的,每一个FQDN的结尾处其实都有一个用于结尾的“.”,只是该“.”可以省略,而结尾处的“.”就代表根区域的意思,www.contoso.com完整的FQDN为www.contoso.com.,DNS在解析时采用从后往前的方式逐一进行区域查找,全球一共有13个根域名解析服务器,而根区域“.”默认在安装DNS服务时就已经自带,在bind的配置文件/etc/named.conf中可以查看到记录根区域的文件。

wKiom1kLIQ3hcNQLAAAUlckiy5k448.png

创建正向解析DNS服务器

1.使用yum install bind -y 安装DNS服务。DNS的配置文件采取分段的方式除了主配置文件/etc/named.conf外,也可以在/etc/named.rfc912.zones文件中定义,默认情况下DNS服务安装完成后只侦听在自己的127.0.0.1:53套接字上,不对外提供任何服务,如果需要对外提供服务,需要将自己的IP地址添加到侦听列表中,并设置allow-query为any,允许任何人访问。dnssec是一种防止DNS被污染的机制,初学者或者测试阶段建议关闭该选项,bind配置文件中以//作为注释符。directory定义了区域解析库文件的存放目录,一般情况下区域解析库文件在/var/name目录下以XXXX.zone的名称存在。

wKioL1kLIQ2S3r8IAABXm3wPcYs765.png完成上述修改后,可以重启named服务或者使用rndc reload命令通知named服务重读配置文件,如果该服务器能访问互联网此时就是一个缓存DNS服务器。

2.创建解析区域。在/etc/named.rfc912.zones文件中添加要解析的区域,type定义了这台DNS服务器在contoso.com区域所扮演的角色,此处定义为主服务器,file指明了区域解析库文件的位置,由于在/etc/named.conf配置文件中设置了directory的值,所以此处可以使用相对路径,contoso.com.zone文件的绝对路径为/var/named/contoso.com.zone。

wKiom1kLIQ7xjnZEAAAkMeKIb30203.png

3.创建区域解析库文件。区域解析库文件是由众多RR(Resource Record)值组成,资源记录的格式为:

domain_name    [TTL]    IN    rr_type    value

domain_name:当前区域的名字,如contoso.com.(结尾的“.”不能省略),因为在/etc/named.rfc912.zones配置文件中已经定义的当前区域名称,所以此处可以使用@来简写

TTL:可以从全局继承,即在区域解析库文件的首部使用$TTL来定义;

rr_type:SOA、A、CNAME、MX、NS等。一个区域解析库有且仅能有一个SOA(Start Of Authority)记录,而必须为解析库的第一条记录;

value:有多个部分组成。(1)当前区域主DNS服务器的FQDN,也可以是当前区域的名字(简写为@) (2)当前区域管理员的邮箱地址,因为@在该文件中有特殊用法,所以邮箱中出现@的地方都已“.”来代替。

在该文件中如果下一行的相同位置与上一行一致,可以省略,他会继承上一行对应位置的值,如:NS的资源记录类型;另外在该文件中如果不是以“.”结尾的值它会自动补上区域名称,所以此处可以是ns2,也可以是ns2.contoso.com. ,但如果是ns2.的话就是错误的数值,他会认为这是ns2.与contoso.com.两个不同的区域。

wKiom1kLIQ7T88lPAABCwuUNGcQ961.png

创建完区域解析库文件后,可以使用named-checkcong和named-checkzone两条命令来检查配置文件和区域解析库文件是否存在语法错误

wKioL1kLIQ7BAPZ8AAAidld42Gc738.png

检查无误后使用dig命令进行测试,其中aa(authority answer)表示这是一个权威回答,只有本负责本区域的DNS服务器的回答才称为权威回答,除此之外的回答全部都是非权威回答,如:递归过程中由其他DNS服务器缓存给出的回答。

wKioL1kLIQ-xdGsAAACnjIhs0To914.png

需要注意的一点是:使用管理员创建完的区域解析库文件任何人都可以读取,在安全上会有风险,建议将权限改为640并且将属组改为named。

wKiom1kLIQ-Rsq1IAACg4icZLiU021.png

创建反向解析DNS服务器

首先需要说明的是:反向解析区域与正向解析区域是两个不同的区域,每个区域都有各自的区域解析库文件,并且这两个区域可以不在同一台服务器上,大多数场景是将正反解析区域部署在同一台服务器,此处也在同一台服务器上部署正反解析区域。

1.创建解析区域。反向解析域的解析区域名称为:网络地址反写.in-addr.arpa,在/etc/named.rfc1912.zone配置文件中添加一个反向解析区域。对于解析区域(zone)其结尾的“.”可以省略,而区域解析库文件(file)的名称是可以随意命名的。

wKiom1kLIQ_D3SXUAAARbCz6Shk854.png

2.在/var/named/目录下创建一个名为172.16.10.zone的反向区域解析库文件,反向区域解析库文件不需要MX和A,以及AAAA记录;以PTR记录为主。$ORIGIN的作用是将名称补全,如:10会补全为10.10.16.172.in-addr.arpa.(这个变量可以不用设置,因为在创建解析区域zone时就已经定义过区域名称),需要注意的是此处的value值不能简写,否则他会使用10.16.172.in-addr.arpa.补全。

wKioL1kLIRCzEV1eAAA2iOzScFk520.png

3.同样使用chmod和chown命令更改创建的/etc/72.16.10.zone区域解析库文件权限和属组,使用named-checkcong和named-checkzone检查无误后,使用dig -x 172.16.10.20 @172.16.10.10或者host命令验证,此处以host为例

wKioL1kLIRHhLCkTAAAs1_UMhbM697.png

补充说明

dig命令不会查询本地host文件;

rndc: remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1来连接named进程;提供辅助性的管理功能,侦听在TCP的953端口



本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1922184

相关文章
|
7月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
12月前
|
域名解析 存储 网络协议
域名解析的终极指南:从基础到进阶,彻底搞懂 DNS 记录
域名解析是网站运行的基础,正确配置DNS记录至关重要。本文从基础到进阶全面解析DNS知识,涵盖A、AAAA、CNAME、MX、TXT、CAA等常见记录类型及其应用场景。通过学习,你将了解DNS的工作原理,掌握如何优化域名配置,确保网站与邮件服务高效运行。无论搭建个人博客还是企业官网,本文都能助你轻松搞定域名解析!
2762 0
|
9月前
|
网络协议
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
11月前
|
域名解析 网络协议 网络安全
SSL证书验证全攻略:DNS/HTTP/手动解析怎么选?
SSL证书在网络安全中至关重要,1Panel提供三种验证方式:DNS验证、HTTP验证和手动解析。DNS验证便捷,适合CDN网站;HTTP验证快速,需服务器在线;手动解析灵活,但操作复杂。根据需求选择合适确认方式,定期检查证书状态。
1079 2
|
11月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
3868 0
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
478 2
|
算法 测试技术 C语言
深入理解HTTP/2:nghttp2库源码解析及客户端实现示例
通过解析nghttp2库的源码和实现一个简单的HTTP/2客户端示例,本文详细介绍了HTTP/2的关键特性和nghttp2的核心实现。了解这些内容可以帮助开发者更好地理解HTTP/2协议,提高Web应用的性能和用户体验。对于实际开发中的应用,可以根据需要进一步优化和扩展代码,以满足具体需求。
1204 29
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
499 4
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
移动开发 前端开发 JavaScript
从入门到精通:H5游戏源码开发技术全解析与未来趋势洞察
H5游戏凭借其跨平台、易传播和开发成本低的优势,近年来发展迅猛。接下来,让我们深入了解 H5 游戏源码开发的技术教程以及未来的发展趋势。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
  • DNS