NDS介绍
域名系统 英文:Domain Name System,缩写:DNS 是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP/UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
DNS域名:
根域:全球所有的DNS都要听从于它;
顶级域名:Top Level Domain:tld;
.com .edu .mil .gov .net .org ...
三类:组织域,国家域(.cn, .iq, .hk, .tw, ...),反向域
二级域名:
google.com youtube.com baidu.com ...
三级域名:
www.google.com mail.google.com stu.google.com
最多127级域名
DNS查询类型:
- 递归查询
- 客户端只发出一次请求一定要得到最终结果;(主机向本地域名服务器的查询一般都是采用递归查询.)
- 迭代查询
- 服务器发出多次请求,层层请求后返回最终结果;(本地域名服务器向根域名服务器的查询(域名服务器之间的查询)一般都是采用迭代查询)
DNS解析类型:
- 正向解析: Name --> IP (绝大多数都能正向解析)
- 反向解析: IP --> Name (部分解析不了,该解析类型常用在邮件服务反向解析,来判断是否为垃圾邮件)
注意:正反向解析时两个不同的名称空间,是两颗不同的解析树
DNS服务器的类型
- 主DNS服务器
- 辅助DNS服务器
- 缓存DNS服务器
- 转发器
- 主DNS服务器,维护所负责解析的域内解析库服务器,解析库由管理维护
- 从DNS服务器,从主DNS服务器或其他的从DNS服务器那里“复制”(区域传递)一份解析库
- 序列号: 解析库的版本号: 前提: 主服务器解析库内容发生变化,其序列递增
- 刷新时间间隔: 从服务器从主服务器请求同步解析库的时间间隔
- 重试时长间隔:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔
- 过期时长:从服务器始终联系不到主服务器时,多久后放弃从服务器角度,停止提供服务
- "通知"机制:主服务器解析库发生变化时,会主动通知从服务器
magedu.org. 86400 IN SOA ns.magedu.org. nsadmin.magedu.org. (
2015042201 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
区域传送:
- 全量传送:传送整个解析库
- 增量传送:传递解析库变化的那部分内容
一次完整查询请求经过的流程
- Client --> hosts文件 --> DNS Service
- Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(秩代) -->
- 解析答案:
- 肯定答案
- 否定答案: 请求的条目不存在等原因导致无法返回结果;
- 权威答案
- 非权威答案
- 区域解析库: 由众多RR组成
- 资源记录: Resource Record RR
- 记录类型: A, AAAA, PTR, SOA, NS, CNAME, MX
名词解释
资源记录
- SOA: Start Of Authority, 起始授权记录: 一个区域解析库由且仅能由一个SOA记录,而必须为解析库的第一条记录;
- A: internet Address,作用,FQDM --> IP
- AAAA: FQDM --> IPv6
- PTR: PoinTeR, IP --> FQDM
- NS: Name Server, 专用于表明当前区域的DNS服务器
- CNAME: Canonical Name, 别名记录
- MX: Mail eXchanger, 邮件交换器
资源记录定义的格式:
语法: name [TTL] IN rr_type value
$TTL 1D
@ IN SOA master admin.magedu.org. (
2019042210 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 10.0.0.8
www A 10.0.0.7
DNS区域数据库文件
注意:
- TTL可从全局继承;
- @可用于引用当前区域的名字
- 同一个名字可以通过多条记录定义多个不同的值: 此时DNS服务器会以轮询方式响应;
- 同一个值也可能有多个不同的定义名字: 通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机而已
SOA:
- name: 当前区域的名字,示例“baidu.com”;
- value:有多部份组成
(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2)录前区域管理员的邮箱地址; 但地址红不能使用@符号,一般用.替换,示例linuxedu.baidu.com;
(3)(主从服务协调属性的定义以及否定的答案的统一的TTL)
baidu.com 86400 IN SOA ns.baidu.com admin.baidu.com (
2022042201;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
示例
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,示例ns.baidu.com.;
注意:一个区域可以有多个NS记录;
示例:
badu.com. IN NS ns1.badu.com.
badu.com. IN NS ns2.badu.com.
注意:
- 相邻的两个资源记录的name相同时,后续的可省略
- 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;
MX:
- name: 当前区域的名字
- value: 当前区域的某邮件服务器(smtp服务器)的主机名;
- 一个区域内,MX记录可有多个: 但每个记录的value之前应该有一个数字(0-99), 表示此服务器的优先级: 数字越小优先级越高;
示例:
badu.com IN MX 10 mx1.badu.com.
IN MX 10 mx2.badu.com.
注意:
(1)对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
A:
name: 某主机的FQDN,示例 www.badu.com
value: 主机名对应主机的IP地址;
示例:
www.badu.com. IN A 1.1.1.1
www.badu.com. IN A 1.1.1.1
mx1.badu.com. IN A 1.1.1.3
mx2.badu.com. IN A 1.1.1.3
注意:避免用户写错名称时给错误答案,可通过泛域名解析进行至某特定地址
*.badu.com. IN A 1.1.1.4
badu.com. IN A 1.1.1.4
AAAA:
name: FQDN
value: IPv6
PTR:反向解析
name: IP,把特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1: 而有特定后缀: in-addr.arpa. 所以完整写法为:4.3.2.1.in-addra.arpa.
value: FQDN
示例
4.3.2.1.in-addr.arpa. IN PTR www.badu.com
76.1.168.192.in-addr.arpa IN PTR www.badu.com
简写成:
4 IN PTR www.badu.com
76 IN PTR www.badu.com
注意: 网络地址及后缀可省略; 主机地址依然需要反着写;
CNAME:
name: 别名的FQDN
value: 正工名字的FQDN;
示例:
web.badu.com. IN CNAME www.badu.com.