DNS域名解析协议

news2024/11/17 16:05:18

文章目录

  • DNS域名解析协议
    • 一、DNS系统的作用
      • 1、DNS的定义
      • 2、DNS域名解析
        • 2.1 正向解析
        • 2.2 反向解析
      • 3、DNS域名结构
    • 二、DNS服务器类型
      • 1、主域名服务器
      • 2、从域名服务器
      • 3、缓存域名服务器
      • 4、权威dns服务器
    • 三、DNS查询类型及原理
      • 1、查询方式
        • 1.1 递归查询
        • 1.2 迭代查询
      • 2、DNS查询原理过程
        • 2.1 正向解析查询过程
        • 2.2 一次dns解析过程
    • 四、正向解析
      • 1、数据库文件格式
        • 1.1 记录类型
        • 1.2 字段:描述了这列数据的作用
      • 2、内网搭建dns服务器
        • 2.1 命令格式
        • 2.2 内网搭建dns服务器(图文详解)
    • 五、主从复制
      • 1、配置环境
        • 1.1 命令格式
        • 1.2 主从复制命令(图文详解)

DNS域名解析协议

一、DNS系统的作用

1、DNS的定义

  • 将域名转化成ip地址,实现访问域名等于访问ip地址(域名方便记忆,访问内网,如:www.baidu.com)
  • 一个dns服务器只管自己范围内的解析

2、DNS域名解析

2.1 正向解析
  • 根据域名查找对应的IP地址
2.2 反向解析
  • 根据IP地址查找对应的域名

​ 在日常生活中人们习惯使用域名访问服务器,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一一个完整域名只可以对应一个ip地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。

3、DNS域名结构

www.baidu.com

  • . 根域
  • .com 顶级域,一级域
  • .baidu 二级域
  • www 主机名
  1. 根的dns服务器只能解析:主机名+根域
  2. 一级域的dns服务器只能解析:主机名+一级域+根域
  3. 二级域的dns服务器只能解析:主机名+二级域+一级域+根域

二、DNS服务器类型

1、主域名服务器

  • 管理和维护所负责解析的域内解析库的服务器

2、从域名服务器

  • 从主服务器或从服务器"复制"(区域传输)解析库副本

    序列号:解析库版本号,主服务器解析库变化时,其序列递增

    刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔

    重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

    过期时长:从服务器联系不到主服务器时,多久后停止服务

    通知机制:主服务器解析库发生变化时,会主动通知从服务器

3、缓存域名服务器

  • 只提供域名解析结果的缓存功能,目的在于提高查询速度和效率, 但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定其他 DNS 服务器作为解析来源

4、权威dns服务器

  • 最后解析成功的服务器为权威服务器

三、DNS查询类型及原理

1、查询方式

1.1 递归查询

一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后, 若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)

1.2 迭代查询

一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)

总结:递归和迭代都可以得到结果

  • 递归:询问一次
  • 迭代:询问多次

2、DNS查询原理过程

2.1 正向解析查询过程
  1. 先查本机的缓存记录

  2. 查询hosts文件

  3. 查询dns域名服务器,交给dns域名服务器处理

    以上过程成为递归查询:我要一个答案你直接会给我结果

  4. 这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
    求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
    求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
    求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
    本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端

2.2 一次dns解析过程

以访问www.baidu.com服务器为例:

  1. 先看本机的 /etc/hosts文件,如果有直接访问,如果没有就去找你设置的缓存dns服务器

  2. 如果缓存dns服务器有,直接反馈结果(递归),如果没有就需要迭代查询,直接去找根域服务

  3. 由于根域服务器只能解析根,无法解析www.baidu.com,但是根域服务器让你去找一级域服务器

  4. 一级域发现自己解析不了,让你去找二级域

  5. 二级域发现这台服务器在自己的管理范围内,直接反馈结果给缓存服务器

  6. 缓存服务器再转交给客户

四、正向解析

1、数据库文件格式

image-20240114220702540

1.1 记录类型
  • A:正向解析,将域名地址翻译成ip地址

  • PTR(PoinTeR):反向解析,ip地址解析成域名

  • NS:域名服务器

  • SOA:初始记录,确定谁是主,dns服务器主从之间的一些设置

  • PTR:反向解析,ip地址解析为域名地址

  • CNAME:别名记录

