IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 深入浅出DNS -> 正文阅读

[系统运维]深入浅出DNS

深入浅出DNS

概念

DNS(Domain Name System)是一个分布式分级管理的数据库。他存储的是hostname与IP的对应关系、邮件路由信息以及其他互联网应用数据等等。

Domain Name

说到DNS就离不开域名(Domain Name),因为DNS主要解析以及存储的对象是域名相关的数据。域名是一种树状结构,形如:www.baidu.com的多级文本构成,其中不同层级用"."来进行区分。同时域名的层级是从右往左递增的。例如上面的www.baidu.com从右往左开始

  • 根域名是".",我们所看到的域名尾部并没有显示".",但所有的域名的根域名都是".",他是域名树的根。

  • 顶级域名是:com

    • 顶级域名又分三类:国家和地区域名;通用顶级域名;新顶级域名;
    • 国家和地区域名:用于国家、地区等区域性类型。例如cn表示中国,us表示美国等等。
    • 通用顶级域名:com就是常见的通用域名,其一般表示工商企业类型,而net表示网络提供商,例如csdn.net,非营利组织的一般都是org类型。
    • 新顶级域名,就比较杂例如新出来的top,xyz,info等比较具有个性的域名。
  • 二级域名是:baidu,一般是由公司、组织或者个人的名称组成。

  • 子域名:www,子域名一般用于网站名称,例如www一般比用于表示网站的主页,而例如 blog.csdn.net中的blog就能一目了然的表示csdn这个网站下的blog业务模块。
    域名树

DNS的构成

ACL(Access Control Lists)

ACL顾名思义就是访问控制列表,通过配置ACL来运行或者禁止对应的IP或者望断访问DNS。如果被禁止或者在允许访问范围外的IP请求dns解析,则会返回serverfail,无法进行dns解析。

视图(View)

视图作为DNS的一个重要组成,起到一个隔离作用,即根据配置不同的视图以及权威区,并且通过不通的视图选择方式返回相应的解析结果。例如下图的客户端IP为:192.168.1.66,请求dns服务器,此时dns配置了两个视图分别是view1以及view2,因为view1的优先级别更高,因此会优先匹配view1,当没有匹配到view1时,则会去匹配第二个视图view2,而此时view2的匹配列表里包含了子网192.168.1.0/24,是包含192.168.1.66的,因此匹配view2,进入视图。
view

常用的视图选择方式有两种:

  • 根据请求源IP匹配。通过配置视图的match-clients(子网|IP),首先视图是有优先级,根据IP源匹配视图会根据视图优先级别从高到低进行匹配,如果IP匹配则进入该视图。否则继续往下匹配视图,如果都没找到则进入默认视图。
  • 根据TSIG选择视图。TSIG是一种UDP协议方式直接请求DNS服务器进行通信,例如进行添加、删除权威记录或者请求同步权威记录等操作。但该方式的请求内容必须加密,并且得获取dns服务器配置的key,才可以进行通信,而加密算法一般支持:hmac-md5、hmac-sha1、hmac-sha256、hmac-sha512。

权威区(Authority Zone)

权威区是配置在视图内的域名树的集合,一个权威区代表一个域名树根节点,例如权威区名:zone.com,则该权威区内存的权威记录则军事zone.com的子域名,而权威区内的域名存储方式是基于红黑树实现的域名树。客户端请求域名解析进入视图以后就会查找域名树,按照最佳匹配原则查找域名,如果匹配到则返回权威应答,否则进入下一步——查找缓存。

权威区的类型主要分为两类:master以及slave,一般主区(master)用于存储、更新权威记录,而辅区(slave)则是定期同步主区的资源记录过来,而一般是多个辅区提供对外域名解析服务。

下图则是主辅区同步流程:dns-zone

权威记录(Authority Resource Records)

权威记录是由:owner name(资源的名字)、type(资源类型)、TTL(缓存过期时间)、class(dns协议族,例如IN)、RDATA(资源记录值,不同的资源type资源记录值格式不同)组成。

