DNS主从服务器、转发(缓存)服务器

一、主从服务器

1、基本含义

   DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来,因此辅助服务器的数据都是只读的,当然,如果有必要,我们可以很轻松地把辅助服务器升级为主服务器。辅助服务器从主服务器复制区域数据的过程叫“区域传送”。区域传送使用TCP的53号端口。

关于主从服务器,需要了解的是:

主服务器的区域解析库文件中必须有一条NS记录指向从服务器,辅助DNS是针对区域来说的;如果有多台DNS服务器,必须为每个DNS服务器建立NS记录,否则主DNS将不向其发送通知;

从服务器只需要定义区域,而无须提供解析库文件;解析库文件默认放置于/var/named/slaves/目录中。

主服务器得允许从服务器作区域传送。主从服务器时间应该同步,可通过ntp进行。bind程序的版本应该保持一致;否则,应该从高,主低。

2、区域传送内容

区域传送类型:完全区域传送(AXFR)、增量区域传送(IXFR) 

(1)在新的配置过程中,目标服务器会向配置为区域源的主DNS服务器发送初始“所有区域”传送(AXFR)的请求;

(2)主(源)服务器作出响应,并将此区域完全传送到辅助(目标)服务器;

     该区域发送给请求传送的目标服务器,通过启动SOA资源记录的属性中的“序列号”字段建立的版本一起传送。SOA RR也包含一个以秒为单位的状态刷新间隔(默认设置是900秒或15分钟),指出目标服务器下一次应该在何时请求使用源服务器来续订该区域

(3)刷新间隔到期时,目标服务器使用SOA查询来请求从源服务器续订此区域;

(4)源服务器应答其SOA记录的查询。该响应包括该区域在源服务器中的当前状态的序列号。

(5)目标服务器检查响应中的SOA记录的序列号并确定怎样续订该区域;

          如果SOA响应中的序列号等于其当前的本地序列号,那么区域在两个服务器中都相同,并且不需要区域传送。然后,目标服务器根据来自源服务器的SOA响应中的该字段值重新设置其刷新间隔来续订该区域。

          如果SOA响应中的序列号比其当前本地序列号要高,则可以确定此区域已更新并需要区域传送。

(6)如果这个目标服务器推断此区域已经更改,则它会把IXFR查询发送至源服务器,其中包括此区域的SOA记录中序列号的当前本地值。

(7)源服务器通过区域的递增传送或完全传送做出响应。

         如果源服务器支持增量传送,则通过IXFR做出应答,否则通过AXFR做出应答。

二、转发(缓存)服务器

1、转发原理

(1)当本地DNS服务器(也是转发器)收到查询时,它会尝试使用本地数据解析和缓存数据解析该查询;

(2)如果不能使用本地数据解析查询,此时它作为客户端,会将查询转发给外网DNS服务器;

(3)本地DNS(转发器)收到客户端的请求后会等待一段很短的时间,等待来自外网DNS的应答;

(4)对于外网DNS来说,它接收到的查询请求是递归查询,此时,它自己需要向外层层迭代找到最终答案返回给转发器(此时转发器作为DNS客户端)

(5)转发器将外网DNS返回的查询结果送到客户端(非权威答案),完成解析过程。

2、常用转发模式

全局转发:

利用DNS转发,可以将用户的DNS请求,转发至指定的DNS服务,而非默认的根DNS服务器,并将指定服务器查询的返回结果进行缓存,提高效率。

注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行。对非本机所负责解析区域的请求,全转发给指定的服务器。

在全局配置块中实现:

Options {

forward first|only;

forwarders { ip;};//如果有多个IP,按照轮询的模式进行转发。

};

特定区域转发:

仅转发对特定的区域的请求,比全局转发优先级高。

zone "ZONE_NAME" IN {

type forward;

forward first|only;

forwarders { ip;};

};

转发模式:

first:先转发至指定DNS服务器,如果无法解析查询请求,则本服务器再去根服务器查询

only: 先转发至指定DNS服务器,如果无法解析查询请求,则本服务器将不再去根服务器查询。

三、dig请求测试判断 

观察flags的输出

没有出现aa,表示请求的查询是非本机负责的区域;

出现了ra,表示是通过转发解析到的域名。

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

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

相关文章

Ubuntu软件和vmware下载

https://cn.ubuntu.com/download/desktop VMware 中国 - 交付面向企业的数字化基础 | CN

漏洞复现-天融信TOPSEC static_convert 远程命令执行漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构6.2.1 增加池化、卷积和bn层6.2.2 增加卷积、bn、卷积、bn 🍨 本文为&#x1…

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…

Navicat 技术干货 | 如何查看关系型数据库(MySQL、PostgreSQL、SQL Server、 Oracle)查询的运行时间

