DNS服务
一.DNS介绍
DNS应用层协议
Domain Name System 域名系统
作用:实现域名解析,解析主机名所对应的IP地址,
在网络环境中设备与设备之间要想相互通信只能依赖IP地址,DNS服务器的作用是实现域名解析。
如上图所示,DNS存在的目的,就是机器给DNS服务器发送请求,然后获取京东网址的IP地址,然后机器进行数据封装,随后给京东机器通信。
自己构建一台DNS服务器的作用:正向解析(根据主机名,返回主机名机器的IP)反向解析(根据IP地址解析对应的主机名)。(做垃圾邮件过滤需要反向解析。)
DNS服务内部要有域名信息存在,才可以实现主机名解析成IP地址的功能,每一条信息称之为一条记录,面对海量的互联网主机名对应的IP信息肯定不能每一条信息都记录,就算机器能存下所有的信息也会影响搜索效率。
如果只让一台DNS服务器来解析主机名,会大幅度地拖慢机器的搜索效率。
解决方案主要采用分层的思想,
不同级别的DNS服务器干不同的事情,
如上图所示,是DNS服务器的域名结构,比如www.baidu.com中的com是一级域名,baidu是二级域名,www是百度自己在baidu.com这个域名中的一个名称而已,完成的主机名结构应该是www.baidu.com.只不过最后的一个点从来不写,
不同的机器干不同事情其作用就是用来缓解DNS服务器的压力。
二.DNS核心概念
1.区域 zone
创建区域,一般这个区域就是二级域名,
linux.com创建好之后就意为着我们告诉这台DNS服务器你要去负责解析linux.com结尾的所有主机名,如果又创建了一个域名,a.rog也就是告诉机器将来你要去解析a.org结尾的所有主机名,
正向区域:本质上就是一个二级域名,比如linux.com就相当于是告诉服务器来说你要去负责解析linux.com的所有域名,(即解析主机名所对应的IP地址是什么。)
反向区域:不是必须的,只有希望DNS服务器实现反向解析功能的时候,才需要创建反向区域,并且反向区域的名称格式就是x.x.x.in-addr.arpa
前面这三个数字就是IP地址的前三位数字位置倒过来写的,
比如1.168.192.in-addr.arpa这个反向区域的作用就是将来DNS服务器要负责解析IP地址是192.168.1开头的所有IP地址,将这个些IP地址对应的主机名返回。
2.记录 record
即将来的DNS服务器能够解析那些主机名就需要我们事先将主机名所对应的IP地址写进DNS服务器中,这样的一行信息称之为是一条记录。
常见的记录类型
1.A记录
主要是用来记录主机名,IP地址的对应关系的,
www.baidu.com A 1.1.1.1
即记录某一个主机名所对应的IP地址的。
2.PTR记录
反向指针记录,
用来记录IP地址,主机名的对应关系
1.1.1.1 PTR www.baidu.com
当DNS服务器需要所反向解析的时候,才需要PTR记录。
3.NS记录
用来标识某一个主机名所对应的服务器是DNS服务器,
NS test1.linux.com.
NS的作用是用来标识在网络中有一台DNS服务器,这台DNS服务器的主机名叫做test1.linux.com
NS记录不能单独存在,NS记录必须要跟A记录一起使用。
即NS test1.linux.com.
test1.linux.com. A 2.2.2.2
4.MX记录
用来标识邮件服务器的,MX 5 mail01.linux.com.
后面的mail01.linux.com.主机名代表的是一台邮件服务器,
在公司内部安全需求高的是不允许使用其他的邮件软件来发送邮件,都是使用公司内部的邮件服务器,此时收发邮件都是通过公司内部的邮件服务器来收发。
这个MX记录用的时候,也需要搭配A记录一起使用。
即先写MX 5 mail01.linux.com
mail01.linux.com. A 4.4.4.4
如果公司内部没有邮件服务器那么这个MX记录就用不到。
其中数字5标识这个邮件服务器的优先级,数字越小,优先级越高,优先级越高,其他客户端越会首先使用数字小的邮件服务器来收发邮件。
MX 10 mail02.linux.com
mail02.linux.com. A 5.5.5.5
数字越小优先级越高,
5.CNAME记录
中文叫做别名记录
给主机名起别名的,
也就是说,给主机名起一个别名,
如上图所示,比如www.baidu.com是www.a.shifen.com的别名,这样是为了好记。
给一个主机名起别名的时候可以起多个别名,但是没有必要啊。
书写形式如上。
3.DNS的查询类型
1.递归查询
指的是客户端只需要发送一次查询请求就可以获取结果。
2.迭代查询(实现迭代查询的前提是这台DNS服务器可以正常上网。)
指的是客户端需要发送多次查询请求才可以获取结果。
三.DNS的部署即DNS在Linux上的实现
软件:bind,bind-chroot
严格意思上说bind-chroot可以不安装,但是建议安装,为了增强DNS服务的安全性,
bind的配置文件都在/etc/保存着。
bind-chroot会给DNS进程生成一个伪根目录,即/var/named/chroot将来所有的配置都在这个为根目录下的配置文件书写。
也就是说把DNS服务的权限被限制在了伪根目录下,将来有一天这个DNS服务器被攻破了哪怕攻击者获取到了DNS服务器的运行权限也只能在这个伪根目录下进行操作,真正的重要的信息根本无法获取。
DNS经常被人攻破,要注意保护信息。
配置文件:伪根目录来说,
主配置文件:/var/named/chroot/etc/named.conf主要作用是用来定义区域,即正向区域还是反向区域,以及这个区域名称是什么。
记录文件:/var/named/chroot/var/named/*主要作用是用来写记录信息的。
搭建DNS服务器就是两件事创建区域,编写记录。
存放记录信息的文件名称可以随意。
但是
named.conf主配置文件:
定义区域:linux.com
记录文件:linux.com.zone
记录文件:/var/named/chroot/var/named/linux.com.zone
服务:named,named-chroot
端口:53/udp
四.配置DNS实现正向解析
需求实现:员工可以根据公司内部的DNS服务器实现主机名向IP地址转化的正向解析,
web.linux.com 192.168.1.1
ftp.linux.com 192.168.1.2
mail.linux.com 192.168.1.3
ns01.linux.com 192.168.183.10
如上图所示,创建区域,并且这个区域名称是linux.com
负责解析linux.com结尾的所有主机名,
1.关闭防火墙,SELinux,确保机器的时间一致
2.安装DNS相关软件
如上图所示,安装DNS所需要的软件,
3.编辑named.conf主配置文件,创建区域
如上图所示,在伪根目录下去创建这个主配置文件,
如上图所示,第一个文件路径表示的是记录文件的存放位置,
这个目录实际标识的是/var/named/chroot/var/named
如上图所示,第二个文件路径表示的是创建区域的名称,这个区域都是二级区域,
type master;表示的是这个区域是主区域,也就是说这个区域中记录信息可以根据自己的需要,随意添加修改记录信息。
也可以把区域类型修改为从区域,并且这个区域中的记录信息,都是不能直接操作的。需要从主区域来修改从区域中的内容。
文件名指定的就是区域的记录文件名称。
4.复制记录文件模板named.local host
如上图所示,就是记录文件模板,
5.添加记录信息
写管理员邮箱地址的时候把@改成点.
如上图所示,就是DNS服务器的记录文件。
6.记录named服务
如上图所示,启动DNS服务,并且配置DNS服务开机自启动。
如上图所示,通过查看进程以及查看DNS产生的UDP协议的端口号来验证DNS服务器是否启动成功。
7.检测DNS是否能够正向解析,即能否将主机名转化成IP地址
(测试DNS服务是否能够正常工作。)可以通过工具nslookup
如上图所示,指定需要哪个DNS服务器来解析主机名,
如上图所示,这时主机名解析正常。
随后exit退出即可。
DNS服务器的作用就只是解析这个主机名所对应的IP地址,但是这个机器能不能跟这个IP地址通信,跟这个DNS服务器没有关系。
五.配置DNS实现反向解析(如果要配置DNS服务器实现反向解析,必须要保证DNS的正向解析是正常的,需要在正向解析的基础上去进行反向解析。)
如上图所示,这个切换机器DNS服务器地址的行为只是临时的指定当退出这个nslookup软件的时候,DNS服务器指定的功能就失效了。
那么如何让其他机器使用你构建的DNS服务器的主机名呢?
如上图所示,可以把网卡的DNS服务器的地址修改为搭建的DNS服务器的IP地址,此时DNS在其他机器上能够成功生效。
如上图所示,就算是自己搭建的DNS服务器也可以去解析一些记录文件中没有的主机名,这里DNS服务器主要使用的是迭代查询。
这里的非权威应答是说的使用的是迭代查询。
当然DNS服务器能够使用迭代查询的条件是能上网。
如上图所示,此时要求DNS服务器进行反向解析是失败的。
如果想要DNS能够做反向解析的话,就要求有反向区域,并且有对应的记录
1.编辑named.conf主配置文件,添加反向区域
创建反向区域解析IP地址所对应的主机名
如上图所示,因为这三个机器的IP地址前三位一样所以只要创建一个反向区域就可以了。
如上图所示,就是在DNS的主配置文件中所创建的反向区域。以及反向区域的记录文件名称。
2.添加反向区域对应的记录文件
如上图所示,首先复制记录文件的模板。
随后去修改这个复制的记录文件中的内容。
如上图所示,就是这个反向区域的记录文件中的内容。
3.重启DNS服务,测试
如上图所示,此时将机器的DNS指定为创建的DNS服务器地址,就可以实现反向解析了。
六.hosts文件的使用
一个客户端想获知一个主机名所对应的IP,除了有对应的DNS服务器之外还有另外的方式。
客户端系统内部有一个文件hosts,这个文件是用来记录某IP地址和主机名之间的关系的,先找的是hosts文件,找不到的话然后再找的是DNS服务器,
这就是在windows系统上用来保存IP地址和主机名对应关系的文件。
如上图所示,如果想修改这个文件的内容需要把这个文件拖到桌面上,然后以记事本形式打开,随后前面是IP地址,后面是这个IP地址所对应的主机名。
随后保存,随后将原来的hosts文件替换即可。
相关文章:

DNS服务
一.DNS介绍 DNS应用层协议 Domain Name System 域名系统 作用:实现域名解析,解析主机名所对应的IP地址, 在网络环境中设备与设备之间要想相互通信只能依赖IP地址,DNS服务器的作用是实现域名解析。 如上图所示,DNS存…...
STM32 HAL freertos零基础(九)任务通知
1、任务通知 任务通知用于任务之间同步和通信。任务通知允许一个任务向另一个任务发送一个32位的值,并可以选择是否唤醒正在等待通知的任务。这使得任务之间的同步更加简单和灵活。 任务通知功能: 发送通知:一个任务可以向另一个任务发送一个32位的值。 接收通知:接收任…...

Qt+FFmpeg开发视频播放器笔记(三):音视频流解析封装
音频解析 音频解码是指将压缩的音频数据转换为可以再生的PCM(脉冲编码调制)数据的过程。 FFmpeg音频解码的基本步骤如下: 初始化FFmpeg解码器(4.0版本后可省略): 调用av_register_all()初始化编解码器。 调用avcodec_register_all()注册所有编解码器。 打开输入的音频流:…...

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击
引言: 在当今数字化时代,电子通信设备已成为我们日常生活中不可或缺的一部分。然而,近期黎巴嫩发生的电子设备爆炸事件提醒我们,这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施,以及网络智能…...

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL16
使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器 描述 ②请使用2片该优先编码器Ⅰ及必要的逻辑电路实现16线-4线优先编码器。优先编码器Ⅰ的真值表和代码已给出。 可将优先编码器Ⅰ的代码添加到本题答案中,并例化。 优先编码器Ⅰ的代码如下: module…...

12 - TCPServer实验
在上一章节中,我们学习了TCPClient通信测试的相关知识。接下来,本章节将以此为基础,构建一个基础性的TCPServer连接机制,该机制将利用之前所建立的WIFI网络连接。为方便演示,我们将借助网络调试助手工具进行数据的发送…...
Explain执行计划
Explain执行计划 explain可以帮助开发人员分析SQL问题,explain用于显示MySQL如何使用SQL执行计划,可以帮助开发人员写出更优化的查询语句。使用方法就是在查询语句前加上explain关键字。 执行添加上explain关键字的语句可以看到一个列表: 其…...
ARM/Linux嵌入式面经(三六):中科曙光
文章目录 1.AD转换,怎么在项目中运用2.项目中的通信网络介绍一下通信网络介绍1. 通信网络类型2. 通信网络特点3. 应用场景4. 关键技术5. 项目中的具体应用和实现方式模拟面试官追问3.socketSocket介绍深度拓展与追问深度拓展可能的追问4.进程间通信方式进程间通信方式介绍总结…...

Python和C++气候模型算法模型气候学模拟和统计学数据可视化及指标评估
🎯要点 贝叶斯推理气候模型辐射对流及干湿能量平衡模型时间空间气象变化预测模型评估统计指标气象预测数据变换天气和气象变化长短期影响预估降低气候信息尺度评估算法气象行为模拟:碳循环、辐射强迫和温度响应温室气体排放碳循环温室诱导气候变化评估气…...

鸿蒙开发城市联动选择弹框
鸿蒙开发城市联动选择弹框 城市联动选择弹框不容易,在Android那边也是不容易。选择某个省份时,城市要对得上,切换得及时 一、思路: 关键用Provide和Consume互相监听对方的变化 二、效果图: 三、视频效果࿱…...

css 控制虚线刻度尺寸
文章目录 css效果 css <div style"width: 100%; height: 1px;background-image: linear-gradient(to right, #545454 0%, #545454 80%, transparent 5%);background-size: 15px 10px;background-repeat: repeat-x; margin: 0 auto;"></div>效果...

NLP三天入门大模型,我领先你好几个版本了
大模型时代下,nlp初学者需要怎么入门? 入门姿势简单粗暴:打一些必要的基础就跑步进入Transformera 大模型时代,传统的算法,像分词、词性标注,被替代得非常厉害,在入门阶段没必要花费太多精力在传统算法上面。 数学和…...

专题六_模拟_算法详细总结
目录 模拟算法 1.模拟算法流程(一定要在草稿纸上演算一遍流程) 2.把流程转换成代码 1. 替换所有的问号(easy) 解析: 1.暴力: 2.优化:(找规律) 总结: …...

ArrayList的扩容机制
ArrayList的扩容机制 ArrayList中的成员变量:1.不带参数的构造方法 让elementDate 引用指向 DEFAULTCAPACITY_EMPTY_ELEMENTDATA所指向的对象 > 当我们调用 不带参数的构造方法的时候 第一次进行add元素的时候,会为底层的数组 进行内存的分配&…...

一、编译原理(引论)
目录 【一】、引论 一、编译器 1、编译器 2、编译器与解释器 3、编译器结构 【一】、引论 一、编译器 1、编译器 (1)编译器:将人类易懂的 高级语言 翻译成 硬件可执行的目标机器语言 (2) 高级语言 ⚫ 直接面…...
【Javascript修炼篇】JS中的函数式编程
介绍: 函数式编程(FP)是一种编程范式,这意味着一种基于一些原则来思考软件构建的方法,比如 纯函数、不可变性、一等与高阶函数、函数组合、闭包、声明式编程、递归、引用透明性、柯里化 和 部分应用。 当这些原则有效…...
spring cxf 常用注解
在Spring框架中,特别是当与Apache CXF(一个流行的SOAP和RESTful Web服务框架)结合使用时,我们会遇到一系列的注解。以下是一些在Spring和CXF中常用的注解: Spring相关注解: Component:用于定义一…...

python | x-y 网格切片
写在前面 通常, 我们处理的毕竟完善的nc产品,一般呈现未timexlatxlon的维度,且lon和lat都是规则的网格,我们可以方便的使用xarray.sel()选择合适的区域进行切片。但是,部分nc产品比如卫星轨道或者模式输出的数据&…...

【C#】vs2022 .net8
Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) 更新就会出现...

【华为杯】第二十一届中国研究生数学建模竞赛
“华为杯”第二十一届中国研究生数学建模竞赛即将开始,梦想科研社给大家整理一些比赛信息,在正式开赛后,我们也会持续分享一些课题的分析以及代码,有需要的可以联系我们获取资料信息哦 一、时间节点 1.加密赛题开始下载时间&…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...