DNS:使用 bind9 配置主从权威DNS服务器

写在前面


  • 分享一些 使用 bind9 配置主从权威名称服务器的笔记
  • 理解不足小伙伴帮忙指正

对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》


DNS 架构

向供应商注册新的域名时,必须提供该公共权威名称服务器的名称和IP地址。注册服务商将该信息放在父域的区域文件中(如NS,A和AAAA记录),以便DNS解析器可以找到您的名称服务器。为了帮助确保可靠性,应该至少有两个公共DNS服务器,并且它们应位于不同的站点,以避免由于网络故障而造成的中断。

外部主机如何通过缓存名称服务器权威名称服务器进行 DNS 解析,对记录执行DNS查找。假设还没有缓存的记录:

外部访问

在这里插入图片描述

客户的缓存名称服务器首先查询一个根名称服务器。它被定向到负责 com域的名称服务器池。其中一个服务器响应 example.com域的NS记录,因此 缓存的名称服务器查询一个面向公共的次要名称服务器

主名称服务器实际上不是公共的,但是辅助名称服务器可以从主名称服务器执行区域传输,以便它们拥有关于 example.com 区域的最新数据。下图说明了对于example.com 域内的内部仅缓存名称服务器,该过程是相同的:

内部访问

在这里插入图片描述

更好的方法是提供内部名称服务器可以查询的内部授权辅助服务器。当本地域存在问题时,这消除了外部查询,这更安全。

内部访问

在这里插入图片描述

为此,需要配置内部缓存名称服务器来转发对记录的请求。Com 到内部辅助服务器。(例如,使用Unbound时,您需要配置适当的forward-zone块。)

# forward-zone:
#       name: "example.com"
#       forward-addr: 192.0.2.68
#       forward-addr: 192.0.2.73@5355  # forward to port 5355.
#       forward-first: no
#       forward-tls-upstream: no
# forward-zone:
#       name: "example.org"
#       forward-host: fwd.example.com

主从权威 DNS 部署

配置主 DNS 服务器

安装 bind9

[root@serverb ~]# yum install  bind -y

一些准备工作

[root@serverb ~]# vim /etc/named.conf
[root@serverb ~]# chmod 640 /etc/named.conf
[root@serverb ~]# chgrp named /etc/named.conf
[root@serverb ~]# firewall-cmd --add-service=dns --permanent
success
[root@serverb ~]# firewall-cmd --reload
success
[root@serverb ~]# systemctl enable  named.service  --now
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@serverb ~]#

serverb配置主 DNS,并且添加几条记录

  • 配置正向解析servera.blog.liruilong.com.,serverc.blog.liruilong.com. 地址分别为172.25.250.10, 172.25.250.12
  • 配置反向解析servera,serverc

编辑配置文件 /etc/named.conf

