目录

一、DNS概念

        1、概念和作用

        2、域名解析类型

       3、 软件与服务

        4、DNS核心概念

        区域

        记录

        5、查询类型

        6、分层结构

二、DNS操作

配置本机为DNS内网解析服务器

(1)修改主配置文件

(2)添加区域

正向解析区域:

反向解析区域:

(3)添加记录文件

(4)修改记录文件

(5)开启服务

(6)然后检查服务是否开启。

(7)测试dns正常工作,nslookup

DNS复制

主DNS

从DNS

hosts文件的使用


一、DNS概念

        1、概念和作用

DNS应用层协议:用于将人类可读的域名转换为机器可识别的IP地址

        作用:域名解析。将域名转换为IP地址(正向解析)或IP地址转换为域名(反向解析)。

        2、域名解析类型

  • 正向解析(Forward DNS Resolution)是将域名转换为 IP 地址的过程。
  • 反向解析(Reverse DNS Resolution)是将 IP 地址转换为域名的过程。

       3、 软件与服务

  • 软件:bind,bind-chroot
  • 服务进程:named
  • 默认端口:53/UDP

        4、DNS核心概念

        区域
  • 区域是域名空间的一部分,由一个或多个 DNS 记录组成,由同一权威 DNS 服务器管理。它通常对应一个域名及其子域名。
  • 正向区域(Forward Zone)将域名解析为对应的 IP 地址。
  • 反向区域(Reverse Lookup Zone)将IP地址映射到域名,与正向查找(域名→IP)相反。
  • IPv4示例:对于192.168.1.0/24网络,反向区域名为1.168.192.in-addr.arpa
  • IPv6示例:对于2001:db8::/32网络,反向区域名为8.b.d.0.1.0.0.2.ip6.arpa
        记录
  • 记录是域名系统(DNS)中存储的指令,用于指定域名与服务器或其他资源的映射关系。

A记录(Address Record):标识主机名和IP地址的对应关系
将域名指向IPv4地址。

PTR记录(Pointer Record):标识IP地址和主机名的对应关系
用于反向DNS查询,将IP地址映射回域名。

NS记录(Name Server)标识某一个主机是一个DNS服务器,没有说明对应ip,所以必须和A记录一起使用
指定负责解析域名的DNS服务器。

 

MX记录(Mail Exchange)标识邮件服务器,数字代表优先级,数字越小优先级越高
指定接收域名的电子邮件的邮件服务器地址。优先级数值决定邮件服务器的使用顺序。

CNAME记录(Canonical Name)别名记录
为域名设置别名,使其指向另一个域名。

        5、查询类型

  • 递归查询:客户端向本地DNS服务器请求解析,服务器代表客户端完成所有查询步骤并返回最终结果。
  • 迭代查询:DNS服务器按层级逐级查询(根域→顶级域→权威域),返回参考信息而非最终结果。
特性递归查询迭代查询
发起方客户端向DNS服务器请求解析DNS服务器向其他DNS服务器
返回结果必须返回最终解析结果(IP或错误)可能返回下一级服务器地址
责任方DNS服务器承担全部查询工作查询方需持续跟进查询链

        6、分层结构

二、DNS操作

安装bind

//下载完了自动生成一个用户named

  • # rpm -qc bind        //查看与已安装的BIND软件包相关的配置文件

这里我们需要主要需要三个文件

/etc/named.conf     //主配置文件

/etc/named.rfc1912.zones       //子配置文件,添加区域用

/var/named      //存储记录文件,


配置本机为DNS内网解析服务器

(1)修改主配置文件
  • vim /etc/named.conf    //主配置文件,用于修改端口、ip、可以为哪些机器提供服务

(2)添加区域
  •  vim /etc/named.rfc1912.zones     //添加区域

        添加区域时需要填写记录文件名,先写上名字,一会我们去创建同名记录文件。

正向解析区域:

反向解析区域:

注意:不同域名和不同IP段要写不同的区域。区域名称必须与域名或反向IP段严格匹配。必须要确保BIND进程有权限读取区域文件。

(3)添加记录文件

这里创建记录文件。因为记录文件有格式,这里为了省事,直接复制别的记录文件,改名后修改内容。-a参数,保留文件权限。cp复制,mv重命名后修改。

