CentOS8服务篇1:配置DNS服务器

2023-10-30

一、配置主DNS服务器       

      伯克利因特网名称域(Berkeley Internet Name DomainBIND)服务是全球范围内使用非常广泛,安全可靠且高效的域名解析服务程序。DNS域名解析服务作为互联网基础设施服务,其责任非常重大,因此建议大家在生产环境中安装部署BIND服务程序时加上chroot(俗称牢笼机制)扩展包,以便有效地限制BIND服务程序,使其仅能对自身的配置文件进行操作,以确保整个服务器的安全。

建议配置前临时关闭防火墙和SELinux服务。

【systemctl stop firewalld】

setenorce  0       

【yum install  -y bind-chroot

      配置BIND服务程序并不简单,因为要想为用户提供健全的DNS查询服务,必须在本地保存相关的域名数据库,但是如果把所有域名和IP地址的对应关系都写入某个配置文件,会有上千万条的参数,这样既不利于提高程序的执行效率,也不方便日后的修改和维护工作。因此,在BIND服务程序中有以下3个比较关键的文件。

•  主配置文件(/etc/named.conf):只有58行,而且在去除注释信息和空行之后,实际有效的参数仅有30行左右,这些参数用来定义BIND服务程序的运行。

•  区域配置文件(/etc/named.rfc1912.zones):用来保存域名和IP地址的对应关系。类似于图书目录,对应着每个域名和相应的IP地址所在的具体位置,当需要查看或修改文件时,可根据这个位置找到相关文件。

•  数据配置文件目录(/var/named):该目录用来保存域名和IP地址真实对应关系的数据配置文件。

      在Linux操作系统中,BIND服务程序的名称为named。首先需要在/etc目录中找到该服务程序的主配置文件,然后把第11行和第17行的地址均修改为any。这两个地方一定要修改准确,如图下图所示。

【vim /etc/named.conf

      图中的第13行表示监听在这个DNS服务器系统上面的哪个网络接口。默认监听“localhost127.0.0.1,即只有本机可以对DNS服务器进行查询,但是这样并不合理,所以这里要将大括号内的数据改成any,这样可以监听多个接口,any后面要加上分号才算结束。

      “allow-query { any; };”是针对客户端的设定,即谁可以对此DNS服务器提出查询请求。原本的档案内容默认只对localhost开放,这里改成对所有的用户开放,防火墙也要开放才行。

      BIND服务程序的区域配置文件(/etc/named.rfc1912.zones)用来保存域名和IP地址对应关系的所在位置。在这个文件中,定义了域名与IP地址解析规则的存放位置及服务类型等内容,但不包含具体的域名、IP地址对应关系等信息。BIND服务类型有3种,分别为hint(根区域)、master(主区域)、slave(辅助区域),其中常用的masterslave指的就是主服务器和从服务器。将域名解析为IP地址的正向解析参数和将IP地址解析为域名的反向解析参数分别如下图所示。

     下面的实验中会分别修改bind服务程序的主配置文件、区域配置文件与数据配置文件。如果在实验中遇到了bind服务程序启动失败的情况,并且您认为这是由写错参数造成的,就可以执行【named-checkconf】命令和【named-checkzone】命令,分别检查主配置文件与数据配置文件中的语法或参数的错误。

1.配置正向解析区域

      在DNS域名解析服务中,正向解析是指根据域名(主机名)查找到对应的IP地址。也就是说,当用户输入了一个域名后,BIND服务程序会自动进行查找,并将匹配到的IP地址返给用户。这也是最常用的DNS工作模式。

1步:编辑区域配置文件。该文件中默认存在一些解析参数,旨在让用户有一个参考。可以将以下参数添加到区域配置文件的最下面,当然,也可以将该文件中的原有信息全部清空,只保留自己的域名解析信息。

【vim /etc/named.rfc1912.zones】

    zone "linux-yhy.com" IN {

    type master;

    file "linux-yhy.com.zone";

    allow-update {none;};

};

2步:编辑数据配置文件,命令为【vim linux-yhy.com.zone。可以从/var/named目录中复制一份正向解析的模板文件(named.localhost),命令为cp -p named.localhost linux-yhy. com.zone,然后把域名和IP地址的对应数据填写到数据配置文件中并保存。在复制时记得加上-p参数,这样可以保留原始文件的所有者、所属组、权限等信息,以便让BIND服务程序顺利读取文件内容,正向解析文件如下图所示。

 在保存并退出文件后记得重启named服务程序,命令为【systemctl restart named】,以使新的解析数据生效。考虑到正向解析文件中的参数较多,而且都比较重要,笔者在每个参数后面都进行了简要说明。

