DNS主从同步及解析
DNS 域名解析原理
-
域名系统的层次结构 :DNS 采用分层树状结构,顶级域名(如.com、.org、.net 等)位于顶层,下面是二级域名、三级域名等。例如,在域名 “www.example.com” 中,“com” 是顶级域名,“example” 是二级域名,“www” 是主机名。
-
域名解析的过程 :当用户在浏览器中输入一个域名时,首先会查询本地 DNS 缓存,若找到则直接返回 IP 地址。若未找到,系统会向本地 DNS 服务器发送查询请求。本地 DNS 服务器先查询自己的缓存,若命中则返回结果;否则,会向根 DNS 服务器查询顶级域名服务器的地址,再向顶级域名服务器查询权威域名服务器的地址,最后向权威域名服务器查询具体的 IP 地址,并将结果逐级返回给用户。
DNS 主从同步实现过程
-
准备两台 DNS 服务器 :通常需要两台服务器,一台作为主 DNS 服务器,另一台作为从 DNS 服务器。
-
配置主 DNS 服务器 :在主 DNS 服务器上,编辑 named.conf 文件,添加区域定义,指定区域文件和允许进行区域传输的从 DNS 服务器 IP 地址。例如:
-
区域定义示例:
-
zone “example.com” IN { type master; file “/var/named/example.com.zone”; allow-transfer {192.168.1.2;}; };
-
其中,“example.com” 是要解析的域名,“master” 表示这是主 DNS 服务器,“/var/named/example.com.zone” 是区域文件的路径,“allow-transfer” 指定允许进行区域传输的从 DNS 服务器 IP 地址为 192.168.1.2。
-
-
-
配置从 DNS 服务器 :在从 DNS 服务器上,编辑 named.conf 文件,添加区域定义,指定区域类型为 “slave”,并指定主 DNS 服务器的 IP 地址和区域文件的存储位置。例如:
-
区域定义示例:
-
zone “example.com” IN { type slave; masters {192.168.1.1;}; file “/var/named/example.com.zone”; };
-
其中,“masters” 指定主 DNS 服务器的 IP 地址为 192.168.1.1。
-
-
-
启动 DNS 服务 :在两台服务器上分别启动 named 服务,并设置为开机自启。
-
测试主从同步 :在主 DNS 服务器上修改区域文件,如添加或修改某个域名记录,然后保存文件并通知 named 服务重新加载配置。在从 DNS 服务器上,使用 “rndc status” 命令查看同步状态,也可以使用 “dig” 命令查询域名记录,验证是否已经同步成功。
这些实验需要在 Linux 环境下进行实际操作和配置,你可以根据具体的 Linux 发行版和网络环境进行相应的调整和设置。
在DNS域名系统中,每个域分别由不同的组织进行管理。每个组织都可以将自己负责的域再分成一定数目的子域,并将这些子域委托给其他组织去管理。
本文IP地址为随机出现仅为示例所用,若要实验请以自身IP为准。
那么今天我们来做两个实验
实验3:主从同步-完全区域传送 当一个新的DNS服务器添加到区域中并配置为从DNS服务器时,它则会执行 完全区域传送
按i编辑将内容更改以达到完全区域传送
$TTL 1D
-
$TTL :定义了该区域文件中所有记录的默认生存时间(TTL,Time to Live)。TTL 用于指定 DNS 记录在 DNS 缓存中的有效期,单位是秒。这里设置为 1D,即 1 天。当一个 DNS 记录被查询后,它会在缓存中保留 1 天的时间,之后缓存会过期并需要重新查询 DNS 服务器获取最新的记录。
@ IN SOA xixi.admin. (
-
@ :代表当前区域的根(即该区域的起始点)。
-
IN :表示互联网类(Internet class),这是 DNS 记录的类型之一,用于指定记录适用于互联网。
-
SOA :开始授权启动(Start of Authority)记录,是一个区域的权威信息,包含了关于该区域的一些重要参数,如主 DNS 服务器、管理员邮箱、序列号、刷新时间、重试时间、过期时间和最小生存时间等。
-
xixi.admin. :这里应该是管理员邮箱的前缀部分。在 DNS 配置中,通常会省略 “@” 符号,只保留邮箱的前缀部分,后面加上一个点来表示域名的结尾。例如,如果管理员邮箱是 xixi@admin.com,这里可能会写成 xixi.admin.(不过这个例子可能不太准确,因为实际应用中可能需要正确配置域名格式,但这里主要是为了说明这个字段的含义)。
0 ; serial
-
0 :序列号,用于标识区域文件的版本。当区域文件发生更改时,序列号应该递增,以便通知从 DNS 服务器该区域文件已更新,从而触发区域传输。序列号的格式通常是年月日序号的形式,例如 2024092501 表示 2024 年 9 月 25 日的第一次更新。这里的 0 是一个简单的示例,但在实际应用中应该使用更合理的编号方式。
1D ; refresh
-
1D :刷新时间,即从 DNS 服务器检查主 DNS 服务器以获取区域更新的时间间隔。这里设置为 1 天,表示从 DNS 服务器每隔 1 天会向主 DNS 服务器发送一次查询,以检查区域文件是否有更新。
1H ; retry
-
1H :重试时间,如果从 DNS 服务器在刷新时间内未能成功获取区域更新,会等待这个时间后再次尝试获取更新。这里设置为 1 小时,表示如果第一次尝试失败,会在 1 小时后重新尝试获取区域更新。
1W ; expire
-
1W :过期时间,表示如果从 DNS 服务器在过期时间内未能成功获取区域更新,它将停止响应关于该区域的查询请求。这里设置为 1 周(1W),表示如果从 DNS 服务器在 1 周内无法获取区域更新,它将不再提供该区域的 DNS 解析服务。
3H ) ; minimum
-
3H :最小生存时间,用于指定该区域的 DNS 记录在缓存中的最小生存时间。当一个 DNS 记录被查询后,它在缓存中的生存时间不会低于这个值。这里设置为 3 小时,表示即使区域文件中某个记录的 TTL 值低于 3 小时,也会以 3 小时为准。这个字段以 “)” 结束,表示 SOA 记录的结束。
dns NS dns
-
dns :这是该区域的一个域名记录,表示该区域的权威 DNS 服务器的名称。
-
NS :名称服务器(Name Server)记录,用于指定该区域的权威 DNS 服务器。
-
dns :这里表示该区域的权威 DNS 服务器的名称为 “dns”,通常需要与一个 A 记录关联,以指定其 IP 地址。
www A 192.168.5.128
-
www :这是该区域的一个域名记录,表示一个主机名。
-
A :地址(Address)记录,用于将域名解析到一个 IPv4 地址。
-
192.168.5.128 :这是 “www” 主机对应的 IPv4 地址,表示当用户查询 “www. 该区域域名” 时,DNS 服务器会返回这个 IP 地址。
以下是对这段配置文件的整体总结:
-
这段配置文件定义了一个 DNS 正向解析区域,其中包含了该区域的 SOA 记录、NS 记录和 A 记录。
-
SOA 记录提供了区域的基本信息和参数,如序列号、刷新时间、重试时间、过期时间和最小生存时间等。
-
NS 记录指定了该区域的权威 DNS 服务器的名称。
-
A 记录将一个主机名(如 “www”)解析到一个具体的 IP 地址(如 “192.168.5.128”)。
-
这些记录共同作用,使得 DNS 服务器能够正确地将域名解析到对应的 IP 地址,从而实现域名解析的功能。
zone "12138.com." IN {type master;file "named.12138.com"; }; [root@server ~]# vim /var/named/named.12138.com $TTL 1D @ IN SOA @ admin.12138.com. ( 1 1M 1H 1W 1H )IN NS ns.12138.com. IN NS slave.12138.com. ns IN A 192.168.78.132 slave IN A 192.168.78.132 mail IN A 192.168.78.123 www IN A 192.168.78.123 ftp IN CNAME www w IN CNAME www 编辑好之后退出即可。 接下来配从机:134[root@slave ~]# systemctl start named [root@slave ~]# vim /etc/named.conf allow-query { any; };#这个可以没有listen-on port 53 { 192.168.78.134; }; zone "12138.com" IN {type slave;masters { 192.168.78.132; };file "slaves/named.12138.com"; }; [root@slave ~]# systemctl restart named [root@slave ~]# ll /var/named/slaves/ 总用量 4 -rw-r--r--. 1 named named 493 8月 29 07:33 named.12138.com #测试:133 [root@client ~]# host www.12138.com 192.168.78.134 Using domain server: Name: 192.168.78.134 Address: 192.168.78.134#53 Aliases: www.12138.com has address 192.168.78.123
这样,测试完成就可以了
到下一个实验
实验4:主从同步-增量区域传输 在主DNS服务器上获取完整的资源记录副本;同时,为了保证数据同步,主域名服务器有更新时也会及时通知辅助域
名服务器从而执行 增量区域传送
无法在辅助服务器上更改区域的DNS记录,但在某些情况下,辅助服务器可以将更改请求传递到主服务器。
#主:132 [root@server ~]# vim /var/named/named.12138.com $TTL 1D @ IN SOA @ admin.12138.com. ( 3 1M 1H 1W 1H )IN NS ns.12138.com. IN NS slave.12138.com.IN MX 10 mail.12138.com. ns IN A 192.168.78.132 slave IN A 192.168.78.132 mail IN A 192.168.78.123 www IN A 192.168.78.123 ftp IN CNAME www w IN CNAME www [root@slave ~]# systemctl restart named #从134 [root@slave ~]# rndc refresh 12138.com zone refresh queued #测试 [root@client ~]# host w.zhang.com 192.168.78.134 Using domain server: Name: 192.168.78.134 Address: 192.168.78.134#53 Aliases: w.12138.com is an alias for www.12138.com. www.12138.com has address 192.168.78.123
这样就可以完成实验咯
后面可以用[root@localhost ~]# rndc refresh zhang.com
[root@localhost ~]# rndc refresh 5.168.192.in-addr.arpa这两条命令来测试是否成功
相关文章:

