Linux-DNS域名解析服务01

     BIND 域名服务基础

1、DNS(Domain Name System)系统的作用及类型

   整个 Internet 大家庭中连接了数以亿计的服务器、个人主机,其中大部分的网站、邮件等服务器都使用了域名形式的地址,如 www.google.com、mail.163.com 等。很显然这种地址形式要比使用 64.233.189.147、202.108.33.74 的 IP 地址形式更加直观,且更容易被用户记住。

    DNS 系统在网络中的作用就是维护一个地址数据库,其中记录了各种主机域名与 IP 地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。

  ①正向解析根据域名查 IP 地址,即将指定的域名解析为相对应的 IP 地址。域名的正向解析是 DNS 服务器最基本的功能,也是最常用的功能。

  ②反向解析根据 IP 地址查域名,即将指定的 IP 地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场合才会用到,比如可用于反垃圾邮件的验证。

   DNS系统域名分布式数据结构:

主机名字www.,二级域名字qq.,顶级域的域名监管机构.com(由全球13台根域统一管理);www.sina.com.cn.:完全合格的域名,最后的“.”代表根域

   实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区域(包含 IP 地址到域名的解析记录)。

      根据所管理的区域地址数据的来源不同,DNS 系统可以分为不同的类型。在同一台 DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:

     ①缓存域名服务器:也称为DNS高速缓存服务器,通过向其它(根域名服务器,共有13台)域名服务器查询获得域名->ip地址记录,将域名查询结果缓存到本地,提高重复查询时的速度。只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器作为解析来源。 缓存放在内存里面

    ②主域名服务器:特定DNS区域的权威服务器(也叫起始授权机构),具有唯一性,负责维护该区域内所有域名->ip地址的映射记录,需要自行建立所负责区域的地址数据文件。维护某一个特定 DNS 区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

    ③从域名服务器(只读,不能添加,任务就是做备份):也称为辅助域名服务器,是对主域名服务器的热备份,其维护的域名->ip地址记录来源于主域名服务器,需要从主域名服务器自动同步区域地址数据库。与主域名服务器提供完全相同的 DNS 解析服务,通常用于 DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都是一样的。关键区别在于,从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

     以上所述主、从服务器的角色只是针对某一个特定的 DNS 区域来说的。例如,同一台DNS 服务器,可以是“.chinaunix.net”区域的主域名服务器,同时也可以是“.cublog.cn”区域的从域名服务器。

2、BIND的安装和控制

    BIND 不是唯一能够提供域名服务的 DNS 服务程序,但它却是应用最为广泛的,BIND可以运行在大多数 Linux/UNIX 主机中。其官方站点位于 ISC - ISC。

2.1、安装BIND软件

    BIND(Berkeley Internet Name Daemon):是应用最广泛的DNS服务程序;官方站点:https://www.isc.org/

    在 CentOS 系统中,系统光盘自带了 BIND 服务的安装文件,主要包括以下几个软件包还有其相关作用:

   ①bind-9.9.4-37.el7.x86_64.rpm。提供了域名服务的主要程序及相关文件;

   ②bind-utils-9.9.4-37.el7.x86_64.rpm。提供了对 DNS 服务器的测试工具程序,如  nslookup 等;

   ③bind-libs-9.9.4-37.el7.x86_64.rpm。提供了 bind、bind-utils 需要使用的库函数;

   ④bind-chroot-9.9.4-37.el7.x86_64.rpm。为 BIND 服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为 BIND 服务的根目录),以提高安全性。

默认已安装 bind-utils 和 bind-libs,因此只需要安装 bind 和 bind-chroot 即可。

2.2、BIND服务控制

   BIND 软件包安装完毕以后,会自动增加一个名为 named 的系统服务,通过 systemctl工具可以控制 DNS 域名服务的运行。例如,执行以下操作可以查询 named 服务的运行状态。

3、BIND服务的配置文件

    使用 BIND 软件构建域名服务时,主要涉及两种类型的配置文件:主配置文件和区域数据文件。其中,主配置文件用于设置 named 服务的全局选项、注册区域及访问控制等各种运行参数;区域数据文件用于存放某个 DNS 区域的地址解析记录(正向记录或反向记录)。

3.1、主配置文件

    主配置文件 named.conf 通常位于/etc/目录下,在 named.conf 文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号“;”表示结束,以“#”号或“//”开始的部分表示注释文字(大段注释可以使用“/* …… */”的格式)。