(4)修改记录文件
  • vim /var/named/xxxxx.com.zone        //修改记录文件

这里注意一下!

  • 不完整域名:example.com → 可能解析为 example.com.local
  • 完整域名:example.com. → 严格解析为 example.com

若希望定义的是完整域名,应当在末尾加点以避免自动补全域名。

  • SOA/NS记录:强制要求加点,避免解析异常。
  • A/CNAME/MX记录:根据使用场景选择,若目标域名与当前域无关(如外部域名),必须加点。

这里创建的记录文件的A和PTR记录类型用来配置IP和主机名之间的的映射关系。具体见上文。

注意:!!格式一定不要错,要不然包报错的。

(5)开启服务
  • # systemctl enable --now named        //配置并立即启动named

(6)然后检查服务是否开启。

(7)测试dns正常工作,nslookup


DNS复制

给一个DNS服务器做备份,防止DNS单点故障。

两个DNS服务器的数据是同步的——区域、记录需要一样

需要两个机器,一个作为主DNS,一个作为从DNS

主DNS

主DNS的主配置文件

主服务器的子配置文件   区域

主服务器的记录文件

从DNS

(1)为从dns下载bind

(2)从DNS的主配置文件

(3)从DNS的子配置文件 指定类型为从区域。

从区域的的记录文件只能从别的地方复制过来,不可以修改

(4)写记录文件存哪。建议和主服务器上一致。slaves/

(5)然后启动从DNS就行

(6)查询是否复制过来了

(1)验证有复制过来的文件

(2)主dns能解析谁,从dns就能解析谁

//若现在主记录变化,如加了两行记录,通过序列号识别。所以需要手动改序列号,只要比上次的数字大就可以,然后重启。查询即可。


hosts文件的使用

/etc/hosts文件是一个操作系统用于映射主机名(域名)到IP地址的本地文本文件,无需通过DNS解析。若此文件中没有,才向网卡上的dns服务器请求

windows中hosts文件在这里,可以修改但是注意hosts没有任何后缀!

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

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

相关文章

Python 中 OpenCV (cv2) 安装与使用介绍

Python 中 OpenCV (cv2) 安装与使用详细指南 OpenCV (Open Source Computer Vision Library) 是计算机视觉领域最流行的库之一。Python 通过 cv2 模块提供 OpenCV 的接口。 一、安装 OpenCV 方法 1:基础安装(推荐) # 安装核心包&#xff0…

微软WSUS替代方案

微软WSUS事件回顾2025年7月10日,微软最新确认Windows Server Update Services(WSUS)出现了问题,导致IT管理员无法正常同步和部署Windows更新。WSUS是允许管理员根据策略配置,将更新推送到特定计算机,并优化…

Minio 分布式集群安装配置

目录创建 mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/datarun:启动脚本及二进制文件目录/etc/minio:配置文件目录data:数据存储目录下载 minio wget https://dl.min.io/server/minio…

Spring Boot + ShardingSphere 实现分库分表 + 读写分离实战

🚀 Spring Boot ShardingSphere 实现分库分表 读写分离(涵盖99%真实场景) 🏷️ 标签:ShardingSphere、分库分表、读写分离、MySQL 主从、Spring Boot 实战 分库分表 vs 读写分离 vs 主从配置与数据库高可用架构区别 …

将普通用户添加到 Docker 用户组

