概述:
DNS工作在OSI七层参考模型中的应用层,监听在TCP/UDP的53端口,全球一共有13个根节点DNS服务器。由于对于当前的IPv4对人们而言就很难记忆,而IPv6正在迅速的蔓延,所以DNS是Internet的一项核心服务;DNS的工作采用的是分层结构,不用的DNS服务器负责着不同的域,而整个域名空间的层次结构类似一个倒置的树,在域名层次结构中,每一层称作为一个域,每一个域都有一个域名,域又可以进一步划分成子域,最高层是根,最底层是主机。
查询分类:
递归查询:发起一次请求就可以得到结果。
迭代查询:发起n次请求后才可以得到结果。
DNS查询内容分为:
正向查询:IP-->FQDN
反向查询:FQDN-->IP
解析流程:
Client:缓存-->hosts-->dns
Server:1.如果查询请求是本机所负责区域中的数据的话,要通过查询区域数据文件返回结果。
2.如果查询请求不是本机所负责的区域中的数据的话,就查询缓存。
3.如果缓存中没有答案,则向根发起查询请求。
DNS服务器类型:
主DNS---master
辅助DNS---slave
转发器---forward
缓存服务器
DNS资源记录类型:
●SOA:起始授权记录,在一个区域内必须是唯一的,定义了区域的全局参数
●NS:名称服务器(name server),记录某个区域的授权服务器
●MX:邮件交换器(mail exchanger)
●CNAME:别名记录,也被成为规范名字
●A:正向查找记录
●PTR:反向查找记录
特征:
安装包为:bind.i386
运行的进程:named
服务的协议类型:dns
配置文件:/etc/named.conf
区域文件(工作目录):/var/named/
注:全局配置文件和工作目录中的区域配置文件的属组全部应该是"named"
全局配置文件书写格式:/etc/named.conf
options { ###options 用于指定BIND服务参数
directory "/var/named"; ###指定其工作目为"/var/named"
};
zone "." IN { ###定义BIND所管辖的区域
type hint; ###类型为hint,只有根的类型为hint
file "named.ca"; ###指定区域配置文件名,此处的"named.ca"为固定写法,这里的路径都是相对路径,相对于options块中的directory
};
zone "localhost" IN { ###定义localhost区域
type master; ###类型为master
file "localhost.zone; ###区域文件名。redhat中通常将其命名为localhost.zone
};
zone "0.0.127.in-addr-arpa" IN { ###定义反向区域,将IP地址的所在的网段倒置写,其中".in-addr-arpa"是固定写法
type master; ###类型为master
file "named.local"; ###区域文件名。redhat中通常将其命名为named.local
};
注:在全局配置文件中,除了花括号的左边,其他的新行全部都要使用分号";"结尾
区域配置文件的书写格式:
在BIND中定义资源记录的基本格式如下:
[名称] [TTL] [网络类型] 资源记录类型 数据
名称:指资源记录引用的对象名,可以是主机也可以是域名,对象名可以是相对名称或完整名称,安正名称必须使用"."结束。如果连续的资源记录是同一个对象名,则第一条资源记录后的资源记录可以省略对象名。
TTL:指定资源记录存放在告诉缓存中的时间。
网络类型:指网络类型,通常为"IN"
资源类型:说明资源记录的类型,通常有"SOA NS MX CNAME A PTR",一般SOA记录应为整个区域文件的第一行,NS记录第二行,其他记录可任意排列。
●SOA:
区域名称 记录类型 SOA 主域名服务器 管理员邮件地址 (序列号 刷新间隔 重试间隔 过期间隔 TTL)
序列号:最多为十位,一般用时间+版本号
刷新时间:指辅助服务器请求主服务器同步的等待时间
重试时间:辅助服务器在请求失败后等待多长时间重试
过期时间:当这个时间到期后,辅助服务器还无法于主服务器进行区域传输,则辅助服务器会把它的本地数据当作不可靠数据
TTL:区域的默认生存时间和缓存是否应答名称查询的最大间隔
●NS:NS后面一定有要跟上一个A记录
区域名称 TTL IN NS FQDN
●MX:只出现在正向查找区域文件中,后面也要跟上一个A记录
区域名 TTL IN MX 优先级(0-99) 邮件服务器的A记录
●CNAME:
别名 TTL IN CNAME 对应A记录
●A:
FQDN TTL IN A IP地址
●PTR:
IP地址 TTL IN PTR FQDN
编辑全局配置文件:/etc/named.conf
- options {
- directory "/var/named";
- };
- zone "." IN {
- type hint;
- file "named.ca";
- };
- zone "localhost" IN {
- type master;
- file "localhost.zone";
- };
- zone "0.0.127.in-addr.arpa" IN {
- type master;
- file "named.local";
- };
- zone "magedu.com" IN {
- type master;
- file "magedu.com.zone";
- };
- zone "16.172.in-addr.arpa" IN {
- type master;
- file "172.16.zone";
- };
编辑对应的区域文件"/var/named/named.ca"
- ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t NS .
- ;; global options: printcmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52493
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 8
- ;; QUESTION SECTION:
- ;. IN NS
- ;; ANSWER SECTION:
- . 515139 IN NS g.root-servers.net.
- . 515139 IN NS h.root-servers.net.
- . 515139 IN NS i.root-servers.net.
- . 515139 IN NS j.root-servers.net.
- . 515139 IN NS k.root-servers.net.
- . 515139 IN NS l.root-servers.net.
- . 515139 IN NS m.root-servers.net.
- . 515139 IN NS a.root-servers.net.
- . 515139 IN NS b.root-servers.net.
- . 515139 IN NS c.root-servers.net.
- . 515139 IN NS d.root-servers.net.
- . 515139 IN NS e.root-servers.net.
- . 515139 IN NS f.root-servers.net.
- ;; ADDITIONAL SECTION:
- a.root-servers.net. 603239 IN A 198.41.0.4
- a.root-servers.net. 603239 IN AAAA 2001:503:ba3e::2:30
- b.root-servers.net. 603240 IN A 192.228.79.201
- e.root-servers.net. 603220 IN A 192.203.230.10
- f.root-servers.net. 603220 IN A 192.5.5.241
- f.root-servers.net. 603220 IN AAAA 2001:500:2f::f
- m.root-servers.net. 603244 IN A 202.12.27.33
- m.root-servers.net. 603244 IN AAAA 2001:dc3::35
也可已使用命令:
#dig -t NS . > /var/named/named.ca
编辑对应的正向解析区域文件"/var/named/localhost.zone"
- $TTL 600
- @ IN SOA localhost. admin.localhost. (
- 2012030601
- 20M
- 5M
- 5D
- 1D )
- localhost. IN NS localhost.
- localhost. IN A 127.0.0.1
编辑对应的反向解析区域文件"/var/named/named.local"
- $TTL 600
- @ IN SOA localhost. admin.localhost. (
- 2012030601
- 20M
- 5M
- 5D
- 1D )
- @ IN NS localhost.
- 1 IN PTR localhost.
编辑对应的正向解析区域文件"/var/named/magedu.com.zone"
- $TTL 600
- $ORIGIN magedu.com.
- @ IN SOA dns.magedu.com. admin.magedu.com. (
- 2012030701
- 20M
- 5m
- 5D
- 1D )
- IN NS dns
- IN NS ns
- mail IN MX 10 mail
- dns IN A 172.16.100.1
- ns IN A 172.16.100.1
- mail IN A 172.16.0.1
编辑对应的反向解析区域文件"/var/named/172.16.zone"
- $TTL 600
- @ IN SOA dns.magedu.com. admin.magedu.com. (
- 2012030701
- 20M
- 5m
- 5D
- 1D )
- IN NS dns
- IN NS ns
- 1.100 IN PTR dns.magedu.com
- 1.100 IN PTR ns.magedu.com
- 0.1 IN PTR mail.magedu.com
到此记得将这些文件的属组修改为named,之后DNS的初始配置就完成了!
#chown :named /var/named/*