1)全局配置部分

   全局配置参数包括在形如“options { };”的大括号中,如可以设置监听的地址和端口、区域数据文件存放的目录、允许哪些客户机查询等。

     上述配置内容中,除了 directory 配置项通常会保留以外,其他的配置项都可以省略。若不指定 listen-on 配置项,则 named 默认在所有接口的 UDP 53 端口监听服务;若不指定allow-query 配置项,则默认会响应所有客户机的查询请求。

2)区域配置部分

    区域配置参数使用“zone …… { };”的配置格式,一台 DNS 服务器可以为多个区域提供解析,因此在 named.conf 文件中也可以有多个 zone 配置段。区域类型按照解析方向可分为正向区域、反向区域。

        在上述配置内容中,有几个地方需要注意

   ①每个 zone 区域都是可选的(包括根域、回环域、反向域),具体根据实际需要而定,zone 配置部分的“IN”关键字也可以省略。

   ②反向区域的名称由倒序的网络地址和“.in-addr.arpa”组合而成。例如,对于192.168.1.0/24 网段,其反向区域名称表示为“1.168.192.in-addr.arpa”。

   ③file 配置项用于指定实际的区域数据文件,文件名称由管理员自行设置。

   ④区域配置中的部分参数(如 allow-transfer)也可以放在全局配置中。

修改完主配置文件以后,可以执行“named-checkconf”命令对 named.conf 文件进行语法检查。如果文件中没有语法错误,该命令将不给出任何提示;反之,则会给出相应的提示信息,然后根据出错提示修正文件中的错误即可。带“-z”选项的“named-checkconf”命令还可以尝试加载主配置文件中对应的区域数据库文件,并检查该文件是否存在问题。例如,当出现“…file not found”的错误时,表示找不到对应的文件。

    关于 named.conf 文件中各种配置项的详细说明,可以执行“man named.conf”命令查看手册页,也可参考配置样本文件/usr/share/doc/bind-9.9.4/sample/etc/named.conf。

3.2、区域数据配置文件

         区域数据配置文件通常位于/var/named/目录下,每个区域数据文件对应一个 DNS 解析区域,文件名及内容由该域的管理员自行设置。

        根域“.”的区域数据文件比较特殊。Internet 中所有的 DNS 服务器都使用同一份根区域数据文件,其中列出了所有根服务器的域名和 IP 地址。根区域数据文件可以从国际互联网络信息中心(InterNIC)的官方网站地址 InterNIC | The Internet's Network Information Center下载。

         在区域数据文件中,主要包括 TTL(Time To Live,生存时间)配置项、SOA(Start Of Authority,授权信息开始)记录、地址解析记录。文件中的注释信息以“;”(分号)开始。

1)TTL 配置及 SOA 记录部分

      第一行的 TTL 配置用于设置默认生存周期,即缓存解析结果的有效时间。SOA 记录部分用于设置区域名称、管理邮箱,以及为从域名服务指定更新参数。

        上述配置内容中,时间单位默认为秒(s),也可以使用 M(分)、H(时)、W(周)、D(天)等单位。文件中的“@”符号表示当前的 DNS 区域名,相当于“bdqn.com.”或“admin.bdqn.com.”,表示域管理员的电子邮箱地址(由于“@”符号已有其他含义,因此将电子邮件地址中的“@”用“.”代替)。SOA 记录中的更新序列号用来同步主、从服务器的区域数据,当从服务器判断区域更新时,若发现主服务器中的序列号与本地区域数据中的序列号相同,则不会进行下载。

2)地址解析记录部分

      地址解析记录用来设置 DNS 区域内的域名、IP 地址映射关系,包括正向解析记录和反向解析记录。反向解析记录只能用在反向区域数据文件中。

          上述配置内容中,用到以下四种常见的地址解析记录:

   ①NS(Name Server,域名服务器):记录当前区域的 DNS 服务器的主机地址;

   ②MX(Mail Exchange,邮件交换):记录当前区域的邮件服务器的主机地址,数字10 表示(当有多个 MX 记录时)选择邮件服务器的优先级,数字越大,优先级越低;

   ③A(Address,地址):记录正向解析条目。例如,“www IN A 173.16.16.1”表示域名 www.bdqn.com 对应的 IP 地址是 173.16.16.1;

   ④CNAME(Canonical Name,别名):记录某一个正向解析条目的其他名称。例如,“ftp IN CNAME www”表示域名 ftp.bdqn.com 是 www.bdqn.com 的别名。