这样可以避免每次使用 Docker 命令时都需要 sudo。以下是具体步骤:1. 创建 Docker 用户组(如果尚未存在) 默认情况下,安装 Docker 时会自动创建 docker 用户组。可以通过以下命令检查: groupadd docker(如果…

Scrapy(一):轻松爬取图片网站内容​

目录 一、CrawlSpider 简介​ 二、实战案例:图片网站爬取​ 三、代码解析:核心组件详解​ 类定义: 2.核心属性:​ 3.爬取规则(Rules):​ 4.数据提取方法(parse_item)…

使用 systemd 的原生功能来实现 Redis 的自动监控和重启,而不是依赖额外的脚本最佳实践方案

使用 systemd 的原生功能来实现 Redis 的自动监控和重启,而不是依赖额外的脚本最佳实践方案方案 1:配置 systemd 服务文件(推荐)1. 检查/创建 Redis 的 systemd 服务文件2. 配置关键参数(覆盖配置示例)3. 重…

Eclipse 代码模板

Eclipse 代码模板 引言 Eclipse 作为一款功能强大的集成开发环境(IDE),深受广大开发者的喜爱。在编程过程中,使用代码模板可以大大提高开发效率,减少重复劳动。本文将详细介绍 Eclipse 代码模板的配置、使用方法以及一…

输电线路防外破声光预警装置 | 防山火/防钓鱼/防施工安全警示系统

在输电网络的安全保障中,外力破坏是一个不容忽视的问题,各类隐患可能对电力系统造成严重影响。TLKS-PMG-WP 输电线路声光防外破警示装置在应对这类挑战时,有着独特的技术表现,下面从功能和技术参数两方面进行详细介绍。核心功能解…

STM32——STM32CubeMX

总:STM32——学习总纲 一、简介 注意,非逻辑代码。 可兼容不同系列的STM32Cube固件包。 STM32Cube前置知识链接: STM32——HAL库 不可过多依赖,此工具只针对STM32芯片,类似英飞凌芯片无法配置。主要用于参考。 二、安…

Java NIO 核心原理与秋招高频面试题解析

一、NIO 概述Java NIO(New I/O 或 Non-blocking I/O)是 Java 1.4 引入的一套全新 I/O API,位于 java.nio 包下。NIO 提供了与传统 BIO(Blocking I/O)完全不同的 I/O 处理方式,通过非阻塞模式、缓冲区&#…

vue3+element-plus,el-popover实现筛选弹窗的方法

实现一个筛选框,点击筛选按钮出现弹窗,弹窗内有选择框/输入框/单选框等等,底部有重置/确定两个按钮。需求:点击筛选外部其他位置可以关闭弹窗,关闭弹窗后已编辑的数据不保存,点击确定按钮关闭弹窗&#xff…

python每日一题 贪心算法练习

在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。给定两个整数数组 gas 和 cost &…

Python + Pika RabbitMQ集群压测完整方案

一、最近搭建了个rabbitmq集群 三个磁盘节点,上生产环境之前想做个压测,测试下稳定性,参考Deepseek做了如下测试方案二、核心代码实现: 配置文件 (config.py) import os RABBITMQ_NODES [amqp://admin:123456192.168.0.175:8101,…

【第7话:相机模型3】自动驾驶IPM图像投影拼接技术详解及代码示例

IPM图像投影拼接技术详解 IPM(逆透视映射)图像投影拼接技术是一种在计算机视觉中广泛应用的图像处理方法,主要用于将多个透视视图的图像转换为鸟瞰视图并拼接成一个无缝的大场景图像。该技术特别适用于自动驾驶、机器人导航和监控系统等领域&…

【测试工程思考】测试自动化基础能力建设

1 回顾 传统软件研发体系下定义的软件测试是从用户视角设计的。测试是试图穷尽用户行为的工程,从测试用例(use case)的英文定义就可见一般。测试的逻辑资产就是用自然语言去描述用户的操作行为或路径。 但随着软件工程向分布式架构和敏捷交付…

进阶向:AI聊天机器人(NLP+DeepSeek API)

什么是AI聊天机器人? AI聊天机器人是一种通过自然语言处理(NLP)技术模拟人类对话的智能程序系统。其核心是建立在机器学习算法和大型语言模型基础上的对话引擎,能够理解用户的自然语言输入,分析语境和意图,并生成符合上下文的相关回复。 这类机器人系统通常包含以下几个…

一个C#的段子

猜猜按钮的结果是啥。 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } public static bool flag true; privat…

使用 gptqmodel 量化 Qwen3-Coder-30B-A3B-Instruct

代码部分 : quantize_qwen3_coder_30b_a3b_instruct_gptq.py import os########## 环境变量设置 ########## # 当前可用的 CUDA 编号 os.environ["CUDA_VISIBLE_DEVICES"] "1" # GPU 显存资源片段优化 os.environ["PYTORCH_CUDA_ALLOC_CONF"] …

基于python、django的疫苗接种管理系统

基于python、django的疫苗接种管理系统