$TTL 1D

#生存周期为1

@

IN SOA

linux-yhy.com.

root.linux-yhy.com.

(

#授权信息开始

#DNS区域的地址

#域名管理员的邮箱(不要用@符号)

0;serial

#更新序列号

1D;refresh

#更新时间

1H;retry

#重试延时

1W;expire

#失效时间

3H);minimum

#无效解析记
录的缓存时间

NS

ns.linux-yhy.com.

#域名服务器记录

ns

IN A

192.168.88.188

#地址记录(ns.linux-yhy.com.

IN MX 10

mail.linux-yhy.com.

#邮箱交换记录

mail

IN A

192.168.88.188

#地址记录(mail.linux-yhy.com.

www

IN A

192.168.88.188

#地址记录(www.linux-yhy.com.

bbs

IN A

192.168.88.20

#地址记录(bbs.linux-yhy.com.

3步:检验解析结果。为了检验解析结果,一定要先把Linux操作系统网卡中的DNS地址参数修改成本机IP地址,这样就可以使用本机提供的DNS查询服务了,如下图所示。修改完成后重启网络服务,命令为【systemctl restart network】。

 nslookup】命令用于检测能否从DNS服务器中查询到域名与IP地址的解析记录,进而更准确地检验DNS服务器是否能够为用户提供服务,如下图所示。

 2.配置反向解析区域

      在DNS域名解析服务中,反向解析的作用是将用户提交的IP地址解析为对应的域名信息,它一般用于对某个IP地址上绑定的所有域名进行整体屏蔽,屏蔽由某些域名发送的垃圾邮件。它也可以针对某个IP地址进行反向解析,大致判断出有多少个网站在上面运行。当购买虚拟主机时,可以使用这一功能验证虚拟主机提供商是否有严重的超售问题。

1步:编辑区域配置文件。在编辑该文件时,除了不要写错格式,还需要记住此处定义的数据配置文件名称,因为一会儿还需要在/var/named目录中建立与其对应的同名文件。反向解析是把IP地址解析成域名格式,因此在定义zone(区域)时应该把IP地址反写,如果原来是192.168.88.0,反写后应该是88.168.192,而且只需写出IP地址的网络位即可。把下列参数添加至正向解析参数的后面。

vim /etc/named.rfc1912.zones

zone "linux-yhy.com" IN {

    type master;

    file "linux-yhy.com.zone";

    allow-update {none;};

};

zone "88.168.192.in-addr.arpa" IN {

    type master;

    file "192.168.88.arpa";

};

2步:编辑数据配置文件。首先从/var/named目录中复制一份反向解析的模板文件,命令为cp-p named.loopback 192.168.88.arpa】,然后把下列参数填写到文件中,命令为【vim 192.168.88.arpa】。其中,IP地址仅需要写主机位,如下图所示。最后重启BIND服务,命令为systemctl restart named】

TTL 1D

@

IN SOA

linux-yhy.com.

root.linux-yhy.com.

(

0;serial

1D;refresh

1H;retry

1W;expire

3H );minimum

NS

ns.linux-yhy.com.

ns

A

192.168.88.188

188

PTR

ns.linux-yhy.com.

#PTR为指针记录,仅用于反向解析

188

PTR

mail.linux-yhy.com.

#对应IP地址为192.168.88.188

20

PTR

www.linux-yhy.com.

#对应IP地址为192.168.88.20

30

PTR

bbs.linux-yhy.com.

#对应IP地址为192.168.88.30

3步:检验解析结果。在前面的正向解析实验中,已经把系统网卡中的DNS地址参数修改成了本机IP地址,因此可以直接使用nslookup命令来反向检验解析结果,仅需输入IP地址即可查询到对应的域名信息,如下图所示。

 二、配置从服务器

      作为重要的互联网基础设施服务,保证DNS域名解析服务的正常运转至关重要,只有这样才能提供稳定、快速且不间断的域名查询服务。在DNS域名解析服务中,从服务器(IP地址:192.168.88.20)可以从主服务器(IP地址:192.168.88.188)上获取指定的区域数据文件,从而起到备份解析记录与均衡负载的作用,因此通过配置从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率,具体的操作步骤如下。

