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

相关文章
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
5347 0
|
监控 网络协议 安全
DNS服务器故障不容小觑,从应急视角谈DNS架构
DNS服务器故障不容小觑,从应急视角谈DNS架构
445 4
|
弹性计算 网络协议 Ubuntu
如何在阿里云国际版Linux云服务器中自定义配置DNS
如何在阿里云国际版Linux云服务器中自定义配置DNS
ly~
|
域名解析 网络协议 Linux
如何测试 DNS 记录中的反向代理服务器是否生效?
本文介绍了三种测试反向代理服务器配置的方法。首先,通过命令行工具如 `ping`、`nslookup` 和 `dig` 检查域名解析是否指向正确的 IP 地址。其次,利用 Web 浏览器访问域名,验证页面加载正常且请求头信息无误。最后,借助网络抓包工具如 `Wireshark` 和 `tcpdump` 分析数据包,确保请求正确转发并返回预期响应。
ly~
1639 2
ly~
|
网络协议 应用服务中间件 Apache
如何在 DNS 记录中设置反向代理服务器?
要设置反向代理服务器,首先需安装配置软件(如 Nginx 或 Apache),并确保域名正确指向服务器 IP。接着,在 DNS 中设置 A 或 CNAME 记录,将域名指向反向代理服务器。然后编辑 Nginx 或 Apache 的配置文件,将请求转发至后端服务器。最后,通过浏览器访问域名测试配置是否成功,并使用工具检查请求流向和响应情况。
ly~
1917 3
|
域名解析 监控 负载均衡
智能DNS解析:自动选择最快服务器的奥秘
【9月更文挑战第7天】智能DNS解析是一种根据用户网络环境和服务器负载动态选择最佳服务器的技术,显著提升了访问速度与稳定性。本文详细介绍了其工作原理,包括实时监控、数据分析和路由选择,并探讨了自动选择最快服务器背后的算法策略,如负载均衡、地理位置识别及实时测试。附带示例代码帮助理解其基本实现过程。
1248 0
|
前端开发 数据安全/隐私保护 CDN
二次元聚合短视频解析去水印系统源码
二次元聚合短视频解析去水印系统源码
613 4
|
负载均衡 JavaScript 前端开发
分片上传技术全解析:原理、优势与应用(含简单实现源码)
分片上传通过将大文件分割成多个小的片段或块,然后并行或顺序地上传这些片段,从而提高上传效率和可靠性,特别适用于大文件的上传场景,尤其是在网络环境不佳时,分片上传能有效提高上传体验。 博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

相关产品

  • 云解析DNS
  • 推荐镜像

    更多