DNS 学习笔记整理(理解)

2017-11-23  本文已影响505人  chenzhong_

概念

是什么?

DNS (Domain Name System)域名解析服务器

有啥用?

通过将主机名(FQDN Full Qualified Domain Name, 完全限定域名 )解析为IP 地址;IP地址解析成主机名的服务软件,这个过程叫名称解析(Name Resolving),在背后查询数据记录集得到结果

示例

FQDN ==> IP (正向解析) www.example.com --> 10.0.0.1
IP ==> FQDN (反向解析) 10.0.0.1 --> www.example.com

相关内容

IANA: 互联网地址名称分配机构(美国机构),通过维护,申请IP地址+FQDN(只有先后;申请后别人没办法使用相同域名)
ICNAA: 授权机构,区域授权;授权给组织域,国家域自行管理

根域 "."

根域名服务器(英语:root name server)是互联网域名解析系统(DNS)中最高级别的域名服务器,负责返回顶级域的权威域名服务器地址。它们是互联网基础设施中的重要部分,因为所有域名解析操作均离不开它们。由于DNS和某些协议(未分片的用户数据报协议(UDP)数据包在IPv4内的最大有效大小为512字节)的共同限制,根域名服务器地址的数量被限制为13个。 ---- 维基百科

13个根的地址.jpg

dig 命令用法在下半部分说道,或自己看下linux命令dig用法

例如:
www.example.com. 其中的.表示的就是根域

域是有授权跟上下级关系的,根将组织域的管理授权给组织域自己管理,根只知道自己的直接下级,或者说是授权下级,并不知道自己的下下级是谁。比如,根将.com授权给.com域自己来管理,并在根的ns服务器中记录.com域的ns服务器地址(下文会介绍一些相关概念)

组织域

组织域 (TLD: Top Level Domain 顶级域)

NS服务器

客户端请求一个主机的时候,通常是交由这个域下的ns服务器解析(不考虑hosts文件,配置啥的),ns服务器查看当前本地是否有该域名解析结果的缓存,如果没有就去找根.,比如www.example.com,如果本地没有该域名解析的结果就去找根,根只知道自己的直接下级中的.com,根返回参考答案.com 的ns地址,然后ns服务器就去找.com 域下的ns服务器,.com 发现自己的域下有.example 的记录,然后返回.example 下的ns服务器地址,然后ns服务器再去找.example 域下的ns服务器,找www,然后.example 域下的ns服务器直接返回最后结果。

相关概念:

NS服务器

大致理解成,根将.com域授权给.com管理,但是要在根服务器的NS服务器中留下一个记录,让客户端来查询的时候好返回并告诉.com域中NS服务器的地址。你理解成管理员也行,就像我问你XX小学三年级有没有个叫张三的,XX小学相当域根.,三年级相当于.com域,张三相当于.example域,而NS服务器就相当于这个班的班主任(管理员),你问班主任他肯定知道有没有。

DNS服务器类型

NS服务器数据库中的每一个条目称作一个资源记录(Resource Record,RR)
资源记录的格式:

NAME(名称) [TTL]
TTL(失效时间)
IN(表明Internet上的记录)
RRT(资源记录类型)
VALUE(值)

例如:
www.example.com.  600  IN  A  10.0.0.1
10.0.0.1  600  IN  PTR  www.example.com.

资源记录类型(RRT)
  1. SOA (Start Of Authority;起始授权记录)
    格式:ZONE NAME  TTL  IN  SOA  FQDN  ADMINISTRATOR_MAIL( serial number refresh retry expire nagative answer TTL )
    时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
    邮箱地址:admin@example.com 写为--> admin.example.com @有特殊含义
    例:example.com.  600  IN  SOA  ns1.example.com.  admin.example.com.  ( 20171123 1D 5M 3D 3H )

  2. NS(Name Server): ZONE NAME --> FQDN (指定该域ns记录,一定要随之给条A记录)
    例:example.com.  600  IN  NS  ns.example.com.

  3. A(address):FQDN --> IPv4

  4. AAAA:FQDN --> IPv6

  5. PTR(pointer): IP --> FQDN ;(不区分IPv4,IPv6)

  6. MX(Mail eXchanger): ZONE NAME --> FQDN
    格式:ZONE NAME  TTL  IN  MX  pri(优先级,越小越高)  VALUE
    例:example.com.  600  IN  MX  10  mail.example.com.

  7. CNAME(Canonical NAME;正式名称): FQDN --> FQDN
    例:www2.example.com.  600  IN  CNAME  www.example.com.

域跟区域

域(Domain):一个逻辑概念
区域(Zone):不太好解释,他们有包含关系,又好像没有关系。
一个域中可以分为多个区域,但一个区域又能指向一个域。就好像根区域文件中定义.com域记录,但是.com域中有可以有多个区域。额。。。我也是看视频理解的,这个不太好描述

BIND:Berkeley Internet Name Domain(ISC 维护)

/etc/named.conf 配置文件解析(主要options、zone、view)

options 参数选项解析

options {
        directory "/PATH/TO/SOMEWHERE";  工作目录
        recursion yes;  是否开启递归
        allow-recursion { 10.0.0.1/16; };   定义递归客户端来源
        masters { 10.0.0.1; };  定义从服务器拉取数据的主服务器地址
        querylog yes;   打开查询记录日志功能
        allow-query {}; 允许谁来查询
        allow-transfer {};  允许谁发送传送请求(完全区域传送axfr\增量ixfr)
        notify yes;     是否启动通知
        forward {only|first};   转发方式 only:直接丢给父域解析,或自己先解析
        forwarders  { 10.0.0.1/16; };   接受转发地址
}; 严格限定语法,需要加结束符";"号
zone 参数选项解析
zone "ZONE NAME" IN {
            type {master|slave|hint|forward};   服务器类型
            allow-transfer {none};  执行区域传送主机
            masters { 10.0.0.1; };  定义从服务器拉取数据的主服务器地址
            forward {only|first};   转发方式 only:直接丢给父域解析
            forwarders  { 10.0.0.1/16; };   接受装发地址
            querylog yes;   打开查询记录日志功能
};
view 参数选项解析(定义视图实现智能dns解析)

一旦定义视图,zone都要定义在视图中

view VIEW_NAME {
        match-clients {};   匹配客户端来源
        zone "ZONE NAME" IN { };
};

dig命令:
dig -t RT(资源记录类型) NAME(资源记录名称) @IP(指定ns地址查询)
  -x IP: 查找该ip的FQDN

2017/11/23 13:40:41

上一篇 下一篇

猜你喜欢

热点阅读