DNS:(Domain Name System)域名解析系统
监听udp和tcp的53号端口。
DNS的查询类型:
递归查询:
迭代查询:
所谓递归查询就是说客户端向服务器发出查询请求,服务器则负责进行查询,如果
它自身不知道客户端所查询的内容,他就直接找根服务器,根服务器就负责进行查
询,向下级服务器进行查询,当查找到后,一层一层原路返回,然后根再把查询到
的结果,返回给本地的DNS服务器,服务器再把结果发送给客户端。说得简单一点就
是本地的DNS服务器只发出一次请求,就必须得获得结果。
而迭代查询就是说当客户端向服务器发出查询请求,服务器则负责进行查询,如果
它自身不知道客户端所查询的内容,他就直接找根服务器,根服务器告诉他,它要
找的DNS服务器是谁,然后本地DNS就去找根告诉它的那个DNS服务器。如果有则将结
果给本地DNS服务器,服务器再把结果发送给客户端。如果没有,则继续向下查找,
直到找到为止。
在实际生活中我们的互联网上客户端到本地DNS服务器之间是进行迭代查询的,而之
后查询的都是通过迭代获得的。
----------------------------------------------------------------------
DNS记录的类型:
A记录:FQDN-->IP
PTR记录:IP-->FQDN
NS记录(Name Server):DOMAIN-->SERVER
表示某个域的邮件服务器MX(Mail eXchanger),DOMAIN-->MTA
CNAME(正式名称):别名-->正式名字
用于一个域的主域名服务器 :SOA (Start of Authority)
主服务器,辅助名称服务器
同步:区域传送;axfr(完全区域传送),ixfr(增量区域传送)
主服务员只有一个,当主服务器发生改变时,就通知辅助名称服务器,进行更新。
域与区域的区别:
区域是物理概念。定义区域其实就是定义文件;而域是逻辑概念。一个域中包含正
向区域和反向区域。
-----------------------------------------------------------------------
安装DNS服务
#yum install bind
启动服务
#service named start
默认会有3个配置文件:/etc/named.conf (主配置文件)
/etc/rndc.conf
/etc/rndc.key
数据文件:/var/named
通常情况下一个域都会有一个正向和反向区域的文件
必须有一个named.ca的文件。
(1)配置缓冲DNS服务器
定义主配置文件:
#vim /etc/named.conf
--------------------------------------
options {
directory "/var/named"; 用于定义工作目录
};
//定义区域:
zone "." IN {
type hint; 根提示,线索域
file “named.ca”; /var/named/named.ca
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
#dig -t NS . > /var/named/named.ca
#cd /var/named
定义一个正向的localhost.zone 文件
#vim localhost.zone
-----------------------------------------
$TTL 86400
@ 600 IN SOA localhost. admin.localhost. (
2011081601 //序列号,若改变,则加1
1H //辅助服务器同步时间
10M //重试时间
7D //如果7天后还未连接到主服务
器,则自动失效
1D ) //否定回答的ttl值
@ IN NS localhost. (dns服务器的名字)
localhost. IN A 127.0.0.1
----------------------------
定义一个反向的named.local文件
#vim named.local
-------------------------------
$TTL 86400
@ 600 IN SOA localhost. admin.localhost. (
2011081601
1H
10M
7D
1D )
@ IN NS localhost.
1 IN PTR localhost.
#chown -R :named localhost.zone named.* /etc/named.conf
------------------------------------------------------
检查语法:
#service named configtest
#named-checkconf
#named-checkzone "localhost" /var/named/localhost.zone
#named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local
#service named restart
#vim /etc/resolv.conf
nameserver 127.0.0.1
------------------------------------------------------
测试:
#dig -t NS localhost.
#dig -x 127.0.0.1
--------------------------------------------------------------
#dig -t A //结果如下
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t A
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4850
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 0
;; QUESTION SECTION:
;
;; ANSWER SECTION:
. 1196 IN CNAME .
. 597 IN A 61.135.169.105
. 597 IN A 61.135.169.125
;; AUTHORITY SECTION:
a.shifen.com. 86418 IN NS ns2.a.shifen.com.
a.shifen.com. 86418 IN NS ns4.a.shifen.com.
a.shifen.com. 86418 IN NS ns5.a.shifen.com.
a.shifen.com. 86418 IN NS ns6.a.shifen.com.
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Aug 16 01:11:29 2011
;; MSG SIZE rcvd: 162
-------------------------------------------------
(2)建立完整的DNS服务器
在原有基础上,加上一个a.org域。
#vim /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 "a.org" IN {
type master;
file "a.org.zone";
};
--------------------------------
#cd /var/named
#vim a.org.zone
--------------------------------
$TTL 1200
@ IN SOA ns1.a.org. admin.a.org. (
2011081601
1H
10M
7D
1D )
@ IN NS ns1.a.org.(dns服务器的名字)
@ IN NS ns2.a.org.
@ IN MX 10 mail.a.org.
ns1.a.org. IN A 192.168.0.15
ns2.a.org. IN A 192.168.0.130
mail.a.org. IN A 192.168.0.15
. IN A 192.168.0.158
bbs.a.org. IN CNAME
. IN A 192.168.0.164
---------------------------------
测试:
dig -t A
dig -t NS a.org
dig -t CNAME bbs.a.org
---------------------------------
在/etc/named.conf配置文件中,添加一个反向域
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.zone";
};
----------------------------------
创建反向域:
#vim 192.168.0.zone
$TTL 1200
@ IN SOA ns1.a.org. admin.a.org. (
2011081601
1H
10M
7D
1D )
@ IN NS ns1.a.org.(dns服务器的名字)
@ IN NS ns2.a.org.
15 IN PTR ns1.a.org.
130 IN PTR ns2.a.org.
15 IN PTR mail.a.org.
158 IN PTR .
164 IN PTR .
------------------------------------
测试:
#dig -x 192.168.0.15
#dig -x 192.168.0.130
#dig -x 192.168.0.158
#dig -x 192.168.0.164