其中,NS、MX 记录行首的“@”符号可以省略(默认继承 SOA 记录行首的@信息),但是必须保留一个空格或 Tab 制表符。

在反向区域数据文件中,不会用到 A 记录,而是使用 PTR 指针(Point)记录。例如,对于反向区域 16.16.173.in-addr.arpa,添加的反向解析记录可以是以下形式:

       使用 PTR 记录时,第一列只需要指明对应 IP 地址的“主机地址”部分即可,如“1”或“4” 等,系统在查找地址记录时会自动将当前反向域的网络地址作为前缀。例如,上述文件中的“4 IN PTR mail.bdqn.com.”表示 IP 地址为 173.16.16.4 的主机的域名是 mail.bdqn.com.。

      在区域数据配置文件中,凡是不以点号“.”结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的 DNS 域为“bdqn.com”,则在文件中的主机地址“www”相当于“www.bdqn.com.”。因此,当使用完整的 FQDN(Fully Qualified Domain Name,完全合格域名/全称域名)地址时,务必记得地址末尾的点号“.”不能省略。

    修改完区域数据文件以后,可以执行“named-checkzone”命令对该文件进行语法检查。依次指定区域名称、数据文件名作为参数。如果文件中没有语法错误,系统将给出“OK”的提示信息。例如,若要检查 DNS 区域 bdqn.com 的区域数据文件 bdqn.com.zone,可以执行以下操作。

      当一台服务器需要同时承载某个 DNS 区域内的许多个不同的域名(如 IDC 的虚拟主机服务器、提供个人主页空间的网站服务器等)时,可以在区域数据文件的最后一行添加泛域名解析记录,即使用“*”以匹配任意主机名。

下面演示缓存域名服务器、主域名服务器、从域名服务器的配置操作

实验环境:三台虚拟机;IP地址分别为:192.168.10.101(作为主域名服务器)、192.168.10.102(作为从域名服务器)、192.168.10.103(作为客户端测试)

一、缓存域名服务器的配置操作:

1、101主机关闭防火墙、关闭内核机制

  若要永久关闭内核机制,需vi编辑器进入内核数据文件,将状态改为关闭

2、101主机安装bind的软件包

3、101主机vi编辑器进入域名主配置文件

上述文件里的53号端口既支持UDP也支持TCP

UDP的53号端口:

       客户端发送解析请求给服务器(UDP53);不需要建立握手链接,封装的数据偏小(否则要分片处理,UDP不能解决)

TCP的53号端口

        迭代查询(两个服务器之间的查询)

       主从DNS服务器;DNS服务器转发解析给另一个DNS服务器

  修改里面的配置参数

 在options配置区域的最后添加上转发器的参数,若后面测试时不成功,可以返回将此配置以“#”注释符号注释掉:

在文件的最后面进行区域的配置,这里文件中的区域类型是缓存域名服务器,因此这里不需要进行修改:hint:意思是缓存

配置好后按ESC键":wq"保存配置并退出

4、101主机启动named服务:

5、101主机vi编辑器进入网卡配置文件

  将域名解析服务项修改为101主机的IP地址,另外一个注释掉:

   配置好后按ESC键":wq"保存配置并退出;重启网卡服务

6、103主机:安装bind-utils软件包方便使用nslookup命令进行测试

   随便测试一个域名

二、主域名服务器配置操作:

      正向查找

1、101主机进入域名的主配置文件

     将缓存区域的配置注释掉,添加主域名服务器的配置参数

      配置好后按ESC键":wq"保存配置并退出,重启named服务

2、101主机;重启服务会报错,其解决方法如下:

  vi编辑器进入拷贝好的文件

    A记录:IPV4类型

 将上图标注的地方修改为以下内容(IN:在...里面,是个介词;A、NS都是指定类型;*:是泛域名服务器):可以根据自己的需要配置

   配置好后按ESC键":wq"保存配置并退出

