当前位置: 首页 > news >正文

Linux网络部分——DNS域名解析服务

目录

1. 域名结构

2. 系统根据域名查找IP地址的过程

3.DNS域名解析方式

4.DNS域名解析的工作原理【☆】

5.域名解析查询方式

6.搭建主从DNS域名服务器      

①初始化操作主服务器和从服务器,安装BIND软件

②修改主服务器的主配置文件、区域配置文件、区域数据文件配置解析记录

​编辑

③修改从服务器主配置文件、主配置文件、区域配置文件、区域数据文件

④重启named服务

⑤验证配置结果,/etc/resolv.conf文件中的nameserver需要更改

7. 搭建本地DNS服务器 


        日常生活中通常我们是使用域名访问服务器,但是机器之间只认IP地址,转换的过程即为域名解析。DNS服务使用TCP和UDP的53端口,TCP的53端口用于连接DNS服务器,UDP的53端口用于解析DNS。每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

1. 域名结构

        域名结构是树形结构,以根域. 为起点,格式为:主机名.子域/二级域.顶级域.,当顶级域为国家域名时才有二级域。

.com商业

.net运营商

.org非营利组织

.edu教育机构

.cn国家

.uk

2. 系统根据域名查找IP地址的过程

1)先使用主机本地的hosts文件查找相关记录(hosts文件需要自己定义,优先级更高,但只在本机有效)

2)如果本地hosts文件没有记录,则使用DNS服务器进行解析。

3.DNS域名解析方式

正向解析:根据域名查找对应的IP地址

反向解析:根据IP地址查找对应的域名

4.DNS域名解析的工作原理【☆】

        采用委派机制。

        域名是树状结构,客户端先将DNS解析请求发送给本地域名服务器,本地域名服务器会先查询本地缓存有没有相关的记录,有则直接返回给客户端,没有记录则将解析请求发送给根域名服务器进行解析;根域服务器会将DNS解析请求委派给对应的顶级域服务器进行解析;顶级域服务器也会根据域名的二级域或子域再将DNS解析请求委派给对应的二级域或子域服务器进行解析;最后子域服务器会根据域名的主机名解析出响应的IP地址,再返回给本地域名服务器到客户端。

5.域名解析查询方式

递归查询:简单来说就是将DNS解析请求一探到底,逐层返回

        本地域名服务器收到客户机发送的DNS域名解析请求后,先发给根域名服务器,根域名服务器再将解析请求转发给对应的顶级域名服务器,顶级域名服务器再转发给对应的二级域名或子域名,最后子域名服务器会根据域名的主机名解析出对应的IP地址,再逐层返回给本地域名服务器到客户机。

迭代查询:简单来说就是每次DNS解析请求都会得到对应的相应回复

        本地域名服务器收到客户机发送的DNS域名解析请求后,先发给根域名服务器,根域名服务器回复消息告知去找对应的顶级域名服务器;本地域名服务器再将DNS域名解析请求发给对应的顶级域名服务器,顶级域名服务器会回复消息告知去找对应的二级域名或子域名服务器;最后本地域名服务器将DNS解析请求发送给对应的子域名服务器,子域名服务器会根据域名的主机名解析出相对应的IP地址后,直接返回给本地域名服务器

DNS系统类型:缓存域名服务器、主域名服务器、从域名服务器(缓存域名服务器和主域名服务器可以兼容)

6.搭建主从DNS域名服务器      

        配置本地局域网服务器至少1台,客户机可以为多台。这里我将我IP为192.168.170.10的虚拟机作为主服务器,192.168.170.20做从服务器(冗余)

①初始化操作主服务器和从服务器,安装BIND软件
systemctl stop firewalld       
systemctl disable firewalld   
setenforce 0                
vim /etc/selinux/config   --->  selinux=disabled
mount /dev/sr0 /mnt

②修改主服务器主配置文件、区域配置文件、区域数据文件配置解析记录

/etc/named.conf  --->默认监听本机,可以改成指定监听IP地址或者any表示任意--->关闭IPV453端口---> allow-query改成any表示允许所有客户端主机访问,或指定一个、多个网段 ---->recursion yes表示默认设置成递归查询(可改可不改)

/etc/named.rfc1912.zones 区域配置文件定义域名(正向解析配置和反向解析配置)

vim /var/named/XXXX

复制文件时要保存属性复制,否则会报错