1.2 字段:描述了这列数据的作用
  • ttl:生命周期
  • @:域名
  • IN:internet协议
  • SOA:指明记录类型,主从架构
  • master:定义了谁是dns服务器
  • rname.invalid.:邮箱

2、内网搭建dns服务器

  • 软件名:bind(安装包的名字)

  • 服务名:named(程序的名字)

  • dns:

    使用53tcp(主服务与从服务器之间传递消息)

    53udp(解析地址)

  • 安装完软件之后,要找到以下文件

    1. 配合文件的位置:rpm -qc 安装包的名字
    2. 主程序的位置:rpm -ql 安装包的名字
2.1 命令格式
yum  install bind bind-utils -y    #安装bind软件

vim /etc/named.conf    #编辑配置文件,修改权限和监听地址
//  listen-on port 53 { 127.0.0.1; };
//  allow-query     { localhost; };
#将13、21两行监听地址和允许地址里面的内容修改为any或前面添加//注释掉,释放权限

vim /etc/named.rfc1912.zones    #编辑配置文件(编辑域名)
zone "yyqx.com" {
   type master;
   file "yyqx.com.zone";
};
#第一行表示的是域名
#第二行表示指定服务为主服务器
#第三行表示的是数据库名字/var/named/yyqx.com.zone

cd /var/named/    #切换目录

cp -a named.localhost   yyqx.com.zone     #保留权限复制

vim yyqx.com.zone    #编辑数据库文件,解析记录对应关系
$TTL 1D
@       IN SOA  master  rname.invalid (
                           0       ; serial    #更新序列号,可以是10位以内的整数(数字只能往大调)
                           1D      ; refresh    #刷新时间,重新下载地址数据的间隔
                           1H      ; retry    #重试延时,下载失败后的重试间隔
                           1W      ; expire    #失效时间,超过该时间仍无法下载则放弃#
                           3H )    ; minimum    #无效解析记录的生存周期
        NS      master            #记录当前区域的DNS服务器的名称
master  A       192.168.10.11
www     A       192.168.10.20
ftp     A       192.168.10.30 

systemctl  start  named    #开启服务

vim /etc/sysconfig/network-scripts/ifcfg-ens33     #编辑配置文件
DNS1=192.168.10.11    #将dns地址改为192.168.10.11

netstat -ntap |grep 53    #查看named进程

systemctl restart network    #重启网卡

systemctl restart named    #重启服务

host www.yyqx.com    #查看dns域名解析配置

host master.yyqx.com    #查看dns域名解析配置


相关命令:
cat yyqx.com.zone    #查看数据库文件

rpm -qc bind    #查看bind配置文件
/etc/named.conf    #主配置文件

rndc reload    #重新加载DNS服务  

named-checkconf 文件名    #检查文件配置格式(如:named-checkconf /etc/named.conf,不报错就没有问题)

named-checkzone 域名 数据库文件    #检查数据库文件配置(如:named-checkzone yyqx.com /var/named/yyqx.com.zone,不报错就没有问题)
2.2 内网搭建dns服务器(图文详解)

image-20240112144839320

image-20240112145422081

image-20240112154843759

image-20240112153715824

image-20240112161544597

image-20240112160017608

五、主从复制

1、配置环境

  • 主服务器地址:192.168.10.11
  • 从服务器地址:192.168.10.12
1.1 命令格式
##配置之前都要关闭防火墙和中心防护

##主服务器的配置
yum install bind bind-utils -y    #安装bind软件

vim /etc/named.conf    #编辑配置文件,修改权限和监听地址
//  listen-on port 53 { 127.0.0.1; };
//  allow-query     { localhost; };
#将13、21两行监听地址和允许地址里面的内容修改为any或前面添加//注释掉,释放权限

vim /etc/named.rfc1912.zones    #编辑配置文件(编辑域名)
zone "yyqx.com" {
   type master;
   file "yyqx.com.zone";
};
#第一行表示的是域名
#第二行表示指定服务为主服务器
#第三行表示的是数据库名字/var/named/yyqx.com.zone

cd /var/named/    #切换目录

cp -a named.localhost   yyqx.com.zone     #保留权限复制

vim yyqx.com.zone    #编辑数据库文件,解析记录对应关系
$TTL 1D
@       IN SOA  master  rname.invalid (
                           0       ; serial    #更新序列号,可以是10位以内的整数(数字只能往大调)
                           1D      ; refresh    #刷新时间,重新下载地址数据的间隔
                           1H      ; retry    #重试延时,下载失败后的重试间隔
                           1W      ; expire    #失效时间,超过该时间仍无法下载则放弃#
                           3H )    ; minimum    #无效解析记录的生存周期
        NS      master            #记录当前区域的DNS服务器的名称