DNS主从同步及解析
DNS 域名解析原理 域名系统的层次结构 :DNS 采用分层树状结构,顶级域名(如.com、.org、.net 等)位于顶层,下面是二级域名、三级域名等。例如,在域名 “www.example.com” 中,“com” 是顶级域名…...

在Windows11上用wsl配置docker register 镜像地址
一、下载软件 1、下载wsl:安装 WSL | Microsoft Learn,先按照旧版 WSL 的手动安装步骤 | Microsoft Learn的步骤走 注:如果wsl2怎么都安装不下来,可能是Hyper-V没有打开,打开控制面板->程序和功能->启用或关闭Windows功能,勾选Hyper-V 如果Windows功能里面没有Hyp…...
Spring—循环依赖与三级缓存
Spring中存在三级缓存: 第一层缓存(singletonObjects):单例对象缓存池,已经实例化并且属性赋值,这里的对象是成熟对象;第二层缓存(earlySingletonObjects):单…...

【Linux网络】构建UDP服务器与字典翻译系统
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...

【PGCCC】Postgres 故障排除:修复重复的主键行
如何从表中删除不需要的重复行。这些重复行之所以“不需要”,是因为同一个值在指定为主键的列中出现多次。自从 glibc 好心地改变了排序方式后,我们发现这个问题有所增加。当用户升级操作系统并修改底层 glibc 库时,这可能会导致无效索引。 唯…...

