DNS原理概念详解

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

【基础概念】

1 不讲dns的历史,只讲现如今已经存在dns,和如何使用dns

dns: domain name server (名称服务器)  常用做域名的翻译器

很多场景要用到名称服务器

如: ssh shop-web01.beta

首先ssh 协议要调用dns解析的库(解析器),然后把解析出来的IP地址,发起ssh连接!

还有ftp软件等等

应用模型如下图:


wKiom1c8Z9DyJLH0AACyRXTtNy8098.png

【 名称服务器中的名词解释有(很难理解)】

名称服务器: nameserver 存储域命名空间信息的程序

域命名空间: 就是那颗倒树(如图)

域名:FQDN 完全限定域名 

域: domain 命令空间中的一颗子树 sjtu.edu.cn 就像linux目录中的目录

子域: 就像linux目录中还有目录一样,即子目录

资源记录: 数据类c(lass) 如A记录,提供查询的条目

授权: 设计域名系统的目录就是分散管理,授权就是实现的手段。 

区域: zone 紧紧是某个一集体的完整信息。也就是一个文件,区域的内容是从文件或者另外一个名称服务器加载而来的。加载过来后,该名称服务器就可对外宣称对该区域具有权威。

master slave 名称服务器

区域传送: master——> slave

区域文件: zone file (zone file 从主 区域传送到slave)

root名称服务器(全球有13个逻辑服务器)

解析器: reslover 就是访问名称服务器的客户端程序(提供发起查询和接受响应的功能)

解析: 从域命名空间中检索数据

递归

迭代

缓存(可定都是存在内存的) window下清理  ipconfig /flushdns命令  查看: ifconfig /displaydns  显示dns的缓存,而在linux下  dns客户端在Unix下,DNS客户端只是几个例程,负责转发和接受查询的功能,并不缓存。

参考:

http://my.oschina.net/lenglingx/blog/425020

wKiom1c8aA6TJLNcAAJ8_CDCi74046.png


生存时间TTL: 缓存的时间

地址到名称的映射: 一般都是公司内部DNS用,和以前的域名生效,美国的一些早期域名!

DNS的构造也是向linux的目录一样的树状

root目录 

顶级域(一级域)

二级域(不要说成二级域名)

子域



wKiom1c8aDSQa0LuAAA3eZ_6Ix4371.png



注意:

1 域名名空间要求,同一个父节点下的兄弟节点不能有相同的标签(和linux统一目录下不能有两个一样文件名)

2 树种每个节点都有一个标签(不超过63 位,且不包括 . 号的), 空标签是为 root保留的!

3 域名是 从节点本身开始,沿着路径一直读到root,并用 “ .” 来分隔

4 www.stju.edu.cn.    其实是(www.stju.edu.cn.“ ”)  最后一个点号后面其实是个空标签

5 向这种绝对域名有时被被称为完全限定域名 FQDN

6 顶级域是root的子域,二级域是顶级域的子域

7 一条资源记录

ftp.stju.edu.cn.  IN  A  202.120.58.157

解释其中的 IN 和 A

 IN表示的是使用Internet(任何基于TCP/IP 的internet),当然还有其他的老式协议网络类,如Chaosnet协议的网络类,使用Hesiod软件的网络类。但我们看到的都将是IN

A是一种记录type类型,A表示名称到地址的映射 还有其他的type 如{SOA| NS | PTR| Other| CNAME}

8 授权: 和DNS查询原理理解在一起比较容易理解。

比如: 交通大学这个域中sjtu.edu.cn 下面的 ftp.sjtu.edu.cn. www.sjtu.edu.cn. bbs.sjtu.edu.cn.  这些该怎么设定,交通大学的这个组织可行管理和上一级edu.cn. 这个域无关!  edu.cn 这个域只关心 我有一个指针到你那里(访问sjtu.edu.cn  这个域的东西, 一律发到我执行的 那台或多台 交通大学组织的DNS名称解析服务器)。

9. 域和区域:


wKioL1c8aWLyUxSgAABZ7FCm_iI300.png


wKioL1c8aWLB5egZAABmQz59i9E759.png



wKiom1c8aHmAeDT8AACgi6v_5mo215.png




区分迭代和递归的区别

迭代的效果: 就是如向root查询ftp.stju.edu.cn 返回的值第一次是 你去查询cn吧,在发请求到cn时,返回的值有迭代到了 你去请求edu吧。。。。一次迭代下去!

for i in a,b,c,d:

print i

递归: 就是我给你 解析器给本地dns发的递归请求,你本地服务器一定要给我最终答案(能找到或者找不到),不管是何种办法给我返回! 你都要递归出来

地址到名称的映射:

在Internet域命名空间中,就是in-addr.arpa域

如谷歌 nslookup 216.58.221.68

反向解析的结果

68.221.58.216.in-addr.arpaname = hkg08s14-in-f4.1e100.net.

原理图是:

读法也是从叶子节点到根节点!



wKioL1c8aanT3OvlAACJ6EXQSwQ521.png



缓存:

1 linux 下dns客户端 和 window不一样,linux下客户端默认不缓存 除非有 nscd软件安装了。 service nscd {restart,reload}清缓存,缓存只是名称服务器做的事情!名称服务器会进行缓存

2 TTL参数来设置dns默认的缓存时间,但要记住是你解析的域名在别人dns中缓存的时间

比如: 你在学校内部 访问www.baidu.com 那么这个www.baidu.com. 域名的缓存,将是停留在 你学校的DNS名称服务器上的(缓存时间是baidu.com这个域的TTL值决定的)