master  A       192.168.10.11
www     A       192.168.10.20
ftp     A       192.168.10.30 

systemctl  start  named    #开启服务

vim /etc/sysconfig/network-scripts/ifcfg-ens33     #编辑配置文件
DNS1=192.168.10.11    #将dns1地址改为192.168.10.11
DNS2=192.168.10.12    #将dns2地址改为192.168.10.12

systemctl restart network    #重启网卡

cat /etc/resolv.conf    #查看修改的dns地址是否生效

host www.yyqx.com    #查看dns域名解析配置

dig www.yyqx.com    #查看dns域名解析配置(dig命令查看的更全面,可以看到由哪个dns地址解析)

##从服务器的配置
yum install bind bind-utils -y    #从服务器安装bind软件

vim /etc/sysconfig/network-scripts/ifcfg-ens33     #编辑配置文件
DNS1=192.168.10.11    #将dns1地址改为192.168.10.11
DNS2=192.168.10.12    #将dns2地址改为192.168.10.12

systemctl restart network    #重启网卡

cat /etc/resolv.conf    #查看修改的dns地址是否生效

vim /etc/named.conf    #编辑配置文件,修改权限和监听地址
//  listen-on port 53 { 127.0.0.1; };
//  allow-query     { localhost; };
#将13、21两行监听地址和允许地址里面的内容修改为any或前面添加//注释掉,释放权限

vim /etc/named.rfc1912.zones    #编辑配置文件(编辑域名)
zone "yyqx.com" {
   type slave;
   file "slave/yyqx.com.zone";
   master { 192.168.10.11; }
};
#第一行表示的是域名
#第二行表示指定服务为从服务器
#第三行表示的是数据库名字/var/named/slaves/yyqx.com.zone
#第三行表示指定主服务器为192.168.10.11

systemctl  start  named    #开启服务

ll /var/named/slaves    #查看从配置文件

dig www.yyqx.com    #查看dns域名解析配置(可以看到由哪个dns地址解析)

##验证
systemctl stop named    #关闭主服务器的named

dig www.yyqx.com    #查看dns域名解析(使用从服务器的dns地址解析)
1.2 主从复制命令(图文详解)
  • 主服务器配置

image-20240113150747971

image-20240113151104668

image-20240113152412375

image-20240113153122811

image-20240113153559738

image-20240113154119631

  • 从服务器配置

image-20240113150648236

image-20240113154417147

image-20240114192622450

image-20240113151348884

image-20240112171900450

image-20240114213537880

  • 验证

image-20240114213744619

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

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

相关文章

墙地砖外形检测的技术方案-图像增强

基础理论 本例中使用漫射场光源,在采集图像的过程中,更容易可能会受环境中光源照射不足的可能性,导致采集的图像对比度不足,图像视觉效果较暗。可通过直方图均衡化或者直方图规定化。利用直方图规定化进行图像增强。 案例图片 如…

实例分割论文精读:Mask R-CNN

1.摘要 本文提出了一种概念简单、灵活、通用的实例分割方法,该方法在有效地检测图像中的物体同时,为每个物体实例生成一个实例分割模板,添加了一个分支,用于预测一个对象遮罩,与现有的分支并行,用于边界框…

node各个版本的下载地址

下载地址: https://nodejs.org/dist/ 可以下载多个版本,使用nvm控制切换(需要先安装nvm再安装node) nvm下载地址(访问的是github,请科学上网,下载后解压安装exe即可):h…

【leetcode题解C++】54.螺旋矩阵I and 59.螺旋矩阵II

54.螺旋矩阵I 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:m…

通俗易懂实现功能强大的实战项目 springboot+java+vue+mysql 汽车租赁管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

如何在免费云Colab上使用扩散模型生成图片?

前言 在人工智能技术的迅猛发展下,内容生成领域也迎来了一系列创新的突破。其中,使用扩散模型(如Stable Diffusion)从文字生成图片的AI技术备受瞩目。这一技术的出现,为我们创造栩栩如生的图像提供了全新的可能性。本…

ceph、gluster、longhorn选型对比