DeepSeek+Cursor+Devbox+Sealos项目实战
黑马程序员DeepSeekCursorDevboxSealos带你零代码搞定实战项目开发部署视频教程,基于AI完成项目的设计、开发、测试、联调、部署全流程 原视频地址视频选的项目非常基础,基本就是过了个web开发流程,但我在实际跟着操作时,ai依然会…...

996引擎-拓展变量:物品变量
996引擎-拓展变量:物品变量 测试代码参考资料对于Lua来说,只有能保存数据库的变量才有意义。 至于临时变量,不像TXT那么束手束脚,通常使用Lua变量就能完成。 SELECT * FROM dbo.TBL_ITEM_EX_ABIL WHERE FLD_MAKEINDEX = 28620 <...
Java 设计模式心法之第3篇 - 总纲:三大流派与导航地图
前两章,我们修炼了 SOLID 这套强大的“内功心法”,为构建高质量软件打下了坚实根基。现在,是时候鸟瞰整个设计模式的“武林”了!本文将为您展开一幅由 GoF 四人帮精心绘制的 23 种经典设计模式的“全景导航地图”。我们将探索这些…...
【OpenCV图像处理实战】从基础操作到工业级应用
目录 前言技术背景与价值当前技术痛点解决方案概述目标读者说明 一、技术原理剖析核心概念图解核心作用讲解关键技术模块说明技术选型对比 二、实战演示环境配置要求核心代码实现(6个案例)案例1:图像基本操作案例2:边缘检测案例3&…...
如何识别金融欺诈行为并进行分析预警
金融行业以其高效便捷的服务深刻改变了人们的生活方式。然而,伴随技术进步而来的,是金融欺诈行为的日益猖獗。从信用卡盗刷到复杂的庞氏骗局,再到网络钓鱼和洗钱活动,金融欺诈的形式层出不穷,其规模和影响也在不断扩大。根据全球反欺诈组织(ACFE)的最新报告,仅2022年,…...

