Linux-DNS域名解析服务01

news2024/11/25 23:46:34

     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.coloradmin.cn/o/1835326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue02-第一个Vue程序

第一个Vue程序 1、什么是MVVM MVVM(Model-View-ViewModel)是一种软件设计模式,由微软WPF(用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Silverlight(类似于Java Applet&#xff0…

Windows 安装 java 环境

搭建java开发环境 java的产品叫JDK(java开发者工具包),必须安装JDK才能使用Java。 一、下载——java下载网址 二、安装 直接全部下一步就行,(安装路径可以更换一下)。 配置JAVA_HOME环境变量, 安装完成后…

css-Echarts图表柱状图,X轴横坐标值显示不完全问题

1.问题 在Echarts图表中当横坐标数值过多,或者数值过长时会导致部分横坐标不显示。数据量少或简单会默认显示完全,当放大时会导致部分横坐标隐藏。 更改第一个Mon字段名 会发现偶数横坐标显示隐藏; 2.解决方法 2.1 在x横坐标中添加interval…

办理无区域名称公司核名流程和条件及时间说明

无行政区划公司是指公司名称中不带有对应的行政区划,经营上不受地方限制。其名称需要通过国家工商总局核名,核名成功后会颁发《名称核准通知书》。之后便可以进行印章制作、银行开户等流程。详情致电咨询我或者来公司面谈。 公司国家局核名的步骤包括&am…

Node.js版本管理工具-NVM

在开发 Node.js 项目时,经常会遇到需要切换不同版本的 Node.js 的情况。为了方便管理和切换各个版本,我们可以使用一些 Node.js 版本管理工具。 Node Version Manager:简称NVM,最流行的 Node.js 版本管理工具之一。它允许我们在同…

AI大模型落地应用场景:LLM训练性能基准测试

随着 ChatGPT 的现象级走红,引领了AI大模型时代的变革,从而导致 AI 算力日益紧缺。与此同时,中美贸易战以及美国对华进行AI芯片相关的制裁导致 AI 算力的国产化适配势在必行。之前也分享过一些国产 AI 芯片、使用国产 AI 框架 Mindformers 基…

工业物联网关为智能制造业提供哪些支撑?天拓四方

随着科技的飞速发展,智能制造业已成为工业领域的转型方向。在这一转变中,工业物联网关发挥着至关重要的作用。作为连接物理世界与数字世界的桥梁,工业物联网关不仅实现了设备与设备、设备与云平台之间的互联互通,更通过实时数据采…

post为什么会发送两次请求详解

文章目录 导文跨域请求的预检复杂请求的定义服务器响应预检请求总结 导文 在Web开发中,开发者可能会遇到POST请求被发送了两次的情况,如下图: 尤其是在处理跨域请求时。这种现象可能让开发者感到困惑,但实际上它是浏览器安全机制…

Linux安装MySQL以及远程连接

1、Linux安装MySQL 1.1、准备解压包 MySQL5.x解压包 提取码:9y7n 1.2、通过rpm脚本安装 切记安装顺序:common --> libs --> client --> server 因为它们之间存在依赖关系,所以务必按照顺序安装 安装前请确保当前目录/文…

金融科技行业的融资趋势、投资者关注及未来预测

一、金融科技行业的融资趋势 金融科技行业的融资趋势近年来展现出强劲的增长势头,具体表现在以下几个方面: 融资规模持续扩大: 根据《全球金融科技投融资趋势报告(2023年上半年)》,2023年上半年全球金融科技行业投融资事件总次数…

防泄密解决方案

防泄密解决方案是一个系统性的策略,旨在保护敏感信息不被非法获取、泄露或滥用。以下是一个结构清晰、分点表示的防泄密解决方案,结合了参考文章中的关键信息和建议: 一、策略制定与政策明确 明确数据分类:将数据分为公开、内部…

【区块链】POS(Proof of Stake)权益证明算法深度解析

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 POS(Proof of Stake)权益证明算法深度解析引言1. POS基本…

【方法】如何隐藏和保护Excel表格中的敏感数据?

在工作中,很多人经常需要处理包含敏感信息的Excel表格。 为了确保这些数据的安全性,我们可以通过隐藏单元格、行和列,以及设置密码保护工作表的方法,来保护数据,下面一起来看看吧! 一、隐藏数据&#xff1…

微信商城源码带分销功能 支持微信小程序+公众号端 含详细图文搭建教程

分享一款微商城源码系统,不仅支持微信公众号端和小程序端二合一管理,带分销机制,集合了市面上电商系统的功能,并增加了多项全新特色功能,如多商户商家入驻、区域代理、收银台、互动直播等,为商家提供了全方…

Go——channel

channel是Go在语言层面提供的协程间的通信方式。通过channel我们可以实现多个协程之间的通信,并对协程进行并发控制。 使用注意: 管道没有缓冲区时,从管道中读取数据会阻塞,直到有协程向管道中写入数据。类似地,向管道…

动手学深度学习(Pytorch版)代码实践 -深度学习基础-13Kaggle竞赛:2020加州房价预测

13Kaggle竞赛:2020加州房价预测 # 导入所需的库 import numpy as np import pandas as pd import torch import hashlib import os import tarfile import zipfile import requests from torch import nn from d2l import torch as d2l# 读取训练和测试数据 train_…

哈尔滨等保测评流程

哈尔滨的等保测评程序是一项严格的、系统化的检测程序,其目的在于保证信息系统的安全、稳定。下面详细介绍了这个过程: 一、引言 随着信息技术的飞速发展,信息系统在各行各业中的应用越来越广泛,信息安全问题也日益凸显。为了保障…

使用CSS常见问题解答卡片

常见问题解答卡片 效果展示 CSS 知识点 CSS 选择器的使用background 渐变背景色运用CSS 综合知识运用 页面整体布局 <div class"container"><h1>经常问的问题</h1><!-- 这里只是展示一个项目 --><div class"tab"><in…

API 设计技巧:基础知识与实践的方法

在这篇深入探讨中&#xff0c;我们将从基础开始&#xff0c;逐步介绍 API 设计&#xff0c;并探讨定义卓越API的最佳实践。 作为一名开发者&#xff0c;你可能已经熟悉了许多这些概念&#xff0c;但我将提供详细解释&#xff0c;以加深你的理解。 API 设计&#xff1a;电子商…

云上战场:ToDesk云电脑、青椒云、顺网云全面对决

前言 记得端午放假期间&#xff0c;我已经在旅游的路上了&#xff0c;老板突然发短信&#xff0c;让我给他画个图&#xff0c;我手上的战斗机已经是十年前的老古董了(平常一直用的公司电脑&#xff0c;也没想过要换)&#xff0c;压根满足不了老板的任务要求&#xff0c;不得已&…