Linux的DNS域名解析服务

目录

本章概要

一、DNS基础

1、DNS是什么?

2、DNS系统服务类型

2.1 主域名服务器

2.2 从域名服务器

2.3 缓存域名服务器

2.4 转发域名服务器

3、DNS使用的协议以及端口号

4、域名体系结构

5、两种查询方式

5.1 递归查询

5.2 迭代查询

5.2 递归和迭代的区别

6、访问百度的流程(重点)

7、网页内容详解(拓展)

二、正向解析实验

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

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

1.3 进入区域配置文件

1.4 区域数据配置文件

1.5 启动服务、关闭防火墙

1.6 测试是否可解析域名

三、总结


本章概要

介绍DNS域名解析服务的原理和使用。

一、DNS基础

1、DNS是什么?

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

DNS的作用:

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

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

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

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

2、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(注意:最前面的一定是主机,左后一个点表示根域,根域通常省略不写。)

4、域名体系结构

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

6、访问百度的流程(重点)

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协议进行传输数据

7、网页内容详解(拓展)

例如: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 :表示该文件的具体位置

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

所以当我们访问一个网页的时候,就是加载对方服务器的一个文件,那么访问的时候出现网页慢该如何解决?

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

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

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

二、正向解析实验

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

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

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

 

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

进入全局配置文件

配置文件内容说明

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代表所有

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

监听端口解释:

①为了开启这个端口,

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

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

 

1.3 进入区域配置文件

进入区域配置文件

 

配置文件说明

zone "." IN {                       #正向解析“. "根区域
        type master;                #类型主服务器
        file "ky20.com.zone";            #区域数据文件为ky20.com.zone,对应查找。
        allow-update {none; };      #定义是否更新其它从服务器,none表示无从设备更新,有其它服务器可以设置其它服务器的ip地址。
};

首先选中正向还是反向解析,然后设置需要解析的域名,定义主服务器,定义区域数据文件的文件名(跟上面函数类似),是否允许其它主机从这进行更新数据。

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

1.4 区域数据配置文件

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

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

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

 

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

$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的映射,以及各种主机名所对应的关系(配置的时候注意下面的点)

 

1.5 启动服务、关闭防火墙

1.6 测试是否可解析域名

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

然后进行解析域名

三、总结

DNS就是一个域名解析服务

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

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

域名的结构

比如www.baidu.com.cn.

从 右往左看:

  • . 表示根域。

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

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

  • baidu :表示子域。

  • www :表示主机名。

域名解析过程

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

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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值