Linux DNS服务解析原理与搭建

一、什么是DNS

DNS 是域名服务 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,
并具有将域名转换为IP地址功能的服务器。
域名必须对应一个IP地址,而IP地址不一定有域名。
域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。
将域名映射为IP地址的过程就称为"域名解析"。
在Internet上域名与IP地址之间是一对一(或者多对一)的,
也可采用DNS轮循实现一对多,域名虽然便于人们记忆,
但机器之间只认IP地址,它们之间的转换工作称为域名解析,
域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
DNS 命名用于 Internet等 TCP/IP网络中,通过用户友好的名称查找计算机和服务。
当用户在应用程序中输入 DNS 名称时,
DNS 服务可以将此名称解析为与之相关的其他信息,如 IP 地址。
因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,
这样才能上网。其实,域名的最终指向是IP

二、域名的规则

域名空间结构:【例:】www.baidu.com.
根域:com后面的用"."表示
顶级域:顶级域分为组织域和国家或地区域。
组织域采用3个字符代号,如.com .edu .gov
国家或地区域,采用两个字符代号。如.cn .jp
二级域:二级域注册到个人、组织或者公司名称,如baidu、taobao等
主机名称:主机名称处于域名空间的最底层,主机名与上述各级域名结合构成FQND(完全合格域名),如www。
注意:每个域用一个点号“.”分开

三、DNS服务的作用

1.核心作用:实现域名与 IP 地址的双向翻译

【例】用户在浏览器输入 www.baidu.com,DNS 服务器将其解析为百度服务器的 IP 地址(如 14.215.177.38),从而建立网络连接;网络设备(如防火墙、服务器)通过 IP 地址反查域名,用于日志记录、访问控制或故障排查(如判断某个 IP 是否属于可信域名)。
扩展作用:支撑网络服务的高效与稳定
【例】实现负载均衡与流量分配;提高服务冗余与高可用性;提高网络安全与访问控制
四、域名查询的过程
DNS查询类别:
递归查询:发生在客户端和DNS服务器之间
迭代查询:发送在DNS服务器和DNS服务器之间
DNS解析方式:
正向解析:将FQDN解析为对应的IP
反向解析:将IP解析为对应的FQDN

域名查询流程简化

  1. 用户输入域名 → 检查本地缓存(浏览器 / 系统 /hosts);
  2. 无结果 → 向本地 DNS 服务器查询;
  3. 本地 DNS 服务器无缓存 → 依次查询根服务器 → 顶级域名服务器 → 权威域名服务器;
  4. 获取 IP 地址 → 返回给用户并缓存 → 建立连接。

四.DNS重要的配置文件及目录解释

/etc/hosts 本地解析配置文件
/etc/resolv.conf 客户端的DNS指向
named DNS服务名称
bind,bind-chroot DNS安装软件包
/var/named DNS的家目录
/etc/named.conf 映射的DNS主配置文件
/var/named/chroot/etc/named.rfc1912.zones 记录DNS正向和反向的全局解析配置文件
/var/named/named.localhost 正向解析的配置文件模板
/var/named/named.empty 反向解析的配置文件模板
/etc/named.conf 映射的DNS主配置文件
/var/named/chroot/etc/named.rfc1912.zones全局解析配置文件

五,DNS 服务器类型(主 DNS 与辅助 DNS)

主 DNS 服务器(Primary/Authoritative DNS)
定义:负责维护特定域名区域(Zone)的原始数据,是该区域的权威数据源。
权限:可直接修改域名记录(如 A、MX、CNAME 等),并生成更新序列号(Serial)。
存储:区域文件存储在本地(如 /var/named/example.com.db)。
辅助 DNS 服务器(Secondary DNS)
定义:从主 DNS 服务器同步区域数据,提供冗余备份和负载分担。
权限:只读,无法直接修改记录,需通过主 DNS 更新。
同步机制:通过 AXFR/IXFR 协议定期检查主 DNS 的序列号,发现更新时拉取全量或增量数据
定义域和网段的映射关系分为:正向解析(FQDN → IP)和 反向解析(IP → FQDN)

六、使用bind方式搭建主DNS服务器

目标:通过配置我们可以将192.168.100.10和ycy2.example.com相互转换


1.配置本地yum仓库

挂载yum仓库
mount /dev/cdrom /mnt/
配置主DNS服务器
安装bind、bind-chroot软件
yum -y install bind bind-chroot

2.进入vim /etc/named.conf,编辑DNS服务器主配置文件

3. 配置区域文件(/etc/named.rfc1912.zones)

