1.1 DNS服务概述

DNS(Domain Name System) 是 ”域名系统“ 英文缩写,它所提供的服务是用来将域名转换为 IP 地址或把IP地址转换为域名的工作。

DNS为应用层协议,基于C/S架构,服务器端口号使用情况为,客户端向服务器查询时候用到53/udp,DNS主从复制时用到53/tcp和53/udp。

在互联网中,使用 IP 地址与服务器进行通信根本行不通,原因如下:

  • IP地址不便于记忆;

  • IP 地址会经常变更,所以通过 IP 地址去访问某台机器就会发生问题;

企业内部搭建DNS服务的需求:

  • 1.内网 web 服务,例如: jenkins、jumpserver、wik 等,不适合解析至公网;
  • 2.内网中间件服务 db、mq 等,由于会经常迁移或扩缩容,应该使用域名对外提供,便于维护;
  • 3.服务器都有 hostname , hostname 应该设置为 FQDN ,如何维护主机名和主机的内网 IP 的关系;

1.2 DNS域名结构

由于因特网的用户数量较多,所以因特网域名在命名时采用的是层次树状结构的命名方法。

  • 1.互联网中的域名是有结构有规划的;
  • 2.由于域名进行了分级,在进行域名和IP地址解析时能更容易找到;
  • 3.域名具备全球唯一性;

DNS域名结构如下图:

  • 根域:知道所有顶级域名服务器的域名和地址

    • 全世界只有13组根服务器,其中10台设置在美国,另外的三台设置与英国,瑞典,日本;
  • 顶级域:知道所有顶级域名服务器下注册的所有二级域名的IP地址
    • 顶级域有两种:通用域 (com net gov org edu mil int tech) 域和国家域 (cn,hk、jp) ;
    • 顶级域名由 ICANN (互联网名称与数字地址分配机构)委任的注册机构负责维护;
  • 二级域:负责一个区的域名服务器 (baidu.com)
    • 无需到 ICANN 进行申请,只需要到运行顶级域的注册机构(阿里、腾讯)去申请即可
  • 三级域或主机名:
    • 根据服务器所提供的业务功能,选择配置对应的主机名称解析记录,比如(www、ops)

而域名等级划分时,全称域名的写法为www.baidu.com.<==最后多了个点,倒过来排序

  • 最右边的点[.]:表示根域
  • com:表示顶级域或者一级域(TLD)
  • baidu:表示二级域(SLD)
  • 还可以有三级域名,例如www.bj.baidu.com,最多127级域名
  • www:表示主机名

1.3 DNS解析原理

  • 在根域上有一个DNS服务器,它的数据库存放了下级域DNS服务的IP地址和DNS服务器的名称;
  • 而每个一级域名也有自己的DNS服务器,存放的是其下级域的IP地址和DNS服务器的对应关系;
  • 二级域也维护了各自的DNS服务器,只维护了自己的二级域名;
  • 每个DNS服务器在安装时已经内置了根服务器的地址;

DNS解析过程如下图:

解析过程如下:

  1. 以用户请求www.cnnic.cn域名的IP地址为例,首先客户端会查找本地的hosts文件,如果本地hosts文件中存在域名和IP的对应关系,则直接得到结果,不再向DNS服务器发起请求,linux的hosts文件为/etc/hosts;
  2. 本地hosts文件不存在域名对应关系时客户端会向指定的DNS服务器发起请求,若该DNS服务器由www.cnnic.cn域名的缓存,则直接把缓存返回给客户端;
  3. 若DNS服务器没有缓存,则DNS服务器开始进行迭代查询,首先向根域名服务器发起查询,因为所有的DNS服务器都有根域名服务器的地址;
  4. 根域名服务器会返回顶级域.cn的权威域名服务器的地址,由本地DNS服务器向,cn权威域名服务器发起DNS查询;
  5. .cn权威域名服务器会返回cnnic.cn权威域名服务器的地址,由本地DNS服务器向cnnic.cn权威域名服务器发起DNS查询;
  6. ,cnnic.cn权威域名服务器上有www.cnnic.cn域名对应的IP地址,直接返回给本地DNS服务器;
  7. 本地DNS服务器把查询到的域名和IP对应关系缓存在本地一份,方便其他客户端进行查询,然后把结果返回给客户端,完成DNS查询;