1步:在主服务器的区域配置文件中允许该从服务器的更新请求,即修改allow-update {允许更新区域信息的主机地址;};参数,然后重启主服务器的DNS服务程序。

vim /etc/named.rfc1912.zones

zone "linux-yhy.com" IN {

    type master;

    file "linux-yhy.com.zone";

    allow-update { 192.168.88.20; };

};

zone "88.168.192.in-addr.arpa" IN {

    type master;

    file "192.168.88.arpa";

    allow-update { 192.168.88.20; };

};

systemctl restart named

2步:在从服务器中填写主服务器的IP地址与要获取的区域信息,然后重启DNS服务程序。注意此时的服务类型应该是slave(从),而不再是master(主)。masters参数后面应该为主服务器的IP地址,而且file参数后面定义的是同步数据配置文件后要将其保存到什么位置,稍后可以在该目录中看到同步的文件。

【vim /etc/named.rfc1912.zones】

zone "linux-yhy.com" IN {

    type slave;

    masters { 192.168.88.188; };

    file "slaves/linux-yhy.com.zone";

};

zone "10.168.192.in-addr.arpa" IN {

    type slave;

    masters { 192.168.88.188; };

    file "slaves/192.168.88.arpa";

};

systemctl restart named】

3步:检验解析结果。当从服务器的DNS服务程序重启后,就可以已经自动从主服务器上同步数据配置文件了,而且该文件默认会放置在区域配置文件所定义的目录位置。随后修改从服务器的网络参数,把DNS地址参数修改成192.168.88.20,即可使用从服务器自身提供的DNS域名解析服务。最后就可以使用nslookup命令顺利看到解析结果了。使用【cd /var/named/slaves】命令切换到相应目录,使用【ls】命令查看从服务器复制过来的文件,如下图所示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CentOS8服务篇1:配置DNS服务器 的相关文章

  • 页面错误陷阱的成本

    我有一个应用程序 它定期 每 1 或 2 秒后 通过分叉自身来获取检查点 因此 检查点是原始进程的一个分支 它一直保持空闲状态 直到原始进程发生某些错误时被要求启动 现在我的问题是fork的写时复制机制的成本有多大 每当原始进程写入内存页面
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • Linux:通过网络进行屏幕桌面视频捕获和 VNC 帧速率

    抱歉 文字墙很长 TL DR VNC 连接的帧速率是多少 以帧 秒为单位 或者更确切地说 由谁决定 客户端还是服务器 对于桌面屏幕捕获的任何其他建议 但 正确的时间编码 具有不抖动的帧速率 具有稳定的周期 并有可能将其作为未压缩 或无损 图
  • 访问 Linux 线程(pthreads)的本地堆栈

    我目前正在实现一个使用多线程但对总内存消耗有要求的应用程序 我希望有一个主线程执行 I O 并有几个工作线程执行计算 目前 我在主堆栈上有几个可供工作人员访问的数据结构 我使用 OpenMP 进行工作分配 由于主 工作者模式不能很好地与 O
  • 如何使用sprof?

    请举例说明 从邮件中找到here http sources redhat com ml libc alpha 2003 07 msg00029 html and here http sourceware org ml binutils 20
  • Linux下的C#,Process.Start()异常“没有这样的文件或目录”

    我在使用 Process 类调用程序来启动程序时遇到问题 可执行文件的层次结构位于 bin 目录下 而当前工作目录需要位于 lib 目录下 project bin a out this is what I need to call lib
  • Snap-confine 具有提升的权限,并且不受限制,但应该受到限制。拒绝继续避免权限升级攻击

    我已经使用 snap 一段时间了 但最近升级后 当我尝试打开任何应用程序时 出现此错误 Snap confine has elevated permissions and is not confined but should be Refu
  • Bash 中 $() 和 () 之间的区别

    当我打字时ls l echo file 支架的输出 这只是简单的回显 被获取并传递到外部ls l命令 就等于简单的ls l file 当我打字时ls l echo file 我们有错误 因为不能嵌套 内部外部命令 有人可以帮助我理解之间的区
  • 无法为 Python 3.4 创建工作虚拟环境

    I 安装Python 3 4 2 https docs python org 3 using unix html building python和我的 Linux Mint 17 1 中的 Virtualenv 12 0 5 然后我尝试创建
  • 使用 MongoDB docker 镜像停止虚拟机而不丢失数据

    我已经在 AWS EC2 上的虚拟机中安装了官方的 MongoDB docker 映像 并且数据库上已经有数据 如果我停止虚拟机 以节省过夜费用 我会丢失数据库中包含的所有数据吗 在这些情况下我怎样才能让它持久 有多种选择可以实现此目的 但
  • 使用netcat将unix套接字传输到tcp套接字

    我正在尝试使用以下命令将 unix 套接字公开为 tcp 套接字 nc lkv 44444 nc Uv var run docker sock 当我尝试访问时localhost 44444 containers json从浏览器中 它不会加
  • 退出 bash 脚本但保持进程运行

    我正在运行服务器 需要使用参数执行以下命令 这些脚本目前工作得很好 但问题是当我运行脚本时我无法返回到控制台 它在控制台中保持运行 如果我强行停止它 那么该过程也会停止 我想继续运行该进程并返回到控制台 bin sh php home st
  • 在 Ubuntu 上纯粹通过 bash 脚本安装 mysql 5.7

    我想要一个无需任何手动输入即可安装 MySQL 5 7 实例的 bash 脚本 我正在关注数字海洋教程 https www digitalocean com community tutorials how to install mysql
  • 通过 SSH 将变量传递给远程脚本

    我正在通过 SSH 从本地服务器在远程服务器上运行脚本 首先使用 SCP 复制该脚本 然后在传递一些参数时调用该脚本 如下所示 scp path to script server example org another path ssh s
  • 如何使用ffmpeg重叠和合并多个音频文件?

    我正在尝试将多个音频文件合并到一个文件中 但我可以使用以下命令来连接 而不是连接 ffmpeg v debug i file1 wav i file2 wav i file3 wav filter complex 0 0 concat n
  • Xenomai 中的周期性线程实时失败

    我正在创建一个周期性线程 它在模拟输出上输出方波信号 我正在使用 Xenomai API 中的 Posix Skin 和 Analogy 我使用示波器测试了代码的实时性能 并查看了方波信号 频率为 1kHz 的延迟 我应该实现 250us
  • 如何仅将整个嵌套目录中的头文件复制到另一个目录,在复制到新文件夹后保持相同的层次结构

    我有一个目录 其中有很多头文件 h 和其他 o 和 c 文件以及其他文件 这个目录里面有很多嵌套的目录 我只想将头文件复制到一个单独的目录 并在新目录中保留相同的结构 cp rf oldDirectory newDirectory将复制所有
  • 如何在 Linux x86_64 上模拟 iret

    我正在编写一个基于 Intel VT 的调试器 由于当 NMI Exiting 1 时 iret 指令在 vmx guest 中的性能发生了变化 所以我应该自己处理vmx主机中的NMI 否则 guest会出现nmi可重入错误 我查了英特尔手
  • 使用命令行将 MediaWiki 维基文本格式转换为 HTML

    我倾向于编写大量文档 因此 MediaWiki 格式对我来说很容易理解 而且比编写传统 HTML 节省了我很多时间 然而 我也写了一篇博客 发现一直从键盘切换到鼠标来输入正确的 HTML 标签会增加很多时间 我希望能够使用 Mediawik