options {listen-on port 53 { any; };listen-on-v6 port 53 { any; };directory       "/var/named";dump-file       "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";secroots-file   "/var/named/data/named.secroots";recursing-file  "/var/named/data/named.recursing";allow-query     { any; };.....

添加对应的 zone

zone "blog.liruilong.com" IN {type master;file "blog.liruilong.com.zone";forwarders {};
};

添加对应的 zone 数据

[root@serverb ~]# cat  /var/named/blog.liruilong.com.zone
$TTL 300
@ IN SOA serverb.blog.liruilong.com. dnslab.example.com. (2023072900 ; serial1H ; refresh5M ; retry1W ; expire1M ) ; minimum600 IN      NS      serverb.blog.liruilong.com.serverb IN A 172.25.250.11
serverc IN A 172.25.250.12
servera IN A 172.25.250.10[root@serverb ~]#

检测 zone 文件

[root@serverb ~]# vim /var/named/blog.liruilong.com.zone
[root@serverb ~]# named-checkzone  blog.liruilong.com.zone /var/named/blog.liruilong.com.zone
zone blog.liruilong.com.zone/IN: loaded serial 2023072900
OK

确认无误后,重启服务,测试

[root@serverb ~]# systemctl  restart  named
[root@serverb ~]# dig serverc.blog.liruilong.com. @serverb; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> serverc.blog.liruilong.com. @serverb
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9608
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 196c643e805924a3ea772e3264c649cef6a873b5c3803907 (good)
;; QUESTION SECTION:
;serverc.blog.liruilong.com.    IN      A;; ANSWER SECTION:
serverc.blog.liruilong.com. 300 IN      A       172.25.250.12;; AUTHORITY SECTION:
blog.liruilong.com.     600     IN      NS      serverb.blog.liruilong.com.;; ADDITIONAL SECTION:
serverb.blog.liruilong.com. 300 IN      A       172.25.250.11;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Sun Jul 30 19:30:22 CST 2023
;; MSG SIZE  rcvd: 137
[root@serverb ~]# dig servera.blog.liruilong.com. @172.25.250.11; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el8 <<>> servera.blog.liruilong.com. @172.25.250.11
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37549
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; WARNING: recursion requested but not available;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 7e67c9a9f9d30b3df695a33864c64a1bb0d653a623775fd6 (good)
;; QUESTION SECTION:
;servera.blog.liruilong.com.    IN      A;; ANSWER SECTION:
servera.blog.liruilong.com. 300 IN      A       172.25.250.10;; AUTHORITY SECTION:
blog.liruilong.com.     600     IN      NS      serverb.blog.liruilong.com.;; ADDITIONAL SECTION:
serverb.blog.liruilong.com. 300 IN      A       172.25.250.11;; Query time: 0 msec
;; SERVER: 172.25.250.11#53(172.25.250.11)
;; WHEN: Sun Jul 30 19:31:39 CST 2023
;; MSG SIZE  rcvd: 137[root@serverb ~]#

反向解析配置

zone "25.172.in-addr.arpa" IN {type master;file "25.172.loopback"allow-update { none; };};

这里修改完 配置文件提示上面的报错,缺少;

[root@serverb ~]# named-checkconf  /etc/named.conf
/etc/named.conf:67: missing ';' before 'allow-update'
[root@serverb ~]# vim /etc/named.conf
[root@serverb ~]# named-checkconf  /etc/named.conf
[root@serverb ~]#

重新编辑后测试OK

zone "25.172.in-addr.arpa" IN {type master;file "25.172.loopback";allow-update { none; };};

编写对应的 zone 数据文件

[root@serverb ~]# cat /var/named/25.172.loopback
$TTL 1D
@       IN SOA  serverb.blog.liruilong.com rname.invalid. (2023073000       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      serverb.blog.liruilong.com.
10.250       PTR     servera.blog.liruilong.com.
11.250       PTR     serverb.blog.liruilong.com.
12.250       PTR     serverc.blog.liruilong.com.
[root@serverb ~]#

重启服务测试

[root@serverb ~]# vim /var/named/25.172.loopback
[root@serverb ~]# systemctl  restart  named
[root@serverb ~]# host serverc.blog.liruilong.com 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:serverc.blog.liruilong.com has address 172.25.250.12
[root@serverb ~]# host servera.blog.liruilong.com 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:servera.blog.liruilong.com has address 172.25.250.10
[root@serverb ~]# host 172.25.250.10 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:10.250.25.172.in-addr.arpa domain name pointer servera.blog.liruilong.com.
[root@serverb ~]#

配置 DNS从服务器

[root@serverc ~]# yum install  bind -y

复制 配置文件

[root@serverc ~]# scp serverb:/etc/named.conf /etc/named.conf

需要修改的部分:

  • 将每个主要 (master) 区域条⽬转换为次要 (slave) 区域条⽬。
  • 将 type 指令的值更改为 slave。
  • 添加 masters 指令,以指向 serverb(主DNS) 后端接⼝ 192.168.0.11
  • 为⽂件位置加上前缀,以便在 slaves/ ⼦⽬录中创建区域⽂件。⽣成的⽂件应当包含以下内容:
zone "blog.liruilong.com" IN {type slave;file "slaves/blog.liruilong.com.zone";masters { 192.168.0.11; };
};zone "25.172.in-addr.arpa" IN {type slave;file "slaves/25.172.loopback";masters { 192.168.0.11; };
};

修改配置文件,配置防火墙

[root@serverc ~]# vim /etc/named.conf
[root@serverc ~]# chmod 640 /etc/named.conf
[root@serverc ~]# chgrp named /etc/named.conf
[root@serverc ~]# firewall-cmd --add-service=dns --permanent
success
[root@serverc ~]# firewall-cmd --reload
success
[root@serverc ~]# systemctl enable  named.service  --now
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@serverc ~]#

查看 zone 数据是否同步

[root@serverc named]# ls
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves
[root@serverc named]# cd slaves/
[root@serverc slaves]# ls
25.172.loopback  blog.liruilong.com.zone
[root@serverc slaves]#

这个同步过来的zone数据是乱码的,直接看不了

[root@serverc ~]# host servera.blog.liruilong.com 172.25.250.11
Using domain server:
Name: 172.25.250.11
Address: 172.25.250.11#53
Aliases:servera.blog.liruilong.com has address 172.25.250.10
[root@serverc ~]# host servera.blog.liruilong.com 172.25.250.12
Using domain server:
Name: 172.25.250.12
Address: 172.25.250.12#53
Aliases:servera.blog.liruilong.com has address 172.25.250.10
[root@serverc ~]#

关于 DNS 主从服务器搭建就和小伙伴们分享到这里,简单介绍,更多配置小伙伴们可以查看帮助文档

博文部分内容参考

© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知


https://www.isc.org/bind/

<RH358 授课课堂笔记>


© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ML类CFAR检测器在不同环境中检测性能的分析

摘要&#xff1a;该文是楼主翻阅书籍以及一些论文总结出来的关于ML(均值)类CFAR检测器在不同环境中的性能对比&#xff0c;以及优缺点的总结&#xff0c;可以帮助大家面对不同情形如何选择CFAR问题。由于楼主见识短浅&#xff0c;文中难免出现不足之处&#xff0c;望各位指出。…

怎么做Tik Tok海外娱乐公会呢?新加坡市场怎么样?

一、为什么选择TikTok直播 1. 海外市场潜力巨大 • 自2016年始&#xff0c;多家直播平台陆续拓展至东南亚、中东、俄罗斯、日韩、欧美、拉美等地区。 • 海外市场作为直播发展新蓝海&#xff0c;2021年直播行业整申请cmxyci体规模达百亿美元&#xff0c;并维持高速增长。 &a…

geeemap学习总结(1)——Anaconda-VSCode-geemap环境安装与配置

配置conda geemap 环境 通过Anaconda配置geemap环境较为方便&#xff0c;首先需在系统中完成 Anaconda安装。创建名为geemap的环境conda create -n geemap切换到新建的环境conda activate geemap安装geemap依赖包conda install -c conda-forge geemap 安装mambaconda install …

网络编程 tcp udp http编程流程 网络基础知识

讲解 网络基础知识网络编程tcp编程流程图示理解bind和accept函数理解监视套接字和链接套接字理解linux和window下的编程实现tcp特点 udp编程流程图示理解udp特点 http编程流程图示理解编程实现-网站服务器 网络基础知识 OSI分层&#xff1a;应用层 表示层 会话层 传输层 网络层…

上传图片视频

分布式文件系统MinIo MinIO提供多个语言版本SDK的支持&#xff0c;下边找到java版本的文档&#xff1a; 地址&#xff1a;https://docs.min.io/docs/java-client-quickstart-guide.html MinIO测试&#xff08;上传、删除、下载&#xff09; public class MinioTest {MinioC…

Centos7.9编写分布式集群大数据系统_自启动脚本---Linux工作笔记058

由于为了方便,系统在启动的时候,设置成系统所有的,集群软件都自动启动,这样,可以减少,运维成本,要不然,这么多,工具,有的还不知道放到什么位置了,一个个去启动,非常麻烦. 首先编辑: 编辑这个文件: 然后编辑这个文件,写上自己,自启动脚本的位置,然后保存 :wq 然后再给这个文件…

【RabbitMQ】golang客户端教程5——使用topic交换器

topic交换器&#xff08;主题交换器&#xff09; 发送到topic交换器的消息不能具有随意的routing_key——它必须是单词列表&#xff0c;以点分隔。这些词可以是任何东西&#xff0c;但通常它们指定与消息相关的某些功能。一些有效的routing_key示例&#xff1a;“stock.usd.ny…

8月11日上课内容 nginx的多实例和动静分离

多实例部署 在一台服务器上有多个tomcat的服务。 配置多实例之前&#xff0c;看单个实例是否访问正常。 1.安装好 jdk 2.安装 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 cp -a /usr…

利用三维内容编辑器制作VR交互课件,简单好用易上手

随着虚拟现实技术的不断发展&#xff0c;越来越多的教育机构开始尝试将其应用于教育教学中。然而&#xff0c;要实现这一目标并不容易&#xff0c;需要专业的技术支持和开发团队。 为了解决这一问题&#xff0c;广州华锐互动研发了三维内容编辑器&#xff0c;它是一种基于虚拟现…

“掌握类与对象,点亮编程之路“(下)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:《C语言入门知识》&#x1f649; &#x1f649; 内容推荐:“掌握类与对象&#xff0c;点亮编程之路“(上)&#x1f649; &#x1f439;今日诗词:春风得意马蹄疾&#xff0c;一日看尽长安花&#x1f439; 目录 &…

fork创建多个子进程

fork创建多个子进程 示例代码 fork1.c #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>int main(int argc,char **argv) {int i, j;pid_t pid;for (i 0; i < 3; i){pid fork();if (pid < 0){perror(&q…

Python 11道字典练习题

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 有字典 dic {“k1”: “v1”, “k2”: “v2”, “k3”: “v3”}&#xff0c;实现以下功能&#xff1a; 1、遍历字典 dic 中所有的key 参考答案&#xff1a; dic {k1: v1,k2:v2,k3:v3}for k in dic.keys():print(k)2、遍历…

Apollo让自动驾驶如此简单

前言&#xff1a; 最近被新能源的电价闹的不行&#xff0c;买了电车的直呼上当了、不香了。但电车吸引人不只是公里油耗低&#xff0c;还有良好的驾车使用感。比如辅助驾驶、甚至是自动驾驶。今天来介绍一个头部自动驾驶平台Apollo&#xff0c;Apollo是一个开源的、自动驾驶的软…

在SpringMVC环境下json字符串与对象转化 配置和对象方法

目录 1..json的使用 字符串与对象转化 2.通过spring配置的形式直接接受json格式字符串转化 1..json的使用 字符串与对象转化 1.导入一个json的jar坐标 <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</…

el-dialog嵌套,修改内层el-dialog样式(自定义样式)

el-dialog嵌套使用时,内层的el-dialog要添加append-to-body属性 给内层的el-dialog添加custom-class属性,添加自定义类名 <el-dialog:visible.sync"dialogVisible"append-to-bodycustom-class"tree-cesium-container"><span>这是一段信息<…

详细教程:如何搭建废品回收小程序

废品回收是一项环保举措&#xff0c;通过回收和再利用废弃物品&#xff0c;可以减少资源浪费和环境污染。近年来&#xff0c;随着智能手机的普及&#xff0c;小程序成为了推广和运营的重要工具。本文将详细介绍如何搭建一个废品回收小程序。 1. 进入乔拓云网后台 首先&#xf…

深入浅出cgroup

一、什么是cgroup Cgroup是linux内核用来控制系统资源的机制&#xff0c;它将操作系统中的所有进程以组为单位划分&#xff0c;给这一组进程定义对某一类资源特定的访问权限。Cgroup用子系统&#xff08;subsystem&#xff09;来描述所能控制的系统资源&#xff0c;子系统具有…

头条移动端项目Day02—— app端文章查看、静态化freemarker、分布式文件系统minIO

❤ 作者主页&#xff1a;欢迎来到我的技术博客&#x1f60e; ❀ 个人介绍&#xff1a;大家好&#xff0c;本人热衷于Java后端开发&#xff0c;欢迎来交流学习哦&#xff01;(&#xffe3;▽&#xffe3;)~* &#x1f34a; 如果文章对您有帮助&#xff0c;记得关注、点赞、收藏、…

OceanBase X Flink 基于原生分布式数据库构建实时计算解决方案

摘要&#xff1a;本文整理自 OceanBase 架构师周跃跃&#xff0c;在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为四个部分&#xff1a; 分布式数据库 OceanBase 关键技术解读 生态对接以及典型应用场景 OceanBase X Flink 在游戏行业实践 未来展望 点击…

机器学习深度学习——seq2seq实现机器翻译(数据集处理)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——从编码器-解码器架构到seq2seq&#xff08;机器翻译&#xff09; &#x1f4da;订阅专栏&#xff1a;机…