#####################   ######################################

参考:

http://www.zytrax.com/books/dns/ch7/xfer.html#allow-update




allow-query: 允许哪些IP客户端进行查询使用DNS服务; 一般是是:  allow-query     { any; };

allow-transfer  如果有辅助DNS,是否充许的IP列表(slave DNS)可以同步zone文件,The default behaviour is to allow zone transfers to any host。如: allow-transfer  { 10.10.100.22; 222.73.117.198; 21.32.2.181; 21.32.2.182; 21.32.2.183; 21.32.2.184; 10.10.100.201; };


also-notify   只有master端配置, 修改配置后主动给slave发送NOTIFY消息  also-notify     { 10.10.100.22; 222.73.117.198; 21.32.2.181; 21.32.2.182; 21.32.2.183; 21.32.2.184; 10.10.100.201; };


allow-update  allow-update 只在zone中定义 指定哪些主机允许为主域名服务器提交动态 DNS 更新。默认为拒绝任何主机进行更新。


allow-update {key "update-key";};  或者  allow-update {10.0.1.2;}; // DDNS this host only 




下面一般不需要的配置:

allow-notify: slave端配置, 控制允许发送NOTIFY消息的master, 默认是 master 里配置的ip列表

notify: master和slave都可以配置, 默认是yes, 当配置修改后, 就会发送NOTIFY消息给zone文件里配置的NS和also-notify里的ip列表


notify-source: 默认是*, 表示当前的主机ip, 可以指定某个ip和port, ip必须在slave的master中包含




allow-update { address_match_list };

allow-update { !172.22.0.0/16;};

allow-update defines an address_match_list of hosts that are allowed to submit dynamic updates for master zones, and thus this statement enables Dynamic DNS. The default in BIND 9 is to disallow updates from all hosts, that is, DDNS is disabled by default. This statement is mutually exclusive with update-policy and applies to master zones only. The example shows DDNS for three zones: the first disables DDNS explicitly, the second uses an IP-based list, and the third references a key clause. The allow-update in the first zone clause could have been omitted since it is the default behavior. Many people like to be cautious in case the default mode changes.


// named.conf fragment

// key clause is shown only for illustration and would

// normally be included in the named.conf file

key "update-key" {

    ....

};

....

zone "example.net" in{

    type master;

    allow-update {none;}; // no DDNS by default

    ....

};

....

zone "example.com" in{

....type master;

    allow-update {10.0.1.2;}; // DDNS this host only

    ....

};

zone "example.org" in{

    type master;

    allow-update {key "update-key";};

    ....

};

In the example.org zone, the reference to the key clause "update-key" implies that the application that performs the update, say nsupdate, is using TSIG and must also have the same shared secret with the same key-name. This statement may be used in a zone, view or an options clause.

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1774662如需转载请自行联系原作者


cuizhiliang

相关文章
|
23天前
|
存储 缓存 算法
HashMap深度解析:从原理到实战
HashMap,作为Java集合框架中的一个核心组件,以其高效的键值对存储和检索机制,在软件开发中扮演着举足轻重的角色。作为一名资深的AI工程师,深入理解HashMap的原理、历史、业务场景以及实战应用,对于提升数据处理和算法实现的效率至关重要。本文将通过手绘结构图、流程图,结合Java代码示例,全方位解析HashMap,帮助读者从理论到实践全面掌握这一关键技术。
72 13
|
2月前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
81 1
|
3月前
|
存储 算法 Java
解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用
在Java中,Set接口以其独特的“无重复”特性脱颖而出。本文通过解析HashSet的工作原理,揭示Set如何利用哈希算法和equals()方法确保元素唯一性,并通过示例代码展示了其“无重复”特性的具体应用。
67 3
|
9天前
|
存储 物联网 大数据
探索阿里云 Flink 物化表:原理、优势与应用场景全解析
阿里云Flink的物化表是流批一体化平台中的关键特性,支持低延迟实时更新、灵活查询性能、无缝流批处理和高容错性。它广泛应用于电商、物联网和金融等领域,助力企业高效处理实时数据,提升业务决策能力。实践案例表明,物化表显著提高了交易欺诈损失率的控制和信贷审批效率,推动企业在数字化转型中取得竞争优势。
53 14
|
18天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
74 1
|
1月前
|
调度 开发者
核心概念解析:进程与线程的对比分析
在操作系统和计算机编程领域,进程和线程是两个基本而核心的概念。它们是程序执行和资源管理的基础,但它们之间存在显著的差异。本文将深入探讨进程与线程的区别,并分析它们在现代软件开发中的应用和重要性。
61 4
|
2月前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
60 1
|
2月前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
64 1
|
2月前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
65 0
|
2月前
|
消息中间件 存储 负载均衡
Apache Kafka核心概念解析:生产者、消费者与Broker
【10月更文挑战第24天】在数字化转型的大潮中,数据的实时处理能力成为了企业竞争力的重要组成部分。Apache Kafka 作为一款高性能的消息队列系统,在这一领域占据了重要地位。通过使用 Kafka,企业可以构建出高效的数据管道,实现数据的快速传输和处理。今天,我将从个人的角度出发,深入解析 Kafka 的三大核心组件——生产者、消费者与 Broker,希望能够帮助大家建立起对 Kafka 内部机制的基本理解。
98 2

相关产品

  • 云解析DNS
  • 推荐镜像

    更多