区域文件定义正向和反向解析的 “区域” 规则,指定解析文件路径:
##反向解析全局配置文件
zone "localhost.localdomain" IN {type master;file "named.localhost";allow-update { none; };
};zone "localhost" IN {             ##将这五行复制粘贴到末尾type master;file "named.localhost";allow-update { none; };
};
##反向解析全局配置文件zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "1.0.0.127.in-addr.arpa" IN {type master;file "named.loopback";allow-update { none; };
};zone "0.in-addr.arpa" IN {       ##以及这五行粘贴到文件末尾type master;file "named.empty";allow-update { none; };
};##粘贴在文件末尾再去修改,因为我们一般不去修改源文件的配置zone "localhost" IN {  ##localhost修改为域名:example.com           type master;   ##表示主DNS服务器类型file "named.localhost";   ##文件名allow-update { none; };
};zone "0.in-addr.arpa" IN {       type master;file "named.empty";allow-update { none; };
};

4.编辑正向和反向解析全局配置文件

将存放正向和反向解析的配置文件模板复制一份,且保持源文件的属性
/var/named/named.localhost 正向解析的配置文件模板
/var/named/named.empty 反向解析的配置文件模板
cd /var/named
cp -p named.localhost ycy.com
cp -p named.empty com.ycy

(1)编辑正向解析文件

vim /var/named/ycy.com

(2)编辑反向解析文件

vim /var/named/com.ycy

**$TTL 1D:**缓存周期为1天
**SOA:**起始授权记录,就是由谁让你做解析的,即DNS服务器
**serial:**序列号,可以随便写
**refresh:**定义辅助DNS刷新的时间,也就是说辅助DNS会隔多久同步主dns解析数据。
**retry:**表示重试延迟,也就是说辅助dns第一次同步数据失败,那么就需要隔多久(就是retry来定义)来同步
**expire:**表示失效的时间,超过这个时间,辅助DNS一直同步数据失败,那么该辅助DNS服务器将失效,则不会再去同步主DNS数据。
**minimum:**表示定义无效解析的缓存时间。
一个FQDN只能对应一个IP,但是一个IP可以对应多个FQDN。

4,重启服务

systemctl  restart  named
systemctl  enable  named

5.配置关闭防火墙,关闭SELinux

systemctl stop firewalld		#关闭防火墙
systemctl disable firewalld		#设置开启自启
setenforce 0		#设置SElinux状态为全部允许访问模式
getenforce		#查看SWlinux状态

6.在另一台设备网卡配置文件中配置DNS为服务器的IP:192.168.100.10

vim /etc/sysconfig/network-scripts/ifcfg-ens33

7.验证

nslookup

七、搭建DNS辅助服务器

除了编辑正向和反向解析全局配置文件不一样其他都一样

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

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

相关文章

typecho博客设置浏览器标签页图标icon

修改浏览器标签页图标(favicon.ico):第1种:上传到服务器本地目录1、制作图标文件:准备一张长宽比为 1:1 的图片,将其上传到第三方 ico 生成网站,生成后缀为.ico 的图片文件,并将其命…

LoadBalancingSpi

本文是 Apache Ignite 中 Load Balancing SPI(负载均衡服务提供接口) 的核心说明,特别是其默认实现 RoundRobinLoadBalancingSpi 的工作原理。 它解释了 Ignite 如何在集群中智能地将任务(Job)分配到不同的节点上执行&…

Day43--动态规划--674. 最长连续递增序列,300. 最长递增子序列,718. 最长重复子数组

Day43–动态规划–674. 最长连续递增序列,300. 最长递增子序列,718. 最长重复子数组 674. 最长连续递增序列 方法:动态规划 思路: dp[i]含义:到i这个位置(包含i)的连续递增子序列的长度递推…

支持 UMD 自定义组件与版本控制:从 Schema 到动态渲染

源码 ⸻ 支持 UMD 自定义组件与版本控制:从 Schema 到动态渲染 在低代码平台或可视化大屏 SDK 中,支持用户上传自定义组件 是一个必备能力。 而在 React 场景下,自定义组件通常以 UMD 格式 打包并暴露为全局变量。 本篇文章,我…

zookeeper3.8.4安装以及客户端C++api编译

服务端直接下载编译好的bin版本 Apache Download Mirrors C客户端需要编译库文件 zookeeper 3.8.4 使用与C API编译 - 丘狸尾 - 博客园 杂七杂八的依赖 sudo apt update sudo apt install -y \autoconf automake libtool libtool-bin m4 pkg-config gettext \cmake build-es…

使用行为树控制机器人(一) —— 节点