1.3.1 DNS查询类型

在以上的DNS查询过程中,存在两种DNS查询的类型,递归查询和迭代查询:

  • 递归查询

    是指 DNS 服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果 DNS 服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。

    上述查询过程中本地DNS服务器指定的就是递归查询。

  • 迭代查询

    是指 DNS 服务器在收到用户发起的请求时,并不直接回复查询结果,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。

    上述查询过程中根域,顶级域执行的是迭代查询,只是返回下一级域名服务器的地址,并不负责替客户端完成DNS请求。

1.3.2 解析答案

解析答案分为可定答案和否定答案:

  • 肯定答案,又有以下两种:

    • 权威答案:标记为aa,上例中cnnic.cn域名服务器返回是权威答案;
    • 非权威答案:上例中根域名服务器和.cn域名服务器返回的是非权威答案;
  • 否定答案:请求的条目不存在等原因导致无法返回结果

1.4 DNS资源记录类型

在DNS中有常用的集中资源记录类型,分别为A记录,AAAA记录,NS记录,MX记录,SOA记录,PTR记录,CNAME记录等。

  • SOA记录:

    SOA为起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于整个解析库的第一条记录,记录了这个域的相关信息。

  • A记录:

    A 记录可实现将域名解析为 IPV4 地址,也称为正向解析;

    例如将www.baidu.com解析为39.120.29.23;

  • AAAA记录:

    AAAA记录用于实现将域名解析为IPV6地址;

    例如将www.test.com解析为2001::1;

  • NS记录:

    1.客户端查询 DNS 服务,如当前 DNS 无法提供权威解析,则返回一条 NS 记录;

    2.客户端在通过 NS 记录中提供的 DNS 权威服务器进行解析;

    多用于主从DNS场景;

  • MX记录:

    邮件交换器,设定区域中担任邮件服务器的主机,所有要送往那部机器的mail 都要经过mail exchanger 转送。

  • PTR记录:

    PTR记录可以实现IP查找域名,也称为反向解析; IP-->DNS 服务返回域名;

  • CNAME记录:

    当需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加CNAME 记录;

    最常用 CNAME 的场景有 WAF、CDN。

#示例,查询www.baidu.com的IP地址,首先把www.baidu.com解析到一个CNAME别名www.a.shifen.com,然后再返回IP地址
[root@dns01 ~]# dig www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-16.P2.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13507
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.baidu.com. IN A ;; ANSWER SECTION:
www.baidu.com. 912 IN CNAME www.a.shifen.com. <==解析到CANME
www.a.shifen.com. 190 IN A 110.242.68.4
www.a.shifen.com. 190 IN A 110.242.68.3 ;; Query time: 2 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Wed Jul 14 23:01:48 CST 2021
;; MSG SIZE rcvd: 104

