浅谈DNS基础知识


DNS简介

  • DNS(Domain Name System,域名系统),是一个分布式的域名解析系统,服务于应用层协议,实现从域名到IP以及名IP到域名的双向解析。
  • DNS运行在UDP协议之上,端口是53。
  • DNS的分布式数据库是以域名为索引的,每个域名实际上就是很大的逆向树中路径,这颗逆向树中路径又可以成为域名空间(domain name space),其最大深度不能超过127层,每个节点都有一个可以长达63个字符的文本标号,而且域名总长度不能超过253个字符,其组织结构如下:
    在这里插入图片描述

DNS解析

按查询类型分为:递归解析和迭代解析

  • 递归解析:客户端向所在网络DNS服务器发起请求,DNS服务器发回解析结果的过程

  • 迭代解析:当某个DNS服务器无法解析客户端的请求时,从根域名服务器开始,向每层DNS服务器发出请求,并接收每层DNS服务器的查询结果,直至找到权威DNS服务器(存储主机准确IP地址的服务器)的过程
    在这里插入图片描述
    在这里插入图片描述

  • 递归:客户端只发一次请求,要求对方给出最终结果。

  • 迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果。

  • 授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答。
    从递归和迭代查询可以看出:

  • 客户端-本地dns服务端:这部分属于递归查询。

  • 本地dns服务端—外网:这部分属于迭代查询。

  • 递归查询时,返回的结果只有两种:查询成功或查询失败.

  • 迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址.

按解析方向解析:

  • FQDN(Fully Qualified Domain Name):完全合格域名,主机+全域名路径,逻辑上能够准确表达主机的位置
    • 正向解析:FQDN解析为IP
    • 反向解析:IP解析为FQDN
    • 正向解析和反向解析是两个不同的名称空间,两个不同的解析树

DNS解析过程

  • 1.客户端先检查本地缓存和hosts文件,如果有直接返回结果
  • 2.如果没有缓存就向DNS服务器发起请求解析
  • 3.DNS服务器收到请求后先检查本地缓存,如果查到缓存就直接返回结果
  • 4.如果没有查到,将请求发送给DNS根服务器请求查询,从跟域找到顶级域,从顶级域找到二级域,从二级域找到三级域,直到最终的IP地址,然后DNS服务器将结果缓存并将结果返回给客户机。
  • 5.如果没有找到结果就返回错误。
    在这里插入图片描述

DNS服务器类型

DNS服务器的类型:

  • 主DNS服务器: 做域名的修改变更,master身份

  • 从DNS服务器: 是master的slave,并向外提供DNS查询服务

  • 缓存DNS服务器: 本地没有zone解析记录,采用递归方式转发客户端查询请求,并返回结果给客户端,同时缓存查询回来的结果,也叫递归服务器

  • 转发器: 本地没有zone解析记录,将用户请求转发给别的NDS服务器并得到结果后再返回给客户端,并且自身不缓存结果,也就是每一次客户端请求都是一个完整的解析过程

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

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

    • 序列号:解析库版本号,主服务器解析库变化时,其序列递增
    • 刷新时间间隔:从服务器从主服务器请求同步解析的时间间隔
    • 重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔
    • 过期时长:从服务器联系不到主服务器时,多久后停止服务
  • “通知”机制:主服务器解析库发生变化时,会主动通知从服务器

  • 主从服务器解析库更新机制:Push和Pull

    • Push:推送,主服务器解析库发生变化时,主动通知从服务器更新
    • Pull:拉取,从服务器按照设置每隔一定时间主动同步主服务器的解析库

DNS资源记录

  • 区域解析库:由众多RR组成:
    • 资源记录:Resource Record, RR
    • 记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

DNS记录类型

  • SOA:(Start Of Authority)记录叫做起始授权机构,就是谁对这个区域有修改权利,是必须要有的一段dns做备注说明的文本,一般与ns保持一致

  • NS:(Name Server’)用来指定该域名由哪个DNS服务器来进行解析

  • MX:(Mail Exchanger)邮件记录,有优先级,值越小级别越高

  • A:(Address)解析域名到IP的记录,这是用的最多的一种解析方式

  • AAAA:IP v6的域名到IP的解析方式

  • PTR:从IP解析到域名,一般说为反向记录(对比A记录)

  • CNAME:映射到别的域名,用于域名切换

资源记录定义的格式

  • 语法:name [TTL] IN rr_type value
  • 注意:
    1. TTL可从全局继承,如:$TTL 1d
    2. 使用 “@” 符号可用于引用当前区域的名字
    3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
    4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

SOA记录

  • name:当前域名,可用"@"代替
  • value:包含多部分内容
    (1) 当前区域的主DNS服务器的FQDN(无命名要求,只要和相应的A记录匹配即可)
    (2) 当前区域管理员的邮箱地址;但地址中不能使用"@“符号,一般用”."替换,例如admin.stduylinux.xyz.
    (3) 主从服务器区域传输相关定义,否定结果缓存统一的TTL
  • 示例如下
studylinux.xyz. 86400 IN SOA ns.studylinux.xyz. nsadmin.stduylinux.xyz. (
2015042201 ;序列号
2H     ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
 )

NS记录

  • name: 当前区域的名字 可用"@"代替,常省略
  • value: 当前区域的某DNS服务器的名字,例如ns.studylinux.xyz.
  • 注意:
    1. 相邻的两个资源记录的name相同时,后续的可省略
    2. 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
    3. 一个区域可以有多个NS记录
  • 范例:
stuylinux.xyz. IN NS     ns1.studylinux.xyz.
stuylinux.xyz. IN NS     ns2.studylinux.xyz.

MX记录

  • name: 当前区域的名字 可用"@"代替,常省略
  • value: 当前区域的某邮件服务器(smtp服务器)的主机名
  • 注意:
    1. 一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
    2. 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
  • 范例:

studylinux.xyz. IN MX 10 mx1.studylinux.xyz.
                   MX 20 mx2.studylinux.xyz.

A记录

  • name: 某主机的FQDN(完整域名),例如:www.stuydlinux.xyz.

  • value: 主机名对应主机的IP地址

  • 特殊写法:
    $GENERATE 1-254 HOST$ A 1.2.3.$:按照序号排列规律的FQDN与IP的对应关系
    *.stuylinux.xyz. IN A 5.5.5.5:泛域名解析,当用户输错地址时,统一解析至某个地址
    studylinux.xyz. IN A 6.6.6.6:当用户没有输入www主机名时解析至地址

  • AAAA记录与A记录相似,只是IP地址为IPv6地址

CNAME别名记录

  • name: 别名的FQDN
  • value: 真正名字的FQDN 例如:
www.study.xyz. IN CHAME webserv.studylinux.xyz.

PTR记录

  • name:特定格式IP+特定后缀
    • IP地址反过来写:如1.2.3.4写作4.3.2.1
    • 特定后缀:in-addr.arpa.
    • 完整写法:4.3.2.1.in-addr.arpa.
    • 注意:网络地址及后缀可省略;主机地址依然需要反着写
  • value:FQDN

子域授权

  • 每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权,类似根域授权tld
  • glue record:粘合记录,父域授权子域的记录
    范例:
.com. IN NS ns1.com.
.com. IN  NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
# magedu.org. 在.com的名称服务器上,解析库中添加资源记录
magedu.org. IN NS ns1.magedu.org.
magedu.org. IN NS ns2.magedu.org.
magedu.org. IN NS ns3.magedu.org.
ns1.magedu.org. IN A 3.3.3.1
ns2.magedu.org. IN A 3.3.3.2
ns3.magedu.org. IN A 3.3.3.3

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值