DNS:(Domain Name System)域名解析系统
监听udp和tcp的53号端口。
监听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)
A记录:FQDN-->IP
PTR记录:IP-->FQDN
NS记录(Name Server):DOMAIN-->SERVER
表示某个域的邮件服务器MX(Mail eXchanger),DOMAIN-->MTA
CNAME(正式名称):别名-->正式名字
用于一个域的主域名服务器 :SOA (Start of Authority)
主服务器,辅助名称服务器
同步:区域传送;axfr(完全区域传送),ixfr(增量区域传送)
主服务员只有一个,当主服务器发生改变时,就通知辅助名称服务器,进行更新。
同步:区域传送;axfr(完全区域传送),ixfr(增量区域传送)
主服务员只有一个,当主服务器发生改变时,就通知辅助名称服务器,进行更新。
域与区域的区别:
区域是物理概念。定义区域其实就是定义文件;而域是逻辑概念。一个域中包含正
区域是物理概念。定义区域其实就是定义文件;而域是逻辑概念。一个域中包含正
向区域和反向区域。
-----------------------------------------------------------------------
安装DNS服务
#yum install bind
启动服务
#service named start
启动服务
#service named start
默认会有3个配置文件:/etc/named.conf (主配置文件)
/etc/rndc.conf
/etc/rndc.key
数据文件:/var/named
通常情况下一个域都会有一个正向和反向区域的文件
必须有一个named.ca的文件。
(1)配置缓冲DNS服务器
/etc/rndc.conf
/etc/rndc.key
数据文件:/var/named
通常情况下一个域都会有一个正向和反向区域的文件
必须有一个named.ca的文件。
(1)配置缓冲DNS服务器
定义主配置文件:
#vim /etc/named.conf
--------------------------------------
#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";
};
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
-----------------------------------------
#cd /var/named
定义一个正向的localhost.zone 文件
#vim localhost.zone
-----------------------------------------
$TTL 86400
@ 600 IN SOA localhost. admin.localhost. (
@ 600 IN SOA localhost. admin.localhost. (
2011081601 //序列号,若改变,则加1
1H //辅助服务器同步时间
10M //重试时间
7D //如果7天后还未连接到主服务
1H //辅助服务器同步时间
10M //重试时间
7D //如果7天后还未连接到主服务
器,则自动失效
1D ) //否定回答的ttl值
@ IN NS localhost. (dns服务器的名字)
localhost. IN A 127.0.0.1
1D ) //否定回答的ttl值
@ IN NS localhost. (dns服务器的名字)
localhost. IN A 127.0.0.1
----------------------------
定义一个反向的named.local文件
#vim named.local
-------------------------------
#vim named.local
-------------------------------
$TTL 86400
@ 600 IN SOA localhost. admin.localhost. (
2011081601
1H
10M
@ 600 IN SOA localhost. admin.localhost. (
2011081601
1H
10M
7D
1D )
@ IN NS localhost.
1 IN PTR localhost.
@ 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 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
#vim /etc/resolv.conf
nameserver 127.0.0.1
------------------------------------------------------
测试:
#dig -t NS localhost.
#dig -x 127.0.0.1
#dig -t NS localhost.
#dig -x 127.0.0.1
--------------------------------------------------------------
#dig -t A //结果如下
#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
;; 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
. 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.
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
;; 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
#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
---------------------------------
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
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
在/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 .
@ 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
测试:
#dig -x 192.168.0.15
#dig -x 192.168.0.130
#dig -x 192.168.0.158
#dig -x 192.168.0.164