随机推荐

  • 20个基于DPDK开源项目,建议收藏

    一 ANS DPDK 原生加速网络堆栈 ANS 加速网络堆栈 是DPDK本地TCP IP堆栈 也参考FreeBSD实现 ANS提供了一个与Intel DPDK一起使用的用户空间TCP IP堆栈 文件结构 ans 加速网络堆栈过程 librt
  • FireFly菜鸟学习二(cocos2dx客户端和服务器通信实现)

    1 FireFly服务器 FireFly自定义通信协议 coding utf8 from firefly server globalobject import netserviceHandle from firefly server glo
  • kali安装SRC挖掘利器—ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统安装教程

    目录 先参考kali安装Docker 卸载旧版本 配置Docker以在启动时启动 Linux的安装后步骤 Docker 启动 文章参考地址 https www 77169 net download 267781 html 本地搭建 Kali
  • 对extern,static,const的再认识

    const const修饰的值为常量 是不可改变的 在c 语言中是不可改变的 而在C语言中 我们可以通过指针去修改那一片地址的值 const修饰的指针 表面指针指向或者指针的值是不可被修改的 我们可以通过通配符 的位置来判断 在左说明修饰的
  • 测试计划等模板

    一 测试计划 测试范围 测试策略 测试资源 人员分配 时间安排 进度 风险评估 测试目的 测试背景 二 测试用例 测试用例编号 标题 所属模块 前置条件 操作步骤 输入数据 预期结果 实际结果 三 缺陷报告 缺陷编号 缺陷标题 缺陷状态 缺
  • vue-cropper 截图组件踩坑记

    安装 npm install save vue cropper 封装组件
  • 刷脸支付不用排队节约了时间

    科技改变人们生活 科技推动人类社会进步 近几年移动支付崛起 让人们实现了 一个手机走天下 的便捷 而如今 随着人工智能 大数据等技术的积累突破 支付方式再一次出现重大突破 即将从手机移动支付跨越到刷脸支付时代 据了解 刷脸支付技术已经成熟
  • golang实现http(s)代理

    简单原理 最近需要用golang去实现一个http s 的代理 简单的解释一下 实现过程就是首先启动一个http s 的服务 这个很简单 demo一大堆 我就不多说了 接下来要实现代理 很简单的原理就是 通过你实现的http s 服务接收到
  • python编写shell脚本详细讲解_python编写shell脚本详细讲解

    今天同事叫我编写一个shell脚本 话说 虽然我受 nix的影响甚深 但是对于 nix 里随处可见的sh脚本却是讨厌之极 为什么讨厌呢 首先是因为sh脚本那莫名其妙的语法 感觉就像随写随扔的程序 完全没有任何美感可言 其次是sh脚本的处理能
  • 我为什么选择go语言

    这里 我并不打算引起语言争论的口水仗 我并不是什么大牛 对语言的造诣也不深 只是想通过自己实际的经历 来说说为什么我在项目中选择go 其他语言的经历 C 在接触go之前 我已经有多年的c 开发经验 主要用在游戏服务端引擎开发以及P2P上面
  • pycharm调试时,控制台输入出现the view is read-only和pause the process to use the command line

    仅作为记录 大佬请跳过 文章目录 the view is read only pause the process to use the command line the view is read only 点击切换几次就好了 pause t
  • 【QT进阶】第十一章 QJson的创建与读取解析 - 实例天气获取并解析

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • error info mysql_UCenter info: MySQL Query Error (UCenter一个错误的解决)

    错误信息 UCenter info MySQL Query Error SQL SELECT FROM Table notelist WHERE closed 0 AND app2 5 LIMIT 1 Error Unknown colum
  • 分布式网络通信框架(十一)——logger日志系统设计实现

    日志模块的设计 本项目所实现的日志模块采用异步工作方式 多个线程往队列写日志 一个专门的写线程从队列中读取日志信息写入磁盘中的日志文件 要点 线程安全 线程间通信 队列 生产者消费者模型 日志模块设计图如下 源代码实现 队列的实现 模板类的
  • SpringCloud使用Consul作为服务注册发现中心

    本篇文章主要记录SpringCloud使用Consul作为服务注册发现中心 通过服务提供者和消费者为例 来真正掌握Consul注册中心 目录 一 前言 二 搭建服务提供者 1 创建cloud provider payment8004项目 2
  • 基于粒子群改进的灰色神经网络的时间序列预测

    基于粒子群改进的灰色神经网络的时间序列预测 时间序列预测在许多领域中都具有重要的应用价值 如股票市场预测 气候变化预测等 针对时间序列预测问题 传统的预测模型往往面临着数据不稳定性和非线性特征的挑战 为了提高预测准确度 研究人员提出了许多改
  • QT 中与我们思维不符的片段

    1 如下 第二个lastIndexOf返回6 不太符合我们的思维 按理说匹配的是前7个字符 但实际匹配的是 crazy az 就是说加上了 strlen az 1 这个匹配串首字母外的长度 QString x crazy azimuths
  • 百度富文本编辑器UEditor的使用

    引入富文本编辑器 1 下载地址 https ueditor baidu com website download html 2 导入项目 3 文件引用
  • Java Web 安全之XSS

    概念 跨站脚本攻击 Cross Site Scripting 简称XSS 恶意攻击者往Web页面里插入恶意Script代码 当用户浏览该页之时 嵌入其中Web里面的Script代码会被执行 从而达到恶意攻击用户的目的 原理 攻击者在客户端以
  • CentOS8服务篇1:配置DNS服务器

    一 配置主DNS服务器 伯克利因特网名称域 Berkeley Internet Name Domain BIND 服务是全球范围内使用非常广泛 安全可靠且高效的域名解析服务程序 DNS域名解析服务作为互联网基础设施服务 其责任非常重大 因此