DNS 学习笔记整理(理解)

概念

是什么?

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

  • linux 常用软件 BIND;另译 Berkeley Internet Name Domain

有啥用?

通过将主机名(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 顶级域)

  • TLD(组织域)常见域:
    1. 组织域:.com .org .net .cc ……
    2. 国家域:.cn .jp .iq .ca ……
    3. 反向域:IP --> FQDN(正向解析跟反向解析不在同一个数据库中查询)
      • 反向:IP --> FQDN
      • 正向:FQDN -->IP

NS服务器

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

相关概念:

  • 递归(根是不给任何人递归的):客户端 -->.服务器 -->,根.服务器--> .com服务器 ,根.服务器--> .example服务器
    大致理解成:A问B1+1=?,B说我不知道C知道,B去问C,B告诉A等于2。在这过程中A只发出一次请求,B发出了两次最后得到答案

  • 迭代:客户端 -->.服务器 ,客户端--> .com服务器 ,客户端--> .example服务器
    大致理解成:A问B1+1=?,B说我不知道C知道,A去问C,C告诉A等于2。在这过程中B只发出一次请求,A发出了两次最后得到答案

  • 权威答案:ns服务器返回自己直接域或子域下的域

  • 非权威答案:ns服务器返回非自己直接域或子域下的域

NS服务器

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

DNS服务器类型

  • 主DNS服务器:数据(记录,配置)的修改

  • 辅助DNS服务器服务器
    请求数据同步(通过主版本号的变更,或者主通知从修改)涉及axfr/ixfr 完全/增量

    serial number:    版本号(不超过十位)  
    
    refresh :     定义每隔多少时间检查主版本号时间
    retry:            重试时间(refresh没有响应)
    expire:               过期时间(主宕机)
    nagative answer TTL: 否定答案缓存时长(该解析没有结果)
    
  • 缓存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域中有可以有多个区域。额。。。我也是看视频理解的,这个不太好描述

  • 区域文件:
    一般都会定义两个区域文件正向区域文件反向区域文件
    正向区域文件:
    example.com.  600  IN  SOA  ns1.example.com.  admin.example.com. ( 20171122 1H 5M 1D 3H )
    简写:
    @  600  IN  SOA  ns1  admin ( 20171122 1H 5M 1D 3H ) 应该可以,我是试了下,dig了下正常解析没有报错
    反向区域文件(假如当前172.17.0.0/16段网络,网段反过来加后缀,后缀固定):
    0.17.172.in-addr.arpa  600  IN  SOA  ns1.example.com.  admin.example.com. ( 20171122 1H 5M 1D 3H )
    简写:
    @  600  IN  SOA  ns1.example.com.  admin.example.com. ( 20171122 1H 5M 1D 3H ) 区域名一定不能简写

  • 区域传送方式 (主dns服务器传送更新数据至从dns服务器 ):

    • 完全区域传送(同步所有):axfr
    • 增量区域传送(同步修改):ixfr
  • 区域类型:

    • 提示区域(定义根在什么地方):hint
    • 主区域:master
    • 从区域:slave
    • 转发区域(不需要通过根查询,直接配置需要查询域内的ns服务器地址):forward

BIND:Berkeley Internet Name Domain(ISC 维护)

  • 配置文件:

    • /etc/named.conf:定义BIND进程的工作数据,区域文件定义
    • /etc/rndc.key:定义rndc访问秘钥
    • /etc/rndc.conf:rndc访问配置文件
    • /var/named/:区域数据文件存放位置
    • /etc/rc.d/init.d/named {start|stop|restart|status|reload|configtest}:二进制启动文件
  • 启动进程:named

  • 监听协议及端口:
    53/UDP:查询,解析
    53/TCP:主从同步数据传输
    953/TCP:rndc访问时使用端口

/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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,865评论 0 7
  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 12,475评论 3 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,596评论 18 139
  • DNS简介DNS解析关键概念BIND 一、DNS简介: (一)DNS服务 DNS:Domain Name Serv...
    哈喽别样阅读 1,781评论 0 2
  • DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能...
    一直在努力hard阅读 4,606评论 3 19