1、DNS基本原理
DNS:Domain Name Service,域名解析服务
监听端口:udp/53,tcp/53
应用程序:bind
www.magedu.com.: FQDN
Full Qualified Domain Name 完全合格域名/全称域名
名称解析:主机名解析
把一种名称转换为另一种名称的过程
名称:字串、数字
解析库:某种存储
username <--> uid
某种存储:
文本文件
关系型数据库
LDAP:Lightweight Directory Access Protocol, 389/tcp
域:domain, 区域:zone
正向解析:FQDN --> IP
解析库
反向解析:IP --> FQDN
解析库
根域:root domain
一级域:top-level domain
二级域:公司、组织、个人使用
主机:www
一级域:
组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv
国家域:.cn, .us, .uk, .jp, .tw, .hk, .iq, .ir
反向域:.in-addr.arpa
根结点:13个
递归:DNS请求被服务器接受后,如果属于此服务器管辖范围则请求上级服务器依次传递请求,并且依次传递结果给发出请求的主机。
形如:A --> B --> C --> D
注意:客户端指向的服务器一定给递归服务
迭代: DNS请求被服务器接受后,如果不是自己管辖范围,让客户端访问根域服务器,然后跟域通知客户端去访问下级服务器,直到最后客户端访问管辖请求域名的服务器为止
形如:
A --> B
A --> C
A --> D
DNS中的名称与对应的主机的主机名不要求是一样的。
一个名称可以对应多个IP
一个IP上也可以多个名称
2、区域解析库
资源记录: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,正式名称
DNS查询:
递归
迭代
DNS查询先后顺序:hosts --> local dns cache --> dns server (cache) --> 迭代
非权威应答:
DNS服务器类型:
主DNS服务器
从DNS服务器
缓存服务器
解析库文件同步的过程:区域传送 (单方向传送)
zone transfer
完全区域传送:axfr
增量区域传送: ixfr
周期性检查 + 通知
资源记录类型:
name [ttl] IN RRType value
任何解析库文件的第一个记录的类型必须是SOA
SOA:Start Of Authority
name: 区域名称,通常可以简写为@
value: 主DNS服务器的FQDN,也可以当前区域的区域名称;
例如:@ IN SOA ns.magedu.com. admin.magedu.com. (
serial number ;解析库的版本号,例如2014080401
refresh time ;周期性同步的时间间隔
retry time ;重试的时间间隔
expire time ;过期时长
negative answer ttl ;否定答案的统一缓存时长
)
admin.magedu.com. 区域管理员的邮箱地址
NS:name server
name: 区域名称
value: DNS服务器的FQDN
例如:@ IN NS ns.magedu.com.
注意:
如果有多台NS服务器,每一个都必须有对应的NS记录;
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
MX:Mail eXchanger
name: 区域名称
value: 邮件服务器的FQDN
例如:
@ IN MX 10 mail.magedu.com.
@ IN MX 20 mail2.magedu.com.
注意:
如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性
对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;
A: Address
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. //web是www的别名
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.
3、DNS正方向解析(bind)
bind: bekerley internet name domain
服务脚本:/etc/rc.d/init.d/named
主配置文件:
/etc/named.conf, /etc/named.rfc1912.zones
区域解析库文件:/var/named/zone_name.zone
安全:
服务进程以系统用户的身份运行:named, named
可以运行于chroot模型下,即工作jail环境
named进程运行于chroot环境
/
/var/named/chroot/
etc, lib, bin, sbin
案例:mageedu.com
172.16.100.0
www, mail, pop, imap, ldap, ftp
注意:
1、要注册域名:
net.cn, godaddy.com
2、泛域名解析
* IN A 1.1.1.1
mageedu.com. IN A 1.1.1.1
4、安装配置过程
1、安装程序包
2、修改主配置文件:
定义区域
一般是vim /etc/named.conf
options {
全局配置段;
// directory "/var/named";
};
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "mageedu.com.zone";
};
logging {
}
改完后看是否有语法错误,用以下命令:
named-checkconf
service named configtest
named-checkconf “localhost” /var/named.named.localhost
启动服务:service named start
3、为每一个区域提供解析库
变量的定义
资源记录
随机数:
/dev/urandom:先返回熵池中的随机数,耗尽后会用软件算法生成随机数;进程不会阻塞;
/dev/random: 只返回熵池中的随机数; 随机数耗尽,进程会被阻塞;
rndc: remote name domain controller
DNS:缓存DNS服务器
客户端测试工具:
1、host -t RRType NAME [SERVER]
例如:host -t NS mageedu.com 172.16.100.7
2、nslookup
nslookup>
server IP:dns服务器地址
set type={A|SOA|NS|MX}
name
3、dig
dig -t TYPE name @server
类型可使用:AXFR
例如: dig -t AXFR mageedu.com @172.16.100.7
测试反解不使用-t PTR,而使用-x选项
dig: 查询选项
+trace
+notrace
+recurse
+norecurse
反向区域:
区域名称为逆向网络地址加.in-addr.arpa做后缀
完全反向区域解析:
dig -t AXFR 146.168.192.in-addr.arpa @192.168.146.129
说明:
1、正向解析和反向解析文件中的名称可以仅使用相对名称,它们均相对当前区域而言;
2、绝对后缀可以使用$ORIGIN来定义;
5.实战解析
编辑主配置文件,添加正向区域和反向区域
vim /etc/named.conf
创建正向区域文件
vim scholar.com.zone #必须与区域文件名保持一致
$TTL 3600
@ IN SOA ns.mageedu.com. admin.mageedu.com. (
2015042601
2H
10M
7D
1D )
@ IN NS ns.mageedu.com.
@ IN MX 10 mail.mageedu.com.
ns.mageedu.com. IN A 192.168.146.129
mail.mageedu.com. IN A 192.168.146.128
www.mageedu.com. IN A 192.168.146.128
pop.mageedu.com. IN CNAME mail.mageedu.com.
创建反向区域文件
vim 192.168.146.zon #必须与区域文件名保持一致
$TTL 3600
@ IN SOA ns.mageedu.com. admin.mageedu.com. (
2015042601
2H
10M
7D
1D )
@ IN NS ns.mageedu.com.
129 IN PTR ns.mageedu.com.
128 IN PTR mail.mageedu.com.
128 IN PTR www.mageedu.com.
修改权限及属组
chgrp named mageedu.com.zone
chmod 640 mageedu.com.zone
chgrp named 192.168.146.zone
chmod 640 192.168.146.zone
检查语法,启动服务并设置开机自启
service named configtest
chkconfig --level 35 named on
chkconfig --list named
查看tcp和upd的53端口是否开启
ss -tunl|grep :53
正向解析测试
host mail.mageedu.com
host -t NS mail.mageedu.com 192.168.146.129
host mail.mageedu.com 192.168.146.129
nslookup mail.mageedu.com
dig -t A mail.mageedu.com @192.168.146.129
反向解析测试
nslookup 192.168.146.128
dig -x 192.168.146.129
dig -t AXFR 146.168.192.in-addr.arpa @192.168.146.129