3、101主机;检测(若检测显示错误可以进入主配置文件和正向查找区域文件检查填写的数据是否有错,一定要注意格式

    主配置文件检测(如无误没有任何提示):

    正向查找区域文件检测(若无误显示OK)

4、101主机:列出named目录下的文件   

    可以看到bdqn.com.zone文件的属主是root,是不正确的,它的归属应该是named,这里将其属主进行修改,然后重启named服务

5、103主机:先安装一个bind-utils软件包以方便使用nslookup命令进行测试

  显示以上结果说明主域名服务器正向查找配置完成无误;下面继续主域名服务器的反向查找配置

6、101主机:vi编辑器进入主配置文件添加反向查找(图片中最后一个区域)的区域配置参数
7、101主机:有了之前的经验,这里我们将区域配置文件拷贝出来(后面的192.168.10.arap:是给反向查找区域配置文件起的名字,要与主配置文件里起的文件名相同),并将属主进行修改

  vi编辑器进入反向查找的区域配置文件

    添加配置信息如下(可以根据自己的需要配置)

    保存退出后重启

8、101主机:检测(主配置区域文件以及反向查找区域文件检测):
9、103主机:测试
三、从域名服务器的配置
1、102主机:关闭内核机制、关闭防火墙,并安装bind软件包
2、102主机:vi编辑器进入主配置区域文件

     将options区域参数进行修改

     在文件末尾添加从域名服务器的区域配置(分为正向查找和反向查找)

   配置好后保存退出,并重启named服务

3、进入网卡配置文件,修改里面的参数

    将DNS域名解析改成102主机地址,另一个注释掉

4、103主机:测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/720610.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

window下nginx命令报错 CreateFile() “xxx/logs/nginx.pid“ failed

参考文章: 《Windows下nginx报错解决:CreateFile() “xxx/logs/nginx.pid” failed 》 《Windows下Nginx的启动停止重启等命令操作过程》 解决过程 报错忘记截图了 错误详细信息:在nginx -s reload、nginx -s stop时出现 nginx: [error] C…

YOLOv8目标检测算法在地平线Bernoulli2架构BPU上高效部署参考(PTQ方案)30fps!

—— 以RDK X3为例,修改Head部分,8ms疾速Python后处理程序,30fps稳稳当当 本文在地平线对YOLOv8s的Backbone修改的基础上,提出一种在地平线Bernoulli2架构BPU上部署YOLOv8的后处理思路。使用640640分辨率,80类别基于C…

DSP——从入门到放弃系列2——PLL锁相环(持续更新)

1、概述 锁相环(Phase Locked Loop,PLL)是处理器的时钟源,控制着C6678处理器中C66x内核、各外围设备的时钟的时钟比、对准和选通功能。 2、功能描述 上图显示了PLL和PLL控制器的逻辑实现。PLL控制器提供通过软件可配置的分频器&#xff0…

关于glibc-all-in-one下载libc2.35以上报错问题

./download libc版本 下载2.35时报错:原因是缺少解压工具zstd sudo apt-get install zstd 下载后重新输命令就可以了 附加xclibc命令 xclibc -x ./pwn ./libc-版本 ldd pwn文件 xclibc -c libc版本

Git记录 上传至Gitee

1.GitHub拉去的代码需要上传至自己的Gitee需要清除原有remote服务器信息 查看原始远程服务器信息,后删除远程服务器信息 git remote -v git remote rm origin 2.Gitee新建软件仓库 法1)不用初始化仓库,初始化会自动生成.git。如果本地.git…

【第18章】Vue实战篇之登录界面

文章目录 前言一、数据绑定1. 数据绑定2. 数据清空 二、表单校验1. 代码2. 展示 三、登录1.登录按钮2.user.js3. login 四、展示总结 前言 上一章完成用户注册&#xff0c;这一章主要做用户登录。 一、数据绑定 登录和注册使用相同的数据绑定 1. 数据绑定 <!-- 登录表单 -…

Postman接口测试之postman设置接口关联,实现参数化

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结…

【C#上位机应用开发实战】—— UI界面设计与实践代码

在C#上位机应用开发中&#xff0c;UI界面设计是至关重要的一环。一个好的UI设计不仅可以提升应用的用户体验&#xff0c;还可以提高应用的易用性和效率。本文将介绍一些UI界面设计的实战经验和技巧。 在这个示例中&#xff0c;我们创建了一个名为MainForm的窗体类。该窗体包含了…

Table 布局的妙用 - 多行联动布局

1. 前言 最近产品需求遇到一个布局的问题&#xff0c; 大致是两列&#xff0c; 两行的关系&#xff0c; 左侧的文案区域的高度根据右侧内容的高度自动撑满&#xff0c; 左侧文案的宽度根据左侧单元格的最大宽度来适配&#xff0c; 大致如下&#xff1a; 我们通过一般用DIVCSS的…