DNS(1) -- DNS服务及dns资源类型的更多相关文章

  1. DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置

    DNS服务器:主要介绍DNS的服务原理以及安装及其主从配置 一.DNS简介 1.DNS    DNS是域名系统(Domain Name System)的简称,它是一个将域名和IP相互映射的分布式数据库 ...

  2. NTP服务和DNS服务(week3_day3)--技术流ken

    NTP时间服务器 作用:ntp主要是用于对计算机的时间同步管理操作. 时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响. 部署安装NTP ...

  3. 末学者笔记--NTP服务和DNS服务

    NTP时间服务器 一.概念: 作用:ntp主要是用于对计算机的时间同步管理操作. 时间是对服务器来说是很重要的,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大的影响. 二 ...

  4. linux服务器的所有服务web/dns/dhcp/vsftp-nfs-samba的配置

    nfs是sun开发的 network filesystem 网络文件系统,相当于win的映射网络驱动器, 可以将一台nfs服务器上的目录"挂载"到本地机器上的 一个 本地目录 一样 ...

  5. NTP服务和DNS服务

    1.NTP时间服务器 作用:NTP主要用于对计算机的时间同步管理操作 1.1  NTP部署 服务端:192.168.16.6 客户端:192.168.16.7 [root@localhost ~]# ...

  6. DNS提供的服务

    DNS提供的服务 DNS是:1.一个由分层的DNS服务器实现的分布式数据库:2. 一个使主机能够查询分布式数据库的应用协议.DNS协议运行在UDP上,使用53号端口. 与http,FTP,SMTP协议 ...

  7. Linux服务之DNS服务篇

    一.DNS服务概述 DNS(Domain Name System)域名系统,在TCP/IP 网络中有非常重要的地位,能够提供域名与IP地址的解析服务. DNS 是一个分布式数据库,命名系统采用层次的逻 ...

  8. 基于Linux系统的网络服务——高速缓存DNS及企业级域名解析服务

    1.DNS域名系统 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数 ...

  9. Windows2008R2安装DNS和SQLServer200r2服务 (9.18第七天)

    原文网址:https://www.cnblogs.com/yankaohaitaiwei/p/11538205.html 二.IIS搭建web服务器 1.格式化D盘,一定要选择NTFS!!!不然后面添 ...

  10. Linux基础服务——Bind DNS服务 Part2

    Linux基础服务--Bind DNS服务 Part2 DNS反向解析与区域传送 实验环境延续Part1的实验环境. 反向区域配置 正向解析是域名到IP地址的映射,反向解析则是IP地址到域名的解析,在 ...

随机推荐

  1. java实战字符串3:反转每对括号间的子串,多个括号嵌套时,逐层反转

    题目描述 给出一个字符串 s(仅含有小写英文字母和括号).请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果. 注意,您的结果中 不应 包含任何括号. 解答要求时间限制:10 ...

  2. #ST表,并查集#洛谷 3295 [SCOI2016]萌萌哒

    题目 分析 可以发现除了最高位只能填 1 到 9,其它位置还可以填 0. 直接用并查集找连通块会超时,如果将这些区间的合并可以下传到子区间的合并那样就可以了. 考虑ST表的逆操作,合并时直接合并两个极 ...

  3. 在DAYU200上实现OpenHarmony视频播放器

    内容简介 本文介绍了如何使用ArkUI框架提供的video组件,实现一个具有简易播放器.通过VideoController控制器来控制倍速.全屏.进度调节等功能. 由于使用本地视频文件会影响App的包 ...

  4. 【FAQ】视频编辑服务常见问题及解答

    Q1问题描述 1. 访问贴纸等素材的时候提示"网络异常,请重试"怎么办? 2. 使用AI能力时,提示"errorCode:20124 errorMsg:Method no ...

  5. Linux系统奇安信浏览器报错跨域:the resource is in more-private address space 'local'

    报错: Access to XMLHttpRequest at "123" from origin "456" has been blocked by CORS ...

  6. Thymeleaf SSTI模板注入分析

    环境搭建 先搭建一个SpringMVC项目,参考这篇文章,或者参考我以前的spring内存马分析那篇文章 https://blog.csdn.net/weixin_65287123/article/d ...

  7. 手把手教你基于gin从零搭建一个属于你自己的go项目(一)

    一.为什么写这个,适合什么人看 原因 因为自己想写点小玩意,本来是打算用egg.js来写服务端的,后来发现了个更好玩的midway,但是后来发现自己手上的服务器都是一核2g的小水管,用node有点难顶 ...

  8. sql 语句系列(闰年)[八百章之第十九章]

    前言 判断闰年还是挺有用的. mysql select DAY(LAST_DAY(DATE_ADD(CURRENT_DATE,INTERVAL -DAYOFYEAR(CURRENT_DATE)+1+3 ...

  9. IIS 部署到服务器上出现数据库连接失败

    前言 以前遇到过本地运行没有任何问题,部署到服务器上却出现数据库连接失败. 正文 排查顺序: 数据库权限 我们的sql的账号决定了我们的权限,那么要观察下是否我们的账号有该数据库的读写权限,先把权限归 ...

  10. vue使用 elementUI中el-upload的遇到的问题总结

    使用场景,使用el-upload上传文件,选择文件后不立即上传到服务器上,点击提交按钮时与其他form表单数据一起提交,类似的需求,相信有很多小伙伴遇到,可能也会遇到跟我一起的问题,在这里记录一下 & ...