1、DNS服务原理详解
2、DNS服务原理详解
3、bind基本配置详解
一、DNS 服务
Domain name server 域名服务,工作在53号端口,查询时使用udp协议,传输时使用tcp协议。
FQDN (Full Qualified Domain Name)完全合格域名
根域:root domain 如:.
一级域:top-level domain 如: com\net\cn\ gov\org\mil\edu\cc\info
二级域:公司、组织、个人使用 如:mageedu\baidu\sohu
主机:www\mail\ftp
递归:A --> B --> C --> D
迭代:A --> B、A --> C、A --> D
互联网上真正的DNS查询时递归+迭代,本地DNS发出一次请求,递归查询,互联网其他DNS则迭代查询。
DNS的主机名和主机名称没关系,一个名称能对应几个IP,一个IP也能对应几个名称。
DNS名称解析:FQDN --> IP、IP --> FQDN ( .in-addr.arpa反向解析),邮件服务器要求反向解析
域(domain)和区域(zone)
正向解析:FQDN--->IP 解析库
反向解析:IP--->FQDN 解析库
区域解析库:
资源记录:rr(resource record)有类型的概念:用于此记录解析的属性
SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个
NS:Name Server
MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99)
A:FQDN --> IP,专用于正向解析库
PTR: IP --> FQDN,专用于反向解析库
AAAA:FQDN --> IPv6,专用于正向解析库
CNAME: Canonical Name,正式名称
2、负责解析当前域内所有主机的DNS服务器称之为权威DNS服务器
查询过程先查找hosts-->local DNS cache-->DNS server(cache)-->根-->一级域-->主机
由DNS服务器缓存回复的查询结果称之为非权威应答。
DNS服务器类型
主DNS服务器,
一个域中只有一个主DNS,如有多台DNS服务器提供解析必须告知上级域,并通过轮询方式接受请求,
从DNS服务器,只能从主服务器同步解析库,同步解析库的过程叫区域传送(zone transfer,单方向传送)
缓存DNS服务器,
完全区域传送:axfr。区域传送为tcp传送,查询时为udp传送,第一次传送时为全部传送。之后为增量传送。
增量区域传送:ixfr。
DNS服务器区域传送为周期性检查+通知机制,当主服务器在设定时间内没有应答,从将不再提供DNS解析功能。
资源记录类型,任何资源解析库文件第一条记录类型必须是SOA,用于标记主DNS服务器
Name [ttl] IN RRType value
Name:区域名称,可以简写@
ttl:响应客户端后最多缓存多少时间
IN:固定字符
RRType:资源记录类型
Value:主DNS服务器的FQDN
Mail:邮箱地址,value和mail最后的.不能省略。如www.magedu.com.
():可以表示为换行符,只要在括号中的都视为同一行记录。
Serial namber:解析库的版本号。不能超过10位,;分号为注释信息
Refresh time:周期性同步时间间隔
Retry time:重试的时间间隔,如主服务器没有应答,多久去查看一次
Expire time:过期时长,如果主服务器超过设定时间内没有响应,从服务器也不在提供服务。
negative answer ttl ;否定答案的统一缓存时长
例如:@IN SOA ns.magedu.com. admin.magedu.com. (
serial number ;解析库的版本号,例如2014080401
refresh time ;周期性同步的时间间隔
retry time ;重试的时间间隔
expire time ;过期时长
negative answer ttl ;否定答案的统一缓存时长
)
NS:name server名称服务器
Name :区域名称
Value:DNS服务器的FQDN
例如: @ IN NS ns.magedu.com.
如果有多台ns服务器,每一个都必须有对应的NS记录
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录
MX:mail exchanger:邮件服务器
Name :区域名称
Value:DNS服务器的FQDN
例如:
@ IN MX 10 mail.magedu.com.
@ IN MX 20 mail2.magedu.com.
如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
A: Address 对于正向解析库A记录最为关键
name: FQDN
value: IP
同一个域名可以有多个地址。同一个地址也可以有多个名称
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 1.1.1.2
pop3.magedu.com. IN A 1.1.1.3
imap.magedu.com. IN A 1.1.1.3
AAAA: ipv6 IP
CNAME: Canonical Name
name: FQDN
value: FQDN
例如:
www.magedu.com. IN A 1.1.1.5
web.magedu.com. IN CNAME www.magedu.com.
PTR: pointer反向解析
name: 逆向的主机IP地址加后缀in-addr.arpa,例如172.16.100.7/16, 网络地址为172.16, 主机地址为100.7,其name为7.100.in-addr.arpa.value: FQDN
例如: 7.100.in-addr.arpa. IN PTR www.magedu.com.
bind linux上常见的DNS服务器,bind:(bekerley internet name domain)
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones,2个文件组成主配置文件
区域解析库文件:/var/named/zone_name.zone
安全:
服务进程以系统用户的身份运行:named, named
可以运行于chroot模型下,即工作jail环境
Dns是协议,named是进程名称,bind是工具
3、bind的基本配置详解
泛域名解析:*IN A 1.1.1.1
安装配置过程:
安装程序包
修改主配置文件:每个语句解释都必须以分号结束,否则语法错误。
options {
全局配置段;
// directory "/var/named";指定工作目录
};
zone "ZONE_NAME" IN { 可以指向DNS根
type {master|slave|hint|forward};
file "mageedu.com.zone";
};
logging {
用于指定日志文件;
}
为每一个区域提供解析库
变量的定义
资源记录
named-checkconf 用于检查主配置文件语法。
随机数生成器:
/dev/urandom:先返回熵池中的随机数,耗尽后会用软件算法生成随机数;进程不会阻塞;
/dev/random: 只返回熵池中的随机数; 随机数耗尽,进程会被阻塞;
DNS:缓存DNS服务器,不负责解析任何区域信息,缓存客户请求。
客户端测试工具host 、nslookup、dig :
host -t RRType NAME [SERVER],例如:host -t NS mageedu.com 192.168.142.8
nslookup
nslookup>
server IP:
set type={A|SOA|NS|MX}
name
dig -t TYPE name @server例如: dig -t AXFR mageedu.com @192.168.142.8
测试反解不使用-t PTR,而使用-x选项
反向区域:
区域名称为逆向网络地址加.in-addr.arpa做后缀
说明:
1、正向解析和反向解析文件中的名称可以仅使用相对名称,它们均相对当前区域而言;
2、绝对后缀可以使用$ORIGIN来定义;