短剧APP开发,探索短剧市场的新机遇

近几年&#xff0c;短剧市场得到了繁荣发展&#xff0c;随着短剧的快速发展&#xff0c;短剧APP也得到发展&#xff0c;受到了越来越多用户的喜欢。通过短剧APP&#xff0c;为大众带来多样、高质量的短剧内容。对于影视创作者来说&#xff0c;短剧APP在线观看系统的开发也将成为…

Tuple 元组

文章目录 一、什么是元组 &#xff1f;二、元组的具体操作2.1 创建元组2.1.1 tuple() 创建元组函数和 list() 创建列表函数总结 2.2 元组的元素访问操作2.3 元组的元素计数操作2.4 zip 对象 一、什么是元组 &#xff1f; 列表属于可变序列,可以任意修改列表中的元素。 元组的…

5G+北斗高精度定位终端技术,赋能千行百业应用

5G北斗高精度定位终端技术的融合&#xff0c;正以前所未有的精准度和实时性&#xff0c;为千行百业带来革命性的变革。从智慧城市的精细化管理&#xff0c;到智能交通的实时调度&#xff0c;再到精准农业的播种与收割&#xff0c;这一技术正不断拓宽其应用领域&#xff0c;为各…

【Linux】自定义shell(命令行解释器)

原理&#xff1a; shell是命令行解释器&#xff0c;当有命令需要执行时&#xff0c;shell创建子进程&#xff0c;让子进程执行命令&#xff0c;而shell只需等待子进程退出即可。 其中我们使用了下面这几个函数&#xff1a; 获取命令行&#xff08;fgets函数&#xff09;。解析…

C++ 66 之 类模版

#include <iostream> #include <string> using namespace std;// 习惯性 < >中 类模板用class 普通的函数模板就用typename // template<class NAMETYPE, class AGETYPE> template<class NAMETYPE, class AGETYPE int> // 可以设置默认的类型值…

Beyond Compare 文件对比工具下载2024最新版-Beyond Compare详细安装步骤

Beyond Compare是一款不可多得的专业级的文件夹和文件对比工具。使用它可以很方便地对比出两个文件夹或者文件的不同之处&#xff0c;相差的每一个字节用颜色加以表示&#xff0c;查看方便&#xff0c;支持多种规则对比。是程序工程师以及上班族必备的有效辅助工具 安 装 包 获…

并发编程理论基础——解决死锁【等待-通知机制优化循环等待】(五)

在破坏占用且等待条件时&#xff0c;如果使用while死循环 在并发量不大的情况下循环几十上百次也就好了如果while中执行方法时间比较长&#xff0c;或者并发量大时&#xff0c;可能要循环上万次才能获取到锁&#xff0c;非常消耗CPU 相较于使用while死循环&#xff0c;更好的方…

位图法-有效的数独

有效的数独&#xff0c;主要是判断每行每列每宫有无重复元素。 每行每列用二重循环&#xff0c;每宫比较复杂&#xff0c;需要考虑每一宫的坐标与二重循环ij对应关系 行i&#xff0c;每一宫3行&#xff0c;3列 x3*(i/3)j/3 y3*(i%3)j%3

超简洁的待办事项自托管便签todo

什么是todo todo 是一个自托管的 todo web 应用程序&#xff0c;可让您以简单且最少的方式跟踪您的 todo。 搭建 使用Docker命令行方式进行搭建 docker run -d -p 8000:8000 -v todo_db:/usr/local/go/src/todo/todo.db prologic/todo Docker-compose.yml version: 3 ​ se…

全球首个开源类Sora模型大升级,16秒720p画质电影感爆棚!代码和权重全面开源!

目录 01 视频界开源战士 02 深度解码技术 03 打破闭环&#xff0c;开源赋能 潞晨Open-Sora团队刚刚在720p高清文生视频质量和生成时长上实现了突破性进展&#xff01; 全新升级的Open-Sora不仅支持无缝生成任意风格的高质量短片&#xff0c;更令人惊喜的是&#xff0c;团队选…

BC153 [NOIP2010]数字统计

数字统计 一.题目描述二.输入描述&#xff1a;三.输出描述&#xff1a;四.数字范围五.题目思路六.代码实现 一.题目描述 请统计某个给定范围[L, R]的所有整数中&#xff0c;数字2出现的次数。 比如给定范围[2, 22]&#xff0c;数字2在数2中出现了1次&#xff0c;在数12中出现1次…