文章目录一、背景需求二、创建ActionNodes1. 功能实现1.1 头文件定义1.2 源文件实现1.3 main文件实现1.4 my_tree.xml 实现2. 执行结果三、 执行失败处理1. 添加尝试次数1.1 功能实现1.2 实验结果2. 完善异常处理2.1 多节点组合兜底2.2 实验结果使用行为树控制机器人(一) —— …

JavaScript Window Location

JavaScript Window Location JavaScript中的window.location对象是操作浏览器地址栏URL的一个非常有用的对象。它允许开发者获取当前页面的URL、查询字符串、路径等,并且可以修改它们来导航到不同的页面。以下是关于window.location的详细解析。 1. window.location…

Kubernetes生产环境健康检查自动化指南

核心脚本功能: 一键检查集群核心组件状态自动化扫描节点/Pod异常存储与网络关键指标检测风险分级输出(红/黄/绿标识)一、自动化巡检脚本 (k8s-health-check.sh) #!/bin/bash # Desc: Kubernetes全维度健康检查脚本 # 执行要求:kub…

消息队列系统测试报告

目录 一、项目背景 二、RabbitMQ介绍 1.什么是RabbitMQ? 2.RabbitMQ的工作流程是怎么样的? 3.项目设计 三、测试概述 MQ 测试目标: 测试用例统计: 核心模块测试详情及代码示例: 1. 数据库管理(Da…

基于 Axios 的 HTTP 请求封装文件解析

import axios from "axios"; import { ElMessage } from "element-plus"; import store from "/store"; import router from "/router";// 创建axios实例 const service axios.create({baseURL: "http://localhost:8080/api&quo…

PowerDesigner生成带注释的sql方法

前提是name里面是有文字的: 方法开始: 第一步: Database → Edit Current DBMS → Script → Objects → Column → Add 把输出模板改成: %20:COLUMN% %30:DATATYPE%[.Z:[%Compressed%? compressed][ %NULLNOTNULL%][%IDENTITY…

猎板PCB:专业键盘PCB板解决方案供应商

猎板PCB深耕印刷电路板(PCB)制造领域,凭借前沿技术与深厚积淀,在键盘PCB板细分市场积极布局,致力于为不同客户提供多样化、高性能的键盘PCB板产品,满足多元需求。一、定义:键盘PCB板键盘PCB板&a…

基于 Spring Boot 的登录功能实现详解

在 Web 应用开发中,登录功能是保障系统安全的第一道防线。本文将结合实际代码,详细解析一个基于 Spring Boot 框架的登录功能实现,包括验证码生成、用户验证、Token 机制等关键环节。技术栈概览本登录功能实现涉及以下核心技术和组件&#xf…

vue+django 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱

vuedjango 大模型心理学智能诊断评测系统干预治疗辅助系统、智慧心理医疗、带知识图谱文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处!编号:D003 pro基于大模型心理学问卷、智能诊断&…

【linux】企业级WEB应用服务器tomcat

一 WEB技术1.1 HTTP协议和B/S 结构操作系统有进程子系统,使用多进程就可以充分利用硬件资源。进程中可以多个线程,每一个线程可以被CPU调度执行,这样就可以让程序并行的执行。这样一台主机就可以作为一个服务器为多个客户端提供计算服务。客户…

【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题

【Unity优化】Unity多场景加载优化与资源释放完整指南:解决Additive加载卡顿、预热、卸载与内存释放问题 本文将完整梳理 Unity 中通过 SceneManager.LoadSceneAsync 使用 Additive 模式加载子场景时出现的卡顿问题,分析其本质,提出不同阶段的…

B 树与 B + 树解析与实现

一、磁盘存储优化的核心逻辑 在大规模数据处理场景中,磁盘 I/O 效率是性能瓶颈的核心。磁盘访问具有以下特性: 随机访问成本高:磁头寻道时间(Seek Time)可达毫秒级,相比内存访问(纳秒级&#…

MySQL 查询相同记录并保留时间最晚的一条

要在 MySQL 中查询相同记录并仅保留时间最晚的那一条,你可以使用以下几种方法:方法一:使用子查询和 GROUP BY假设你的表名为 your_table,时间字段为 create_time,其他用于判断记录相同的字段为 field1, field2 等&…

在 .NET Core 5.0 中启用 Gzip 压缩 Response

在 .NET Core 5.0 中启用 Gzip 压缩 Response 在 .NET Core 5.0 (ASP.NET Core 5.0) 中启用 Gzip 压缩主要通过响应压缩中间件实现。以下是详细配置步骤: 1. 安装必要的 NuGet 包 首先确保已安装响应压缩包: dotnet add package Microsoft.AspNetCore.Re…