【踩坑记录】stm32 jlink程序烧录不进去
最近通过Jlink给STM32烧写程序时一直报错,但是换一个其他工程就可以烧录,对比了一下jink配置,发现是速率选太高了“SW Device”,将烧录速率调整到10MHz以下就可以了...
SpringSecurity源码解读AbstractAuthenticationProcessingFilter
一、介绍 AbstractAuthenticationProcessingFilter 是 Spring Security 框架里的一个抽象过滤器,它在处理基于表单的认证等认证流程时起着关键作用。它继承自 GenericFilterBean,并实现了 javax.servlet.Filter 接口。此过滤器的主要功能是拦截客户端发送的认证请求,对请求…...

RISC-V低功耗MCU动态时钟门控技术详解
我来分享一下RISC-V核低功耗MCU的动态时钟门控技术实现: 这款MCU通过硬件级时钟门控电路实现了模块级的功耗管理。当外设(如UART、SPI)处于闲置状态时,系统会自动切断其时钟信号,减少无效翻转功耗。同时支持多电压域协…...
网络设备配置实战:交换机与路由器的入门到精通
引言:网络设备——构建数字世界的基石 想象一下走进一个现代化的数据中心,成千上万的线缆如同神经网络般连接着各种设备,而交换机和路由器就是这些网络连接的智能枢纽。作为网络工程师,熟练掌握这些核心网络设备的配置与管理,就如同建筑师精通各种建筑工具和材料一样重要…...
移动通信行业术语
英文缩写英文全称中文名称解释/上下文举例IMSIP Multimedia SubsystemIP多媒体子系统SIPSession Initiation Protocol会话初始化协议常见小写sip同。ePDG/EPDGEvolved Packet Data Gateway演进分组数据网关 EPDG是LTE(4G)和后续蜂窝网络架构(…...

工厂模式:解耦对象创建与使用的设计模式
工厂模式:解耦对象创建与使用的设计模式 一、模式核心:封装对象创建逻辑,客户端无需关心具体实现 在软件开发中,当创建对象的逻辑复杂或频繁变化时,直接在客户端代码中 new 对象会导致耦合度高、难以维护。例如&…...

Python爬虫学习:高校数据爬取与可视化
本项目实现了从中国教育在线(eol.cn)的公开 API 接口爬取高校相关数据,并对数据进行清洗、分析与可视化展示。主要包括以下功能: 爬取高校基础信息及访问量数据数据清洗与格式转换多维度数据分析与可视化,如高校数量分…...
linux 手动触发崩溃
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、如何手动触发linux崩溃?二、内核相关panic和oops的cmdline(启动参数)总结 前言 提示:这里可以添加本文要记…...

触觉智能RK3506核心板,工业应用之RK3506 RT-Linux实时性测试
在工业自动化、机械臂控制等高实时性场景中,系统响应速度与稳定性直接决定设备效能。触觉智能RK3506核心板基于瑞芯微三核Cortex-A7架构深度优化,搭载Linux 6.1内核并支持Linux-RT实时系统,提供实时性能的高性价比解决方案。 RK3506与RT-Linu…...
AI日报 - 2025年04月21日
🌟 今日概览(60秒速览) ▎🤖 AGI突破 | O3模型性能引热议,Rich Sutton提出「体验时代」新范式,自递归AI构建仍存挑战。 新模型如O3展示高IQ,但AGI定义与实现路径讨论加剧,强调自主生成数据与体验学习。 ▎&…...

基于SpringBoot的高校体育馆场地预约管理系统-项目分享
基于SpringBoot的高校体育馆场地预约管理系统-项目分享 项目介绍项目摘要目录总体功能图用户实体图赛事实体图项目预览用户个人中心医生信息管理用户管理场地信息管理登录 最后 项目介绍 使用者:管理员 开发技术:MySQLJavaSpringBootVue 项目摘要 随着…...

华为云获取IAM用户Token的方式及适用分析
🧠 一、为什么要获取 IAM 用户 Token? 我们用一个生活中的比喻来解释👇: 🏢 比喻场景: 你要去一个 高级写字楼(华为云物联网平台) 办事(调用接口管理设备)&…...

如何利用快照与备份快速恢复服务器的数据
在服务器上利用**快照(Snapshot)**和**备份(Backup)**快速恢复数据,可显著减少停机时间并确保业务连续性。以下是具体操作步骤和最佳实践: --- ### **1. 快照(Snapshot)恢复** **适…...

Git 详细使用说明文档(适合小白)
Git 详细使用说明文档(适合小白) 1. 什么是 Git? Git 是一个版本控制系统,帮助你管理和跟踪代码的变更。无论是个人项目还是团队协作,Git 都能帮助你记录代码的历史版本,方便回溯和协作。 2. 安装 Git …...
Spring JDBC 的开发步骤(非注解方式)
以下是使用 非注解方式(纯 XML 配置)实现 Spring JDBC 的完整示例: 1. 项目依赖(不变) <!-- pom.xml --> <dependencies><!-- Spring JDBC --><dependency><groupId>org.springframewo…...

Graph Database Self-Managed Neo4j 知识图谱存储实践1:安装和基础知识学习
Neo4j 是一个原生图数据库,这意味着它在存储层实现了真正的图模型。它不是在其他技术之上使用“图抽象”,而是以您在白板上绘制想法的相同方式在Neo4j中存储数据。 自2007年以来,Neo4j已经发展成为一个丰富的工具、应用程序和库的生态系统。…...

一天学完Servlet!!!(万字总结)
文章目录 前言Servlet打印Hello ServletServlet生命周期 HttpServletRequest对象常用api方法请求乱码问题请求转发request域对象 HttpServletResponse对象响应数据响应乱码问题请求重定向请求转发与重定向区别 Cookie对象Cookie的创建与获取Cookie设置到期时间Cookie注意点Cook…...

E3650工具链生态再增强,IAR全面支持芯驰科技新一代旗舰智控MCU
近日,全球嵌入式软件开发解决方案领导者IAR与全场景智能车芯引领者芯驰科技正式宣布,IAR Embedded Workbench for Arm已全面支持芯驰E3650,为这一旗舰智控MCU提供开发和调试一站式服务,进一步丰富芯驰E3系列智控芯片工具链生态&am…...
Spring Boot Controller 单元测试撰写
文章目录 引言标准用法必需依赖项核心注解说明代码示例 当涉及静态方法时的测试策略必需依赖项核心注解说明代码示例 引言 之前在编写 Controller 层的单元测试时,我一直使用 SpringBootTest 注解,但它会加载整个 Spring 应用上下文,资源开销…...
TypeScripts前端基础篇(4)--- 如何定义泛型?
在 TypeScript 中,泛型(Generics)是语言内置的功能,不需要额外下载或安装任何东西;泛型(Generics)允许你创建可重用的组件,这些组件可以支持多种类型。现在给出的两个例子展示了不同的用法&…...