2.1. DNS介绍
- Date:
2018-09
2.1.1. DNS简述
- 参考:
BIND官方网站:https://www.isc.org/downloads/bind/
BIND官方文档:
BIND官方ftp资料:http://ftp.isc.org/isc/
小技巧
基于504个全球范围的“根域名服务器”(分成13组,分别编号为A至M)
- DNS:
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库, 能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
注意
DNS和DNS服务器以及DNS服务软件是不同的概念。DNS是指协议标准。DNS服务器是提供DNS这种服务的服务器(硬件和软件的综合体)。 DNS软件是根据DNS协议开发的能够运行在硬件系统上并提供DNS服务的软件,这其中以bind为代表。
- DNS主要用途:
能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
- DNS发展历史:
DNS最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明; 原始的技术规范在882号因特网标准草案(RFC 882)中发布。 1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。 在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。
提示
早期的域名必须以英文句号“.”结尾。如今DNS服务器已经可以自动补上结尾的句号。
- DNS服务端口:
- DNS使用
TCP和UDP端口53,这是服务端口。 tcp 53: 用于区域传输
ucp 53: 用于查询
- DNS使用
- DHCP服务模式:
DHCP工作在应用层,是c/s结构
2.1.2. DNS原理
2.1.2.1. DNS记录类型
- DNS系统中,常见的资源记录类型有:
主机记录(A记录): RFC 1035 定义,A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
别名记录(CNAME记录): RFC 1035 定义,CNAME记录用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
IPv6主机记录(AAAA记录): RFC 3596 定义,与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址。
服务位置记录(SRV记录): RFC 2782 定义,用于定义提供特定服务的服务器的位置,如主机(hostname),端口(port number)等。
NAPTR记录: RFC 3403 定义,它提供了正则表达式方式去映射一个域名。NAPTR记录非常著名的一个应用是用于ENUM查询。
- 以上记录类型可以简写成:
A: ipv4
AAAA: ipv6
PTR: ip->fqdn
SOA: 起始授权记录
NS: 域名
CNAME: 别名
MX: 邮件
提示
2.1.2.2. DNS软件
BIND(Berkeley Internet Name Domain),使用最广的DNS软件
DJBDNS(Dan J Bernstein’s DNS implementation)
MaraDNS
Name Server Daemon(Name Server Daemon)
PowerDNS
Dnsmasq
dnsmasq是一个小型的dns服务,还集成了dhcp功能。所以一般小型办公网络比较适用,配置简单易用。
2.1.3. 常见概念
BIND(Bekerley Internet Name Domain) 是伯克利互联网名称域。提供了DNS服务。
- DNS查询类型:
- 递归查询
递归查询,dns服务器压力会增大。DNS没有对应的域名时dns服务器会去查找根域然后迭代查找到对应的A记录然后返回给客户端程序。
- 迭代查询
迭代查询,是dns如果没有对应的记录就会让客户端程序去查找根服务器,但是一般根服务器不会允许客户端直接查询。如果可以这样做,本地的dns压力会降低。
递归查询过程:
迭代查询过程:
- 服务器类型:
主dns:管理和负责解析域的服务器
从dns:从服务器从主服务器复制库,在主DNS故障后从dns会坚持一段时间,如果过了这段时间主服务器故障没有恢复,从服务器也会自动停止dns服务。
缓存dns:缓存dns,用来缓存客户端查询的dns记录,从而降低dns查询压力。
- 区域传输:
完全传输:传输整个库
增量传输:传递变化的部分内容
- 解析流程:
client->hosts->local dns cache->dns server -> server cache-> root -> 二级域
- 解析答案(应答):
肯定答案: 有对应条目
否定答案: 没有对应条目
权威答案: 请求的主机就有对应的条目
非权威答案: 请求的主机没有,通过迭代找到的答案
2.1.4. DNS安全
- 常见的dns攻击有:
DDOS攻击造成域名解析瘫痪。
域名劫持:修改注册信息、劫持解析结果。
系统上运行的DNS服务存在漏洞,导致被黑客获取权限,从而篡改DNS信息。
DNS设置不当,导致泄漏一些敏感信息。提供给黑客进一步攻击提供有力信息。