DNS资源记录类型和请求流程

一个人想着一个人 提交于 2019-12-01 20:04:48

DNS分布均衡(Load balance)的实现

在上级数据库中写两条记录(同一个名字对应对个IP时),DNS会自动将请求基于轮循方式,分给每个DNS服务器

例如:
  第一次将请求给第一个DNS,第二次将请求给第二个DNS,... 依次循环
注:客户端连接第一个主机连接不上时,将请求都给第二个主机,linux还可以给第三个DNS服务器
  第一个找不到时,不会再让第二个DNS、第三个DNS去找(因为根域都找不到)

 

DNS分布式特点

基于授权将功能分散出去,让多个主机分别处理
数据放在多个位置,导致数据在多处存储不一致,数据访问的不确定结果

一致性:任何时候,每个主机返回数据是一致的
分区容错性:DNS,一个主机不在线时,另一个主机允许继续提供服务(分布式系统都应该满足)
结果可用性:DNS,任何时候,无论有多少个主机宕机,都能得到结果(不确定结果)

E.g  DNS域名分布式
    满足分区容错性,结果可用性
    牺牲一致,但最终结果一致

 

缓存定义、作用、多级缓存

缓存:进程内存中维护的一段内存空间
  hash:名称<Domain>-----值<IP>
  查询:O(1)
  失效前,一直都在使用缓存

缓存的作用
  缓存时长:TTL
    长:长时间内,都能快速解析。别人修改无从得知
    短:数据实时一致,服务器压力、负荷大,带宽消耗多
多级缓存
  客户端<程序提供的缓存>------》DNS<本地:提供缓存>-----》迭代得出结果

 

一次完整的解析请求

1)本地主机发起递归,运营商缓存DNS迭代

 

2) 本地主机发起递归,本地缓存DNS迭代

 


 

一、区域解析库:由众多RR组成

资源记录:Resource Record ---RR 详细记录所有主机名和IP对应的关系

  记录类型:A,AAAA,PTR,SOA,NS ,CNAME,MX

SOA:Start Of Authority 起始授权记录-----一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录    在解析库第一条
    只能有一个SOA记录
A:internet Address 作用FQDN--->IP

AAAA :FQDN---> IPv6

PTR:PoinTeR(指针) ,IP --->FQDN

NS : Name Server ---专用于标明当前区域的负责人DNS服务器

CNAME:Canonical Name 别名记录

MX:Mail eXchanger  邮件交换器---标明当前域内用于接收邮件的主机

 

二、资源记录定义的格式:

语法:name [TTL]  IN  RR_TYPE  vlaue

1)TTL: 可从全局继承,解析结果的缓存时长,单位是"s" 秒;IN:internet

2)@ 可用于引用当前区域的名字

3)相邻多个资源记录,name相同时,可以省略name

4)每个NS,MX记录对应一个A记录

 2.1、SOA记录

name-----当前区域的名字(正、反) 例如:"magedu.com."
value-----由多部分组成   当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
    主DNS名或区域名(@)
    当前区域管管理员邮件地址(不能用@,需.替代):linux@magedu.com. -----》linux.magedu.com.
    (主从DNS服务器协调属性及否定答案的统一TTL值)

    (
      serial <=10位 ; 表示序列号 而分号表示注释
      refresh    ; 刷新
      retry     ; 重试
      expire     ; 过期
      TTL       ; 否定答案的TTL
    )
 默认s
出现在解析库中任何一个名字,都需要最后加一个点结尾,必不可少的例如:
magedu.com. 86400 IN SOA  ns.magedu.com.  nsadmin.magedu.com. (
       20170916     ; serial
       10M          ; refresh
       5M           ; retry
       1W           ; expire
       1D           ; TTL
     )

 

2.2、NS 记录

name-----当前区域名字
value-----当前区域某DNS服务器的名字,例如:ns.magedu.com.
注:一个区域可以有多个NS记录,需要多条记录来实现
  相邻的两个资源记录的name相同时,后续的可省略  对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录E.g:
  magedu.com. [86400] IN NS ns1.magedu.com.
  magedu.com. [86400] IN NS ns2.magedu.com.
  magedu.com. [86400] IN NS ns3.magedu.com.
或简写
  magedu.com. [86400] IN NS ns1.magedu.com.
          [86400] IN NS ns2.magedu.com.
          [86400] IN NS ns3.magedu.com.

 

2.3、MX记录

name-----当前区域的名
value------当前区域的某邮件服务器(smtp服务器)的主机名,一个区域内,MX记录可有多个;但是每个记录的value之前应该有一个数字[0-99:优先级递减]表示此服务器的优先级:数字越小优先级越
注:对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
E.g:   magedu.com. [86400] IN MX 10 mx1.magedu.com.   magedu.com. [86400] IN MX 20 mx2.magedu.com.

 

2.4、A记录

name-----某主机的FQDN
value-----主机名对应主机的IP地址

 E.g
  www.magedu.com. [86400] IN A 1.1.1.1
  www.magedu.com. [86400] IN A 1.1.1.2

注:
  a)轮循:同一个名字有多个不同的值,通过多条记录定义多个不同的值
       第一次请求:解析为1.1.1.1,第二次请求:解析为1.1.1.2,... 依次循环
   b)同一个值有多个不同的定义名字,仅代表通过不同的名字可以找到同一个主机
    mx1.magedu.com. [86400] IN A 1.1.1.3
    mx2.magedu.com. [86400] IN A 1.1.1.3

  c)泛域名解析:避免用户写错名称时,给错误答案。通过泛域名解析进行解析至某特定地址
    *.magedu.com.  [86400] IN A 1.1.1.4
    magedu.com.    [86400] IN A 1.1.1.4

 

2.5、PTR记录

name----IP,有特定格式:把IP地址反过来写,1.2.3.4 --要写作-> 4.3.2.1;而有特定后缀:in-add.arpa.      完整写法 4.3.2.1.in-addr.arpa.
value FQDN

  例如:
    4.3.2.1.in-addr.arpa. [86400] IN PTR www.magedu.com.
  注:可省略网络地址及后缀,主机地址需要反写
    4.3.2  [86400] IN PTR www.magedu.com.

 

2.6、CNAME记录

name 别名
value 正式名字的FQDN

E.g :
  web.magedu.com. [86400] IN CNAME www.magedu.com.

一个主机有多个名字时,用别名实现

  E.g :
    magedu.com.      [86400] IN A 1.1.1.1
    web.magedu.com.  [86400] IN CNAME  www.magedu.com
    mail.magedu.com. [86400] IN CNAME  www.magedu.com
    pop3.magedu.com. [86400] IN CNAME  www.magedu.com
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!