Ceph Ceph是一个分布式的存储系统,可以在统一的系统中提供唯一的对象、块和文件存储。 名词解释: RADOS: 由自我修复、自我管理、智能存储节点组成的可靠、自主、分布式对象存储LIBRADOS: 一个允许应用程序直接访问 RADO 的库&…

机器学习 | 无监督聚类K-means和混合高斯模型

机器学习 | 无监督聚类K-means和混合高斯模型 1. 实验目的 实现一个K-means算法和混合高斯模型,并用EM算法估计模型中的参数。 2. 实验内容 用高斯分布产生 k k k个高斯分布的数据(不同均值和方差)(其中参数自己设定&#xff…

网络分流规则

现在的网络是越来越复杂。 有必要进行分流。 有一些geosite.dat是已经整理好的,包含许多的网站的分类: 分流规则: route规则 主要是: {"type": "field","outboundTag": "direct","domain&quo…

【Windows】你不能访问此共享文件夹,因为你的组织安全策略...解决方法

WinR键打开运行窗口,输入gpedit.msc进入本地组策略编辑器。 找到计算机配置,然后点击管理模板,找到网络,然后点击lanman工作站,将右侧窗口中的启用不安全的来吧登录开启就解决了 设置为已启用,应用后确定&a…

定时器--JAVA

定时器是软件开发中的一个重要组件,类似于一个"闹钟"当达到一个设定的时间之后,就执行某个指定好的代码(任务)。 Timer JAVA标准库中已经为我们实现了一个定时器,我们直接new就行了。 Timer timer new Timer(); Timer类中最重要的一个方法…

Fine-tuning:个性化AI的妙术

随着人工智能(AI)技术的迅猛发展,Fine-tuning作为一项重要而神奇的技术崭露头角。Fine-tuning俗称“微调技术。其本质上是对已有模型进行能力的迁移学习扩展,由于重新训练神经网络模型的成本太高,所以使用微调技术可以…

GZ075 云计算应用赛题第8套

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷8 某企业根据自身业务需求,实施数字化转型,规划和建设数字化平台,平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”,拟采用开源OpenSt…

MySQL——深入数据库原理(事务及锁)

文章目录 锁行级锁共享 (S) 锁排他 (X) 锁间隙锁 表级锁意向锁自增锁Lock Table/DDL 事务ACID 原则1. 原子性 A2. 一致性 C3. 隔离性 I4. 持久性 D 隔离级别1. READ UNCOMMITTED(未提交读)2. READ COMMITTED(提交读)3. REPEATABLE…

强化学习应用(五):基于Q-learning的物流配送路径规划研究(提供Python代码)

一、Q-learning算法简介 Q-learning是一种强化学习算法,用于解决基于马尔可夫决策过程(MDP)的问题。它通过学习一个值函数来指导智能体在环境中做出决策,以最大化累积奖励。 Q-learning算法的核心思想是使用一个Q值函数来估计每…

《计算思维导论》笔记:10.2 什么是数据库与数据库系统?

《大学计算机—计算思维导论》(战德臣 哈尔滨工业大学) 《10.2 什么是数据库与数据库系统?》 数据库 简单来讲,数据库就是相互有关联关系的数据的集合。 一个表聚集了具有相同结构类型的若干个对象一行数据反映了某一对象的相关…

【Python数据分析系列】实现txt文件与列表(list)相互读写转换(源码+案例)

这是Python数据分析系列原创文章,我的第199篇原创文章。 一、问题 平时在做数据分析或者程序开发的时候,需要将中间的一些结果或最后的处理结果保存下来,比如保存为txt格式的文本文件,这就涉及列表与txt之间的一种读取和写入操作…

【python】11.文件和异常

文件和异常 实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大…

《WebKit 技术内幕》之一: 浏览器和浏览器内核

第一章 浏览器和浏览器内核 浏览器的内核是浏览器的最核心的部件。 1.浏览器 1.1 浏览器发展简介 80年代后期90年代初期:由Berners-Lee 发明,诞生了世界上第一个浏览器 WorldWideWeb,后改名为 Nexus;并于1991年公布源代码&…

《2023年终总结》

笔者来回顾一下2023年的个人成长。 2023年总的来说,工作和生活都相对比较顺利。 工作上领导给予了肯定的评价,升职加薪,对我的鼓舞很大; 生活上和女朋友的感情越来越好,生气频率降低,也能相互理解&#xf…