做正向解析的配置,复制目录中named.localhost文件到当前目录,名为test.com.zone。vim编辑,两个@可以改可以不改,@可以改为test.com.完整域名  --->   指定邮箱冠名如admin.xy101.com.  --->   NS后@也改为test.com.完整域名   --->   更新标识serial可修改为20240425   --->   NS下一行设置本机IP地址   --->   往下设置正向解析的相关记录,还可以做别名XXXX  --->   保存

做反向解析配置,复制test.com.zone文件到当前目录,名为test.com.zone.local。vim编辑,

③修改从服务器主配置文件、主配置文件、区域配置文件、区域数据文件

/etc/named.conf --->默认监听本机,可以改成指定监听IP地址或者any表示任意--->关闭IPV453端口---> allow-query改成any表示允许所有客户端主机访问,或指定一个、多个网段 ---->recursion yes表示默认设置成递归查询(可改可不改)

/etc/named.rfc1912.zones 区域配置文件定义域名(正向解析配置和反向解析配置)

④重启named服务
systemctl enable named
systemctl start named

设置错误时重启named会报错,trail -f 文件名可以告诉哪里设置错误,或者根据提示的journal -xe 查看错误日志

⑤验证配置结果,/etc/resolv.conf文件中的nameserver需要更改

【补充】dig host 也可以域名解析

windows系统验证

7. 搭建本地DNS服务器 

1)初始化系统
2)安装 bind 软件包
3)修改主配置 /etc/named.conf      
listen-on port 53 { any; };      #设置监听IP地址和端口
allow-query     { any; };        #设置允许访问DNS服务器的客户端

4)修改区域配置文件 /etc/named.rfc1912.zones(跟主从差不多,这一步配置无需配置从服务器的信息)

zone "test.com" IN {                                  #正向解析配置
        type master;
        file "test.com.zone";                          #设置区域数据文件名称
};

zone "170.168.192.in-addr.arpa" IN {       #反向解析配置,地址倒写
        type master;
        file "test.com.zone.local";
};

5)修改区域数据文件 /var/named/test.com.zone
cd /var/named
cp -p named.localhost test.com.zone
vim test.com.zone

....
              NS           test.com.                       #设置当前区域名称
               A             192.168.170.10             #设置DNS服务器IP地址
www  IN A             192.168.170.100           #设置正向解析的主机名与IP地址的映射记录
xxx    IN CNAME   www                              #设置主机名 xxx 是 www 的别名

vim test.com.zone.local

....
100  IN PTR    www.test.com.         #设置IP地址与域名的反向解析记录

5)重启named服务
6)客户端设置DNS服务器地址 /etc/resolv.conf ,并验证 nslookup  host  dig

相关文章:

Linux网络部分——DNS域名解析服务

目录 1. 域名结构 2. 系统根据域名查找IP地址的过程 3.DNS域名解析方式 4.DNS域名解析的工作原理【☆】 5.域名解析查询方式 6.搭建主从DNS域名服务器 ①初始化操作主服务器和从服务器,安装BIND软件 ②修改主服务器的主配置文件、区域配置文件、区域数…...

预处理详解

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 点击主页:optimistic_chen和专栏:c语言, 创作不易,大佬们点赞鼓…...

Python的创建和使用自定义模块

Python 的模块是组织代码的基本单元,它可以包含变量、函数、类等,并且可以被其他 Python 程序引用和重用。除了使用 Python 提供的标准库和第三方库外,开发者还可以创建自定义模块,用于组织和管理自己的代码。本文将详细介绍如何创…...

Python根据预设txt生成“你画我猜”题目PPT(素拓活动小工具)

Python根据预设txt生成“你画我猜”题目PPT(素拓活动小工具) 场景来源 去年单位内部的一次素拓活动,分工负责策划设置其中的“你画我猜”环节,网络上搜集到题目文字后,想着如何快速做成对应一页一页的PPT。第一时间想…...

小程序地理位置接口权限直接抄作业

小程序地理位置接口有什么功能? 随着小程序生态的发展,越来越多的小程序开发者会通过官方提供的自带接口来给用户提供便捷的服务。但是当涉及到地理位置接口时,却经常遇到申请驳回的问题,反复修改也无法通过,给的理由也…...

【Osek网络管理测试】[TG3_TC6]等待总线睡眠状态_2

🙋‍♂️ 【Osek网络管理测试】系列💁‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果 1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT在满足进入等待睡眠状态的条件时是否进入该状态 …...

BEV下统一的多传感器融合框架 - FUTR3D

BEV下统一的多传感器融合框架 - FUTR3D 引言 在自动驾驶汽车或者移动机器人上,通常会配备许多种传感器,比如:光学相机、激光雷达、毫米波雷达等。由于不同传感器的数据形式不同,如RGB图像,点云等,不同模态…...