例如:www.a.shifen.com. 54 IN A 14.215.177.39
就表示一个权威记录响应数据,www.a.shifen.com.是资源名称,54是TTL,IN是class类型,A表示ipv4记录,14.215.177.39就是RDATA资源记录的具体内容。因为这里的资源类型是A,所以RDATA则是ipv4。

  • 常用的资源类型type:

    • A ipv4资源类型,资源格式:

      www.a.shifen.com. 54 IN A 14.215.177.39

    • AAAA ipv6资源类型,资源格式:

      www.google.com. 127 IN AAAA 2001::6810:fb37

    • CNAME 域名指向其他的域名,相当于转发。资源格式:

      www.baidu.com. 10 IN CNAME www.a.shifen.com.

      www.a.shifen.com. 54 IN A 14.215.177.38

    • MX 邮件域名类型,mx比较特别的是在记录前多了一个数值,作为优先级别,值越大,优先级越高:

      163.com. 372 IN MX 10 163mx03.mxmail.netease.com.
      163.com. 372 IN MX 50 163mx00.mxmail.netease.com.

      如上有两条相同的163.com的mx记录,但会优先匹配163mx00.mxmail.netease.com.这条记录,因为他的value为50,拥有更高的优先级别

    • HINFO 表示主机信息,主要用于显示主机的软件硬件以及环境信息。一般用的比较少,值为文本类型格式:

      owner ttl class HINFO "cpu_type os_type“

    • NS 用于指向那个DNS服务器进行解析,也就是解析源头。格式:

      baidu.com. 86400 IN NS ns2.baidu.com.

      baidu.com. 86400 IN NS ns4.baidu.com.

      例如baidu.com的ns记录就是ns2.baidu.com.以及ns4.baidu.com.,表示baidu.com这个权威区所指向的dns服务器,如果是本机则是127.0.0.1,而如果指向到其他服务器,则这里可以填写其他服务器的域名,例如ns2.baidu.com.而该域名的IP为:

      ns2.baidu.com. 68770 IN A 220.181.33.31

    • PTR 用于域名反解析,格式:

      例如我们要发想查询8.8.8.8的域名,则可以输入如下格式:dig 8.8.8.8.in-addr.arpa ptr,返回结果
      8.8.8.8.in-addr.arpa. 7419 IN PTR dns.google.

      因此我们就可以知道dns.google域名所指向的IP为8.8.8.8

      我们验证一下,命令行输入:dig dns.google A

      返回结果如下,证实了8.8.8.8的域名就是dns.google:
      dns.google. 522 IN A 8.8.4.4

      dns.google. 522 IN A 8.8.8.8

    • SOA 记录表示权威区的起点,用于表示该权威区的一些特定信息:

      dns.google. 21600 IN SOA ns1.zdns.google. dns-admin.google.com. 2684362896 21600 3600 1209600 300

      根据上面的记录可以拆解为几个部分:

      • MNAME:即ns1.zdns.google.表示该主权威区的记录
      • RNAME:即dns-admin.google.com.表示本权威区负责人的邮箱地址
      • SERIAL:2684362896表示序列号,每次权威区记录变更该序列号都会递增,并且该序列号是用于主辅区传输校对数据时也会用到。
      • REFRESH:21600表示该权威区刷新的时间间隔
      • RETRY:3600表示刷新权威区失败后的重试时间间隔
      • EXPIRE:1209600表示该权威区最长过期时间
      • MINIMUM:300表示限定该权威区内的资源记录最小的TTL时间
    • TXT 文本资源记录,其值为文本。格式:

      例如我们输入命令:dig dns.google txt

      返回结果如下,可以看出dns.google的txt记录纸有两个:

      dns.google. 900 IN TXT “v=spf1 -all”

      dns.google. 900 IN TXT “https://xkcd.com/1361/”

      这个地址[https://xkcd.com/1361/]是一系列幽默漫画:
      dns-txt

  • 常用的资源分类(class)

    • IN 表示Internet互联网,一般都是IN类型的。
    • CH Chaosnet,是一个LAN口协议,在19世纪70年代创建,目前用途较少。但是在bind的内置区内在使用。
    • HS 也是很少用的class,它是用于共享系统数据信息,例如users、groups、printer等等。
  • TTL:表示该资源在缓存中保留的时间,单位是秒。

DNS如何工作?

dns-flow

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:20:35  更:2021-10-17 12:22:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:07:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码