在数据库优化中,理解和监控查询运行时间是至关重要的。无论你是数据库管理员、开发人员或是参与性能调优的人员,知道如何查看查询运行时间能为你的数据库操作提供有价值的参考。本文中,我们将探索几款热门的关系数据库(如 MySQL、…

❀记忆冒泡、选择和插入排序算法思想在bash里运用❀

目录 冒泡排序算法:) 选择排序算法:) 插入排序算法:) 冒泡排序算法:) 思想:依次比较相邻两个元素,重复的进行直到没有相邻元素需要交换,排序完成。 #!/bin/bash arr(12 324 543 213 65 64 1 3 45) #定义一个数组 n${#arr[*]} #获取数组…

DHTMLX Spreadsheet v5.1.1 Crack

DHTMLX Spreadsheet 5.1 具有新主题、简化的数字格式本地化、与框架的实时集成演示等 推出 DHTMLX Spreadsheet v5.1。新版本提供了一组有用的功能,这对开发人员和最终用户都有吸引力。 首先,新的电子表格版本提供了 4 个内置主题,可以根据您…

【完整代码】网上书店信息管理系统--基于Mysql数据库与java

网上书店信息管理系统 一、需求分析(一)设计系统的意义以及用途(二)实现的功能1.用户模块:1、全部图书浏览2、图书搜索3、购物车管理和订单查看4、修改密码 2.书店管理员模块1、图书类别管理2、图书管理3、全部订单查看…

【React】01-React 入门到放弃系列

01-React 入门 背景入门学生成绩录入的表单 小结 背景 由于捣鼓一些项目需要用到React,找了一些文档入门实践了一番。本篇文章以一个学生成绩录入的表单为例子,记录React 入门的一些基础操作。 入门 该操作的前提是本地安装了NodeJS环境。根据官网给的…

Docker入门教程(详解)

Docker容器化 一 入门 1. 引言 (1)单机部署 场景: 将多个应用部署一台服务器上。 问题 每个应用软件,都会消耗物理资源,共用计算机资源,彼此之间会形成竞争关系。 (2)多机部署 …

PHP反序列化漏洞利用及修复,示例代码讲解

您提到的PHP反序列化漏洞是一个重要的网络安全问题。在我的网络安全工程师的角色下,我可以提供关于此问题的深入分析。 PHP反序列化漏洞通常发生在当不可信的数据被反序列化时。序列化是将数据结构或对象状态转换为可存储或可传输的格式的过程,而反序列…

Springcloud 微服务实战笔记 Ribbon

使用 Configurationpublic class CustomConfiguration {BeanLoadBalanced // 开启负载均衡能力public RestTemplate restTemplate() {return new RestTemplate();}}可看到使用Ribbon,非常简单,只需将LoadBalanced注解加在RestTemplate的Bean上&#xff0…

AIGC时代-GPT-4和DALL·E 3的结合

在当今这个快速发展的数字时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从简单的自动化任务到复杂的决策制定,AI的应用范围日益扩大。而在这个广阔的领域中,有两个特别引人注目的名字:GPT-4和D…

C/C++汇编学习(二)——学习使用IDA pro

学习使用IDA Pro是一项很有价值的技能,特别是对于那些对逆向工程和软件安全分析感兴趣的人。以下是一些基本步骤和概念,帮助你熟悉IDA Pro的界面和操作。 1. 熟悉IDA Pro界面和基本操作 主界面布局 IDA Pro的主界面包含多个组件,每个组件都…

pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知

前言 定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。 生成allure报告 添加定时任务 执行完成后生成allure报告 查看报告详情 报告会显示详细的request 和 response 详细信息 也可以查看log日志 …

Vue3-35-路由-路由守卫的简单认识

什么是路由守卫 路由守卫,就是在 路由跳转 的过程中, 可以进行一些拦截,做一些逻辑判断, 控制该路由是否可以正常跳转的函数。常用的路由守卫有三个 : beforeEach() : 前置守卫,在路由 跳转前 就会被拦截&…

kube-promethues配置钉钉告警

kube-promethues配置钉钉告警 前置:k8s部署kube-promethues 一.配置钉钉机器人 打开钉钉的智能群助手,点击添加机器人 选择自定义机器人 勾选加签,复制后保存 复制webhook地址后点击保存 二.编写dingtalk的yaml部署文件 vi dingta…

74HC595驱动数码管程序

数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多,其中最常见的是74HC164驱动数码管,这种电路一般用三极管作位选信号,用…

pytest conftest通过fixture实现变量共享

conftest.py scope"module" 只对当前执行的python文件 作用 pytest.fixture(scope"module") def global_variable():my_dict {}yield my_dict test_case7.py import pytestlist1 []def test_case001(global_variable):data1 123global_variable.u…

人工智能如何重塑金融服务业

在体验优先的世界中识别金融服务业中的AI使用场景 人工智能(AI)作为主要行业的大型组织的重要业务驱动力,持续受到关注。众所周知,传统金融服务业在采用新技术方面相对滞后,一些组织使用的还是上世纪50年代和60年代发…