c#和python的flask接口的交互

一、灰度图像的传输 c#端的传输 //读入文件夹中的图像 Mat img2 new Mat(file, ImreadModes.AnyColor); //将图像的数据转换成和相机相同的buffer数据 byte[] image_buffer new byte[img2.Width * img2.Height]; int cn img2.Channels(); //通道数 if (cn 1){//将图像的数…...

Python测试框架Pytest的参数化详解

上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…...

KernelSU 如何不通过模块,直接修改系统分区

刚刚看了术哥发的视频,发现kernelSU通过挂载OverlayFS实现无需模块,即可直接修改系统分区,很是方便,并且安全性也很高,于是便有了这篇文章。 下面的教程与原视频存在差异,建议观看原视频后再结合本文章进行操作。 在未进行修改前,我们打开/system/文件夹,并在里面创建…...

红日靶场ATTCK 1通关攻略

环境 拓扑图 VM1 web服务器 win7(192.168.22.129,10.10.10.140) VM2 win2003(10.10.10.135) VM3 DC win2008(10.10.10.138) 环境搭建 win7: 设置内网两张网卡,开启…...

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)

1写在前面 分享一下最近看到的2篇paper关于骨骼肌组织的细胞Marker&#xff0c;绝对的Atlas级好东西。&#x1f44d; 希望做单细胞的小伙伴觉得有用哦。&#x1f60f; 2常用marker&#xff08;一&#xff09; general_mrkrs <- c( MYH7, TNNT1, TNNT3, MYH1, MYH2, "C…...

游戏名台词大赏

文章目录 原神&#xff08;圈内&#xff09; 崩坏&#xff1a;星穹铁道&#xff08;圈内&#xff09; 崩坏3&#xff08;圈内&#xff09; 原神 只要不失去你的崇高&#xff0c;整个世界都会为你敞开。 总会有地上的生灵&#xff0c;敢于直面雷霆的威光。 谁也没有见过风&…...

OpenCV如何在图像中寻找轮廓(60)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV如何模板匹配(59) 下一篇 :OpenCV检测凸包(61) 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 cv::findContours使用 OpenCV 函数 cv::d rawContours …...

java 泛型题目讲解

泛型的知识点 泛型仅存在于编译时期&#xff0c;编译期间JAVA将会使用Object类型代替泛型类型&#xff0c;在运行时期不存在泛型&#xff1b;且所有泛型实例共享一个泛型类 public class Main{public static void main(String[] args){ArrayList<String> list1new Arra…...

pptx 文件版面分析-- python-pptx(python 文档解析提取)

安装 pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installedpptx 解析代码实现 from pptx import Presentation file_name "rag_pptx/test1.pptx" # 打开.pptx文件 ppt Presentation(file_name) for slide in ppt.slides:#pr…...

http的basic 认证方式

写在前面 本文看下http的basic auth认证方式。 1&#xff1a;什么是basic auth认证 basic auth是一种http协议规范中的一种认证方式&#xff0c;即一种证明你就是你的方式。更进一步的它是一种规范&#xff0c;这种规范是这样子&#xff0c;如果是服务端使用了basic auth认证…...

【信息系统项目管理师练习题】信息系统治理

IT治理的核心是关注以下哪项内容? a) 人员培训和发展计划 b) IT定位和信息化建设与数字化转型的责权利划分 c) 业务流程的绩效管理 d) IT基础设施的优化利用 答案: b) IT定位和信息化建设与数字化转型的责权利划分 IT治理体系框架的组成部分包括以下哪些? a) IT战略目标、IT治…...

RabbitMQ之顺序消费

什么是顺序消费 例如&#xff1a;业务上产生者发送三条消息&#xff0c; 分别是对同一条数据的增加、修改、删除操作&#xff0c; 如果没有保证顺序消费&#xff0c;执行顺序可能变成删除、修改、增加&#xff0c;这就乱了。 如何保证顺序性 一般我们讨论如何保证消息的顺序性&…...

轻松上手的LangChain学习说明书

一、Langchain是什么&#xff1f; 如今各类AI模型层出不穷&#xff0c;百花齐放&#xff0c;大佬们开发的速度永远遥遥领先于学习者的学习速度。。为了解放生产力&#xff0c;不让应用层开发人员受限于各语言模型的生产部署中…LangChain横空出世界。 Langchain可以说是现阶段…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法&#xff1a;netstat [选项] 功能&#xff1a;查看网络状态 常用选项&#xff1a; n 拒绝显示别名&#…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...