• DNS域名解析服务


    一、DNS基础
    1、DNS是什么?
    DNS域名系统 (Domain Name System 缩写为:DNS)是因特网的一项核心服务,它作为可以将 域名 和 IP地址 相互映射的一个分布式数据库,能够使人更加方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

    DNS的作用:

    正向解析: 根据域名查找对应的IP地址(A记录)

    反向解析: 根据IP地址查找对应的域名(反垃圾邮件的验证)(P记录)

    分离解析: 同一个dns服务器,同一个域名情况下,不同网段进行访问会解析出不同的IP地址。

    注意:
    反向解析: ip 解析为 域名 :只能1对1(假如虚拟化的话,可以多对一)
    正向解析:域名 解析为 ip  :可以多对一,ip主机可以设置多台,起到备份冗余作用。

    、DNS系统服务类型
    2.1 主域名服务器
    特定DNS区域的权威服务器,具有唯一性

    负责维护该区域所有 域名->IP地址 的映射记录

    需要自行建立所负责区域的地址数据文件

    解释: 负责维护一个区域的所有域名信息,是特定的所有新的权威信息源,数据可以修改,构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

    2.2 从域名服务器
    也成辅助域名服务器,是对主域名服务器的热备份

    其维护的 域名-> IP地址 记录来源于主域名服务器

    需要从主域名服务器自动同步区域地址数据库

    解释: 当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务,从域名服务器提供的解析结构不是由自己决定的,而是来自主域名服务器。构建从域名服务器时,需要制定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

    2.3 缓存域名服务器
    只提供域名解析结构的缓存功能,目的在于提高查询速度和效率,但没有域名数据库,它从某个远程服务器取得每次域名服务器查询的结构,并将它放在高速缓存中,以后查询相同的信息时用它给予相应,缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息,构建缓存域名服务器时,必须设置根域或指定其它DNS服务器作为解析来源。

    2.4 转发域名服务器
    负责所有非本地域名的本地查询,转发域名服务器接到查询请求后,在其缓存中查找,如果找不到就将请求一次转发到指定的域名服务器,直到查看到结果为止,否则返回无法映射的结果。

    3、DNS使用的协议以及端口号
    DNS的默认端口为53端口,DNS端口分为TCP和UDP

    TCP是用来做区域传送,多用于主从同步

    在一个区中主DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅助DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息。

    解释: 从服务器会同步主服务器的数据。

    UDP是用来做DNS解析的

    域名:通常由一个完全合格域名(FQDN)标识。

    FQDN有严格的命令限制,长度不能超过256个字节,只允许a-z,0-9,A-Z和减号表示。

    FQDN=hostname + DomainName(注意:最前面的一定是主机,左后一个点表示根域,根域通常省略不写。)

    域名体系结构

    DNS整个结构图是树状结构,最顶层称为根域,用点“ . " 表示,相应服务器称为根服务器,整个域名空间的解析权都归根服务器所有。

     

    根域: 位于树状结构最顶层,用“ . ”表示。

    顶级域: 一般代表一种类型的组织机构或国家地区

    二级域: 用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家部门统一管理。

    子域: 二级域下所创建的各级域统称子域,各个组织或用户可以自由申请注册自己的域名。

    主机: 主机位于域名空间最下层,就是一台具体的计算机。

    顶级域和二级域的区别

    顶级域是代表类型的组织或国家地区,二级域属于顶级域之下的域名。

    当我们访问一个网址时,有些网址没有顶级域(国家地区),那么它的二级域就会充当顶级域,如果有的网址有顶级域的话,我们访问该网址时,顶级域也可以不用加上,因为顶级域代表的国家地区,我们在国内访问该网址会默认国家地区。

    而且有一些网址没有向根域申请顶级域(因为网址范围较小,国内够用),那么在根域上也不会有顶级域的对应关系。自然它的二级域就成为了顶级域。

    组织域和地理域(顶级域)

    组织模式顶级域名含义地理模式顶级域名含义
    com商业组织cn中国
    edu教育机构hk香港
    gov政府部门mo澳门
    Mil军事部门tw台湾
    net网络供应商us美国
    org团体组织uk英国
    int国际组织jp日本

    114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。

    8.8.8.8是Google公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用

    223.5.5.5和223.6.6.6:阿里云DNS

    5、两种查询方式
    5.1 递归查询
    递归查询是一种DNS服务器的查询模式,在该模式下DNS服务器接收到客户机请求,必须使用一个准确的查询结构回复客户机,如果DNS服务器本地没有存储查询DNS信息,那么该服务器会询问其它服务器,并将返回结果提交给客户机。

    解释: 就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。

    5.2 迭代查询
    当客户机发送查询请求时,DNS服务器并不是直接回复查询结构,而是告诉客户机另外一台DNS服务器地址,客户机再向这台DNS服务器提交请求,一次循环直到返回查询的结果为止。

    解释: 客户机的其你去需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供它服务器的弟子,而不会帮你请求查询,这与递归查询相反。

    5.2 递归和迭代的区别
    客户端--->本地DNS服务器,这部分属于 递归查询 ,返回的结果只有两种:查询成功或查询失败。

    本地DNS服务器--->外网,这部分属于 迭代查询 ,又称作为重指引,返回的是最佳的查询点或主机地址。

     

    访问百度的流程(重点)
    1、DNS解析(递归解析方式)

    ①首先查看本地缓存是否有【域名-IP地址】映射关系,有的话直接使用,没有进行下一步。

    ②尝试解析/etc/hosts解析文件(DNS解析,本地配置),有的话直接用,没有进行下一步。

    ③通过/etc/resolv.conf配置文件中指定的DNS服务器(代理服务器)的位置,请求解析www.baidu.com 域名和IP的映射关系。

    2、开始进行DNS的迭代解析

    ①首先DNS服务器接收到请求后,向根域服务器请求解析

    ②根域服务器返回给DNS服务器后,向顶级域服务器请求解析

    ③顶级域服务器返回个DNS服务器后,再依次向二级域、子域进行请求解析

    ④直到将www.baidu.com 这个域名全部解析完成,找到对应的IP映射关系,然后返回给DNS服务器

    3、DNS服务器返回给客户端(用户端),此时用户端接收到了www.baidu.com域名与IP的映射关系

    ①保存在本地的缓存中

    ②根据请求的协议类型,向www.baidu.com 服务器进行连接(三次握手建立连接)

    4、建立连接通道后,根据http/https协议进行传输数据

    网页内容详解(拓展)
    例如:https://www.ky20.com./ky20/ky20.html
    https: :表示传输协议

    www.ky20.com. :表示域名,从右往左为根域,顶级域,子域,主机名

    /ky20/ky20.html :表示访问的服务器的路径位置

    (因为在linux中,一个页面就是一个文件,一个文件就有一个路径 ,假设/var/www/html/ky20/ky20/html是该网页的全路径)

    其中 / 指的是网页的站点目录的起始位置(/=/var/www/html),ky20/ky20.html :表示该文件的具体位置

    但是在使用的网页,路径是进行加密的,其中路径中的?(问号)表示页面中有动图。(静态页面:不动界面,没有动图;动态页面:有动图的界面)

    所以当我们访问一个网页的时候,就是加载对方服务器的一个文件,那么访问的时候出现网页慢该如何解决?
    为什么会慢,因为访问网页的时候,服务器是在本地磁盘中读取文件,所以速度较慢,那么可以将文件加载到内存中,可以提高读取速度,假如访问的时候有大量客户进行访问,那么该如何解决?

    ①在我们访问网页服务器的时候,在网页服务器前面会有一个缓存服务器,缓存服务可以分担网页服务的压力

    ②当我们通过网页进行访问时,网页会将服务器记录缓存在本地,下载再访问的时候,速度就会很快。

    正向解析实验

    安装bind服务,查看配置文件

    安装DNS服务,服务名在安装包bind中

    查看配置文件(全局配置文件、区域配置文件、区域数据配置文件)

    全局配置文件配置及文件内容说明

    进入全局配置文件

     

    配置文件内容说明

    vim /etc/named.conf

    options {
      listen-on-v6 poet 53 { 20.0.0.55; };                   #监听53端口,IP地址使用提供服务的本地IP,也可用any代表所有
    #   listen-on-v6 port 53 { : :1; };                      #ipv6行如不使用可以注释掉或者删除
      directory       "/var/named";                          #区域数据文件的默认存放位 置
      dump- file      "/var/ named/data/cache_ dump . db";   #域名缓存数据库文件的位置
      statistics-file "/var/named/data/named stats.txt";     #状态统计文件的位置
      memstatistics-file "/var/named/data/named_ mem_ stats. txt";    #内存统计文件的位置
      allow-query
      { any; };                                              #允许使用本DNS解析服务的网段,也可用any代表所有
     

     修改全局配置文件内容(监听端口地址、允许通过的主机)

     

    监听端口解释:

    ①为了开启这个端口,

    ②主进程会占用这个端口,进行监听,接待请求。

    设置子文件是哪个(写入进去后,该文件内容也会被执行,相当于一个函数被调用的意思是)

     

     

    进入区域配置文件

    进入区域配置文件

     

    配置文件说明

    zone "." IN {                       #正向解析“. "根区域
            type master;                #类型主服务器
            file "ky20.com.zone";            #区域数据文件为ky20.com.zone,对应查找。
            allow-update {none; };      #定义是否更新其它从服务器,none表示无从设备更新,有其它服务器可以设置其它服务器的ip地址。
    };
    首先选中正向还是反向解析,然后设置需要解析的域名,定义主服务器,定义区域数据文件的文件名(跟上面函数类似),是否允许其它主机从这进行更新数据。

    注意:该配置文件可以进行正向解析和反向解析的定义 

     

    区域数据配置文件

    查看以前的区域数据文件的路径位置,进入位置后

    以原区域数据配置文件的为模板,复制一份在本地,并且修改名称为区域配置文件所指定的文件名。

    进入修改后的区域数据配置文件中

     

    区域数据配置文件内容介绍

    $TTL 1D                                       #设置缓存解析结果的有效时间
    @       IN SOA ky20.com. admin.ky20.com. (
                                               0; serial .
                                               1D; refresh
                                               1H; retry
                                               1W; expire
                                               3H ) ; minimum
             NS    ky20.com.                       #记录当前区域的DNS服务器的名称
             A     20.0.0.55                       #记录主机IP地址
    IN   MX  10    mail.ky20.com.                  #MX为邮件交换记录,数字越大优先级越低
    www  IN  A     192.168.100.100                 #记录正向解析www.ky20.com对应的IP
    mail IN  A     192.168.100.100                 #记录正向解析mail.ky20.com对应的IP
    ftp  IN CNAME  www                             #CNAME使用别名,ftp是www的别名
    *    IN   A    192.168.100.10                  #泛域名解析,“*"代表任意主机名
    设置域名和ip的映射,以及各种主机名所对应的关系(配置的时候注意下面的点)、

     启动服务、关闭防火墙

     测试是否可解析域名

    开启另一台虚拟机系统,配置DNS

    然后进行解析域名 

     

    总结
    DNS就是一个域名解析服务

    可以正向解析:将域名解析成ip地址

    也可以反向解析:将ip地址解析成域名

    域名的结构

    比如www.baidu.com.cn.

    从 右往左看:

    . 表示根域。

    cn表示顶级域(部分网址没有,因为它代表过家,大型网址向国外请求才会分配到)。

    com:表示二级域(当前面的顶级域不存在时,它就是顶级域)

    baidu :表示子域。

    www :表示主机名。

    域名解析过程

    主要有递归查找和迭代查找

    递归查询:客户机只要发出解析的请求,递归查询都会返回一个结果,不管是否能查询到。

    迭代查询:客户机发出解析请求,迭代查看不会返回一个结果,而会请求其它服务器,直到最终返回查询结果为止。

  • 相关阅读:
    CachedThreadPool
    信息安全:网络安全漏洞防护技术原理与应用.
    java之异常
    vue2 过滤器 自定义指令
    Linux这么在两个服务器直接传文件?
    进阶JAVA篇- Collcetions 工具类与集合的并发修改异常问题
    HTML图片标签(2) HTML5+CSS3+移动web 前端开发入门笔记(三)
    Linux I2C驱动入门之读取bmp280传感器的ID寄存器的值
    Android触摸屏TP crah 日志 addr2line
    HTML5新增的客户端校验
  • 原文地址:https://blog.csdn.net/m0_69354915/article/details/125839379