Linux-DNS学习记录01-安装部署

目录

基础概念

什么是DNS(Domain Name System)?

什么是域名(Domain Name)?

什么是FQDN? 

什么是名称解析? 

基础术语 

记录类型

什么是RR(Resource Record)资源记录? 

DNS服务介绍

DNS域名解析查询方式分类


基础概念

什么是DNS(Domain Name System)?

 DNS即域名名称系统(), 它使用层次结构的命名系统形成一个分布式数据库系统, 能够使人更方便的访问互联网
DNS 是互联网的基础设施类的服务、这是一种协议、协议最后是要实现的、协议实现的软件很多( 例如 Bind、CoreDNS) 

DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS 名称时,该服务可以将此名称解析为与之相关的其他信息,如 IP 地址。

DNS 采用C/S架构服务器端主要工作在UDP协议端口53,当然也可以在TCP协议端口53之上。

 应用程序通常将 DNS 解析委派给操作系统的 DNS Resolver 来执行,程序员对它几乎无感知。

什么是域名(Domain Name)?

是一串用点分割的字符,是互联网某台或者某组计算机的名称,使用者更好方便访问网页,而不需去记住一长串的IP地址字符

使用域名好处总结:

  1. 方便人类记忆
  2. 更换机器IP地址后不需要改变硬编码在应用的域名,只需要更改解析即可。
  3. 便于实现负载均衡,例如一个域名可以对应多个IP。
  4. 便于实现虚拟主机名进行访问同一个地址的多个应用,例如Nginx的代理。

Tips: 域名的购买与使用流程(此处忽略了我大天朝的特殊国情):

  1. 你在某域名提供商处购买了一个域名 weiyigeek.top
  2. 域名提供商向 .top 对应的顶级域名服务器中插入一条以上的 NS 记录,指向它自己的次级 DNS 服务器,如 dns25.hichina.com.
  3. 阿里云会向 TLD 中插入几条 NS 记录,指向阿里云的次级 DNS 服务器(如 alidns.com - 223.6.6.6)。
  4. 你在该域名提供商的 DNS 管理界面中添加 A 记录,值为你的服务器 IP。
  5. OK 现在 ping 一下 weiyigeek.top,就会发现它已经解析到你自己的服务器了。

