DNS 理论

DNS and Bind


DNS是什么?可以做什么用?


DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。

DNS应用层协议 53/udp, 53/tcp




你知道www.magedu.com.这三个字段包含什么意思?  


 . 是根域   .com 是表示商业组织顶级域  .magedu 是一个我们申请的使用的二级域  www是我们的主机名。而整个www.magedu.com.叫做FQDN,叫做完全限定域名,就是主机名了。

    你在想为什么我在浏览器里输一个入主机名,就可以访问远程的主机呢?如下介绍




你知道你的主机是如何利用dns访问互联网的吗?



注:1、本地主机首先会本地的host文件访问的主机名对应的ip,

    2、如果么有查找本地dns缓存,(DNS Local Cache

    3、如果还没有就去向该网络里的dns服务器发起递归请求,(DNS  Server (recursion)

    4、dns服务器以迭代查询的方式去查找主机名对应的ip地址返回给client。

以上就是一次完整的查询请求经过的流程:

Client --> hosts文件 --> DNS Local Cache --> DNS  Server (recursion) --> 





DNS查询类型:

递归查询:发送一次请求等待对方答案

迭代查询:多次请求得到答案


DNS名称解析方式:

FQDN --> IP:正向解析

IP --> 名称:反向解析

注意:二者的名称空间,非为同一个空间,即非为同一棵树;因此,也不是同一个解析库;


举例:

域:magedu.com.

www.magedu.com.(主机名)  1.1.1.1  (ip)

ftp.magedu.com.  2.2.2.2

注:在magedu.com.下面有www.magedu.com.和ftp.magedu.com.主机,分别对应着1.1.1.1 和2.2.2.2



DNS服务器类型:

         主名称服务器;

         辅助名称服务器;

         缓存名称服务器;




各自是如何工作的?

主名称服务器;

      自己负责解析的域:直接查询数据库并返回答案;

      不是自己负责解析域:Server Cache --> iteration(迭代)

      主DNS服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;


 辅助名称服务器;

从DNS服务器:从主DNS服务器那里或其它的从DNS服务器那里“复制”一份解析库;但只能进行读操作;


主辅如何数据同步?

“复制”操作的实施方式:

序列号:serial, 也即是数据库的版本号;主服务器数据库内容发生变化时,其版本号递增;

刷新时间间隔:refresh, 从服务器每多久到主服务器检查序列号更新状况;

重试时间间隔:retry, 从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔;

过期时长:expire,从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据;停止提供服务;

否定答案的缓存时长:




场景:有时候数据同步有时间间隔,如何当主服务器有更新了,从服务器就马上更新数据?

主服务器”通知“从服务器随时更新数据;

区域传送:

全量传送:axfr, 传送整个数据库;

增量传送:ixfr, 仅传送变量的数据;





区域(zone)和域(domain):

magedu.com域:

FQDN --> IP

正向解析库;区域

IP --> FQDN

反向解析库;区域



每一个解析库文件都要有SOA

SOA是做什么的?

用来说明一个区域内部主从服务器之间如何同步数据,以及谁是主dns。

必备:SOA:Start Of Authority,起始授权记录; 一个区域解析库有且只能有一个SOA记录,而且必须放在第一条;




区域数据库文件里定义了dns解析需要的数据。每条数据也有其资源类型

是用来说明当前资源扮演什么角色


NS:Name Service,域名服务器;一个区域解析库可以有多个NS记录;其中一个为主的;

A: Address, 地址记录,FQDN --> IPv4;

AAAA:地址记录, FQDN --> IPv6;

CNAME:Canonical Name,别名记录;

PTR:Pointer,IP --> FQDN

MX:Mail eXchanger,邮件交换器;

     优先级:0-99,数字越小优先级越高;



SOA资源记录的定义格式:

        语法:name  [TTL] INRR_TYPE  value


name: 当前区域的名字;例如”mageud.com.”,或者“2.3.4.in-addr.arpa.”;


value:有多部分组成

    (1) 当前区域的区域名称(也可以使用主DNS服务器名称);

    (2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代;

    (3) (主从服务协调属性的定义以及否定答案的TTL)

例如:

   magedu.com.  86400   IN   SOA      magedu.com. admin.magedu.com.  (

                               2017010801; serial  注:从服务器检查更新数据时的版本号

                               2H ; refresh     注:从服务器检查更新的时间间隔

                               10M ; retry     注:从服务器请求没有响应后的重试时间<refresh

                               1W; expire    注:过期时间到了后,从dns服务器将停止服务

                               1D; negative answer ttl 注:否定答案的缓存时长 

                                    )


注意:一个区域可以有多个ns记录; 

例如:

    magedu.com. 86400 IN NS  ns1.magedu.com.

    magedu.com. 86400 IN NS  ns2.magedu.com.




MX类型的资源记录条目如何写?


name: 当前区域的区域名称

value:当前区域某邮件交换器的主机名;

注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级;

例如:

    magedu.com. IN MX 10  mx1.magedu.com.

    magedu.com. IN MX 20  mx2.magedu.com.





A的类型资源记录条目如何写?


name:某FQDN,例如www.magedu.com.

value:某IPv4地址;

例如:

    www.magedu.com.    IN     A    1.1.1.1

    www.magedu.com.    IN     A    1.1.1.2

    bbs.magedu.com.    IN     A    1.1.1.1



PTR类型资源记录条目如何写?


name:IP地址,有特定格式,IP反过来写,而且加特定后缀;例如1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.;

value:FQND

例如:

    4.3.2.1.in-addr.arpa.  IN  PTRwww.magedu.com.



CNAME类型资源记录条目如何写?

name:FQDN格式的别名;

value:FQDN格式的正式名字;

例如:

    web.magedu.com.  IN  CNAME  www.magedu.com.

注意:
(1) TTL可以从全局继承;
(2) @表示当前区域的名称;
(3) 相邻的两条记录其name相同时,后面的可省略;
(4) 对于正向区域来说,各MX,NS等类型的记录的value为FQDN,此FQDN应该有一个A记录;


你可能感兴趣的:(dns)