Tips: 了解各种域名状态的含义,有助于明白域名安全情况、不能正常使用的原因等,以便及时采取相应措施:

        新注册的域名可能出现以下状态:

  1. addPeriod : 注册局设置域名新注册期(域名新注册 5 天内会出现的状态,不影响域名使用,5 天后自动解除 - 添加句点)。
  2. ok : 普通状态(可正常使用。没有需要立即进行的操作,也没有设置任何保护措施。有其他状态时,OK 状态不显示,但并不代表不正常。 

        出于对域名注册信息的保护,域名在进行某些安全锁定后,会出现以下状态:

  1. clientDeleteProhibited 注册商设置禁止删除(保护域名的一种状态,域名不能被删除)。
  2. serverdeleteProhibited 注册局设置禁止删除(保护域名的一种状态,域名不能被删除)。
  3. clientUpdateProhibited 注册商设置禁止更新(域名信息,包括注册人/管理联系人/技术联系人/付费联系人/DNS 等不能被修改,但可设置或修改解析记录)。
  4. serverUpdateProhibited 注册局设置禁止更新(域名信息,包括注册人/管理联系人/技术联系人/付费联系人/DNS 等不能被修改,但可设置或修改解析记录)。
  5. clientTransferProhibited 注册商设置禁止转移(保护域名的一种状态,域名不能转移注册商)。
  6. serverTransferProhibited 注册局设置禁止转移(保护域名的一种状态,域名不能转移注册商。有的域名新注册及转移注册商 60 天内会被注册局设置成该状态,60 天后自动解除;有的则为域名涉及仲裁或诉讼案被注册局设置,仲裁或诉讼案结束会被解除)。

        其他禁止解析、禁止续费的状态:

  1. pendingVerification 注册信息审核期(该域名注册后未进行实名审核,需尽早在域名付费后 5 天内提交资料审核,5 天后仍未实名审核的,将进入 ServerHold 状态)。
  2. clientHold 注册商设置暂停解析(处于该状态域名解析暂停,需联系注册商解除该状态)。
  3. serverHold 注册局设置暂停解析(处于该状态域名解析暂停,.cn 国内中英文域名注册成功后未通过实名审核时多出现该种状态,需在域名有效期内完成实名审核后解除)。
  4. inactive 非激活状态(注册时未填写域名 DNS,不能进行解析,需在注册商处设置域名 DNS)。
  5. clientRenewProhibited 注册商或注册局设置禁止续费(域名不能续费,处于该状态通常表示该域名处于仲裁或法院争议期,需联系注册商确认原因)。
  6. serverRenewProhibited
  7. pendingTransfer 注册局设置转移过程中(域名正在转移注册商过程中)。
  8. redemptionPeriod 注册局设置赎回期(域名处于赎回期,可联系注册商高价赎回)。
  9. pendingDelete 注册局设置待删除/赎回期(对于国际域名,该状态表示域名已过赎回期等待被删除,删除后开放重新注册;对于国内域名,该状态表示域名处于赎回期,可联系注册商高价赎回)。  

Tips: 当前每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

什么是FQDN? 

FQDN( ) 完全限定域名,它是使用DNS的树状层级结构的完全路径域名来表示一个准确位置对应的主机。

例如域名大致分类: 

        组织域:.com、.org、.mil、.gov、.edu、.net、
        国家域:.cn、.hk、.tw、.us、.jp、.ir、.uk
        反向域:.in-addr.arpa

Tips : DNS提供和的功能。

什么是名称解析? 

所谓名称解析的过程就是某个应用程序。
简单的说: 它可以将一个域名(URL)解析到对应的IP地址上,从而能访问该IP地址下机器提供的相关应用, 所以几乎每个Internet连接都以DNS查找开始。
例如,多数用户喜欢使用友好的名称(如 debian.linuxsir.org)来查找计算机,如网络上的邮件服务器或 Web 服务器。友好名称更容易了解和记住。但是计算机使用数字地址在网络上进行通讯。为更容易地使用网络资源,DNS 等命名系统提供了一种方法,将计算机或服务的用户友好名称映射为数字地址。

# 通过ping命令进行查看域名对应IP
ping www.weiyigeek.top
正在 Ping www.weiyigeek.top [104.31.80.144] 具有 32 字节的数据:
来自 104.31.80.144 的回复: 字节=32 时间=229ms TTL=50 

基础术语 

  • 主DNS服务器(master):就是一台存储着原始资料的DNS服务器。
  • 从DNS服务器(slave):使用自动更新方式从主DNS服务器同步数据的DNS服务器也叫(辅助DNS服务器)。
  • 缓存服务器(cache):不负责本地解析,采用递归方式转发客户机查询请求,并返回结果给客户机的DNS服务器。同时缓存查询回来的结果,也叫递归服务器。
  • 转发器(forward):这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。
  • hint : 根DNS internet服务器集。
  • 递归查询: 以上客户机和本地DNS服务器直接的查询方式
  • 迭代查询: 本地DNS服务器多次请求重复查询的方式
  • WHOIS: 即域名数据库查询, 一个域名的所有者可以通过查询WHOIS数据库而被找到;对于大多数根域名服务器基本的WHOIS由ICANN维护,而WHOIS的细节则由控制那个域的域注册机构维护。对于240多个国家代码顶级域名(ccTLDs),通常由该域名权威注册机构负责维护WHOIS, 例如:
  1. 中国互联网络信息中心(China Internet Network Information Center)负责 .CN 域名的WHOIS维护
  2. 香港互联网注册管理有限公司(Hong Kong Internet Registration Corporation Limited) 负责 .HK 域名的WHOIS维护
  3. 台湾网络信息中心 (Taiwan Network Information Center) 负责 .TW 域名的WHOIS维护。
  • 域名分层结构(四层):
  1. 根域(Root Zone):所有域名的根。根域名服务器负责解析顶级域名,给出顶级域名的 DNS 服务器地址。它的域名是 "" 空字符串。而它的全限定域名(FQDN)是 . ,因为 FQDN 总是以 . 结尾。
  2. 顶级域():.com .cn 等国际、国家级的域名, 顶级域名服务器,给出次级域名的 DNS 服务器地址, 每个顶级域名都对应各自的服务器,它们之间是完全独立的。例如 .cn 的域名解析仅由 .cn 顶级域名服务器提供。
  3. 次级域(Second Level Domains): 个人/企业能够买到的域名,比如 baidu.com, 每个次级域名都有一到多个权威 DNS 服务器,这些 DNS 服务器会以 NS 记录的形式保存在对应的顶级域名(TLD)服务器中。权威域名服务器则负责给出最终的解析结果:等。
  4. 子域(Sub Domians): *.baidu.com 统统都是 baidu.com 的子域。每一个子域都可以有自己独立的权威 DNS 服务器,这通过在子域中添加 NS 记录实现。 

# (1) 查看全球13个根节点的服务
$ dig -t NS .
# ;; OPT PSEUDOSECTION:
# ; EDNS: version: 0, flags:; udp: 65494
# ;; QUESTION SECTION:
# ;.                              IN      NS
# ;; ANSWER SECTION:
# .                       2483    IN      NS      d.root-servers.net.
# .                       2483    IN      NS      h.root-servers.net.
# .                       2483    IN      NS      c.root-servers.net.
# .                       2483    IN      NS      k.root-servers.net.
# .                       2483    IN      NS      g.root-servers.net.
# .                       2483    IN      NS      l.root-servers.net.
# .                       2483    IN      NS      m.root-servers.net.
# .                       2483    IN      NS      j.root-servers.net.
# .                       2483    IN      NS      f.root-servers.net.
# .                       2483    IN      NS      e.root-servers.net.
# .                       2483    IN      NS      a.root-servers.net.
# .                       2483    IN      NS      b.root-servers.net.
# .                       2483    IN      NS      i.root-servers.net.
# ;; Query time: 4 msec

Tips : 全球有13组DNS根服务器、11台在美国、一组在挪威、一组在日本、DNS服务重兵把守、他的安全性有多重要、一旦被攻击全球都互联网中断、可想而知,目前国际 DNS 系统中已有上千个 TLD,包括中文「.我爱你」甚至藏文域名,详细列表参见 IANA TLD 数据库(http://www.iana.org/domains/root/db) , 除了国际可用的 TLD 还有一类,最常见的比如 ,被广泛用在集群通信中。 

  • 公共 DNS 服务器:缓存了大量的 DNS 记录,有效地降低了上游 DNS 服务器的压力,也加快了网络上的 DNS 查询速度。例如Google 的 8.8.8.8,腾讯 的 114.114.114.114, 阿里 的 233.6.6.6。
  • DNS 泛解析通配符 * : DNS 记录允许使用通配符 *,并且该通配符可匹配任意级数的子域!!!比如 *.example.com 就可以匹配所有的一二三四级域名等等,但是无法匹配 example.com 本身!
  • TTL (): 上面讲了公共 DNS 服务器通过缓存技术,降低了上游 DNS 服务器的压力,也加快了网络上的 DNS 查询速度。可缓存总得有个过期时间吧!为了精确地控制 DNS 记录的过期时间,每条 DNS 记录都要求自定义设置一个时间属性——TTL,单位为秒。任何一条 DNS 缓存,在超过过期时间后都必须丢弃!另外在没超时的时候,DNS 缓存也可以被主动或者被动地刷新。
  • 本地 DNS 服务器:它只在当前局域网内有效,企业常用一般通过 DHCP 或者手动配置的方式,使内网的服务器都默认使用局域网 DNS 服务器进行解析,该服务器可以只解析自己的私有 DNS 域,而将其他 DNS 域的解析 forward 到公网 DNS 解析器去。
  • 私有 DNS 域:它会覆盖掉公网的同名域(如果公网上有这个域的话),它也可以使用公网不存在的 TLD,比如 xxx.local xxx.lan 等,例如 vmware vcenter 就默认使用  作为它的 sso (单点登录)系统的域名。kubernetes 默认使用 作为集群内部域名。 

记录类型

什么是RR(Resource Record)资源记录? 

DNS层级结构中不管是节点还是叶子节点都是资源,对这些资源中的某一个的标识使用一定格式的多字段的一条记录来表示,该条记录就是资源记录RR。 

(1) RR(Resource Record)的组成说明:

  • owner name : 所属名称
  • TTL : 缓存RR的秒数(Time-to-live)到达此数后强制刷新
  • CLASS : 表示一个协议或者一族协议(常用IN表示Internet)
  • TYPE : RR 类型
  • rdATA : 记录数据

(2) RR中常见解析记录类型(type):

  • SOA :区域授权起始记录,区域文件第一条记录,而且一个区域文件只能有一条;
  • NS :名称服务器解析记录,就是一个Bind Server,这个Server不能提供这个域名的解析服务,直接返回NS记录,用户用这条记录请求权威的解析Bind Server,返回解析地址
  • MX :邮件服务器解析记录, 配合A记录进行
  • A :由域名解析出对应的IPv4地址就叫A记录,属于最基本的记录
  • AAAA : IPV6(A记录)可以理解成新一代的 A 记录。以后会用的越来越多的。
  • PTR :逆向解析记录(解析IP为域名)基本上只在设置邮件服务器时才会用到,例如
  • CNAME :别名记录(Canonical name) 记录域名与另一个域名的对应关系由别的域名提供A记录的解析,主要用于给域名起别名
  • TXT : 文本记录主要用于验证域名所属权以及证书申请校验时使用。
  • SRV : SRV 记录用于提供服务发现,看名字也能知道它和 SERVICE 有关。主要用于企业域控(AD)、微服务发现(Kubernetes)等 

例如 SOA 记录格式解析

$TTL 生存周期(单位s)
@ 记录TLL IN SOA MNAME RNAME (
  SERIAL;
  REFRESH;
  RETRY;
  EXPIRE;
  MINIMUM;
)

# SOA的RDATA格式说明
  * MNAME : 授权主机DQDN或者当前区域的名称
  * RNAME : 邮箱地址采用@用.替代
  * SERIAL : 区域传送使用的版本号格式是yyyymmddnn
  * REFRESH : 从服务器去同步主服务器时间建个
  * RETRY : 刷新失败重试时间间隔
  * EXPIRE : 从服务器过期时长
  * TTL : 消极的缓存TTL即否宕答案过期时常

# SOA 记录 @ 取代在/etc/named.conf中指定的域名其中中的数字分别为:序列号、刷新、重试、过期、生存期
  * 序列号:序列号用于DNS数据库文件的版本控制,每当数据被改变,这个序列号就应该被增加
  * 刷新:从服务器向主服务器查询最新数据的间隔周期。每一次检查时从服务器的数据是否需要更改,则根据序列号来判别
  * 重试:一旦从服务器尝试连接主服务器失败,下一次查询主服务器的延迟时间
  * 过期:如果从服务器无法连通主服务器,则在经过此时间后,宣告其数据过期
  * 生存期:服务器回答 '无此域名' 的间隔时间
  * 数字的默认单位为秒,否则:D= 日、H= 小时、W= 周、M= 分钟

示例1: 百度的SOA解析

$TTL 7200    ;# 生存周期(单位s)
@ 579  IN  SOA  dns.baidu.com. sa.baidu.com.  (
  2021041915   ; serial number
  3600          ; refresh 3600s
  1200          ; retry 1200s
  86400         ; expire 1d
  360           ; min TTL 6m
)

primary name server = vip3.alidns.com
responsible mail addr = hostmaster.hichina.com
serial  = 2021041915
refresh = 3600 (1 hour)
retry   = 1200 (20 mins)
expire  = 86400 (1 day)
default TTL = 360 (6 mins)

常用指令说明:

# (1) $TTL 可以在SOA之前使用该指令,给出TTL秒数的32位整数值。
# (2) $ORIGIN 设定域名它必须出现在任何一行省略书写的RR记录前。当一个区域文件第一次被读取时隐含这个命令的值为 <zone_name>.(必须是跟着一个半角句号),如果不设置它就必须在区域文件中书写FQDN。
* 例如: $ORIGIN kernel.org.
* www CNAME web-server  <等同于> www.kernel.org. CNAME web-server.kernel.org.
# (3) @符号等价于$ORIGIN。

示例2: NS/MX/CNAME/A/PTR各个rdATA格式

# 1.7 NS的RDATA格式
# NSDName:DNS的FQDN
baidu.com. 64899 IN NS ns2.baidu.com.
baidu.com. 64899 IN NS ns4.baidu.com.
baidu.com. 64899 IN NS dns.baidu.com.
baidu.com. 64899 IN NS ns7.baidu.com.
baidu.com. 64899 IN NS ns3.baidu.com.

# 1.8 MX的RDATA格式
# PREFERENCE:优先级,越小越高
# EXCHANGE:邮件服务器FQDN
baidu.com. 7200 IN MX 20 jpmx.baidu.com.
baidu.com. 7200 IN MX 20 mx50.baidu.com.
baidu.com. 7200 IN MX 10 mx.n.shifen.com.
baidu.com. 7200 IN MX 20 mx1.baidu.com.

# 1.9 CNAME的RDATA格式
# CNAME:权威名称,FQDN
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com 是正式名称,而 www.baidu.com 是别名

# 2.0 A的RDATA格式
# ADDRESS:IPV4地址
www.baidu.com. 1154 IN CNAME www.a.shifen.com.
www.a.shifen.com. 36 IN A 111.13.100.92
www.a.shifen.com. 36 IN A 111.13.100.91

# 2.1 PTR的RDATA格式(注意地址是反着来的此处为域名对应的地址192.168.100.7)
7.100.in-addr.arpa. IN PTR www.example.com.


# 2.2 SRV的固定格式: 优先级 权重 端口 目标地址
0 5 5060 sipserver.example.com

DNS服务介绍

原理流程
描述: DNS服务器采用分布式数据结构保存着海量的名称,那么用户如何快速的在互联网上访问哪台服务器或者哪些服务器就能找到待解析的数据呢? 

DNS常规解析请求流程:

描述: 客户机发起对的解析请求流程如下:

  1. 客户机首先查看查找本地hosts文件,如果有则返回,否则进行下一步
  2. 客户机查看本地缓存,是否存在本条目的缓存,如果有则直接返回,不再向外发出请求,否则进行下一步,转发。
  3. 将请求转发本地DNS服务器。
  4. 查看域名是否本地解析,是则本地解析返回,否则进行下一步。
  5. 本地DNS服务器首先在缓存中查找,有则返回,无则进行下一步。
  6. 向全球某一个根域服务器发起DNS请求,根域返回org域的地址列表。
  7. 使用某一个org域的IP地址,发起DNS请求,org域返回kernel域服务器地址列表。
  8. 使用某一个kernel域IP地址,发起DNS请求,kernel域返回www.kernel.org主机的IP地址,本地DNS服务收到后,返回给客户机。

DNS域名解析查询方式分类

  1. 递归查询: 以上客户机和本地DNS服务器直接查询的方式(),称为递归查询。
  2. 迭代查询: 本地DNS服务器多次请求重复查询的方式,称为迭代查询。

Tips: 总之 DNS 查询进程分两部分进行:

  1. 名称查询从客户端计算机开始,并传输至解析程序即 DNS 客户端服务程序进行解析。
  2. 不能在本地解析查询时,可根据需要查询 DNS 服务器来解析名称。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TKXS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值