Yayi和大家一起学习Fedora系列教程–第六课

Filed in Computer 0 comments

这次我们来讲DNS服务器的架设,在讲怎么架设之前我们有必要了解什么是DNS,及其的作用是什么?网域名称系统(Domain Name System缩写DNS,Domain Name被译为域名;另外域名服务器Domain Name Server也简称为DNS)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。(摘选自维基百科)

这里重点提醒下大家一个尝试,DNS服务器的根服务器全世界只有13台。我们所做的DNS服务器永远无法成为根服务器,请大家记住。

竟然知道了什么是DNS和它的大概作用,现在我们现在来看看DNS的工作原理。

根据这幅图,我们来简单说下DNS是怎么来工作的。

1.DNS服务器C上具有很多很多的数据,至于是什么数据我们先不关心,等到我们自己动手做的时候就会明白的。

2.WEB服务器B的域名架设为yayi.biz,主机名为www.yayi.biz..

3.我们是客户机ADNS地址设置为:192.168.1.12,现在大家要来访问我的博客了,当我们在浏览器上敲上网址的时候,我们的电脑就会向主机B询问www.yayi.bizIP地址是什么?如图:

4.DNS服务器会找自己的数据,找到后会直接告诉主机Awww.yayi.bizIP地址是:192.168.1.3。如图:

5.主机A的我们知道www.yayi.bizIP地址是192.168.1.3时,就直接向WEB服务器B请求数据的发送了。如图:

6.收到请求的WEB服务器B,便向主机A发送数据,于是我们就可以浏览我的博客了。这样就完成了一次简单的网页浏览,这样我们也可以简单的理解到DNS的工作原理。

注意:这里已经忽略了各种复杂的网络,忽略了DNS服务器C不存在数据的问题,忽略了根DNS服务器的问题,最后也忽略了DNS转发服务器的问题,现实的情况下,这些问题都会是成为我们架设DNS服务器所遇到得一些小问题。只要注意一下便可以解决。值得一提的是DNS使用53端口,这个是一个很特殊的端口,说它特殊时因为它是TCP的同时又是UDP端口,更详细的大家去查阅下网络技术那一块。

竟然已经简单的理解了DNS是怎么工作的后,我们现在就来看看DNS服务器是怎么架设起来的。在Linux下,架设DNS服务器的软件很多很多,但是最为出名和实用的依然是bind,所以这里我们就讲讲怎么用bind来架设DNS服务器的。

首先我们先登录bind的官方网站把bind下载下来,笔者在这里使用的版本为 9.6.1

bind官方地址:https://www.isc.org/

1、安装篇:

然后解压:

tar zxf bind-XXXX.tar.gz

创建文件夹:

mkdir /usr/local/bind (要把bind安装在这里)

进入bind解压后的位置.进行编译安装

./configure –prefix=/usr/local/named –enable-threads

–enable-threads是为了开启多线程更多选项请参考configure –help)

make ;make install

安装完成!!

2、主配置文件配置篇:

进行bind目录:

cd /usr/local/named

生成密匙文件:

sbin/rndc-confgen > etc/rndc.conf

进入bindetc目录

cd etc

rndc.conf文件生成named.conf文件:

tail -10 rndc.conf | head -9 | sed s/#\ //g > named.conf

打开/usr/local/named/etc/named.conf文件
添加以下文件:

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
options
 {
directory “/var/named”; 					#域名文件存放的绝对路径
pid-file “named.pid”; 					#如果bind启动,自动会在/var/named目录生成一个 named.pid文件,打开文件就是named进程的ID
 
};
 
zone “.” IN {
type hint;							#根域名服务器
file “named.root”;						# 存放在/var/named目录,文件名为named.root
 
};
 
zone “localhost” IN {
type master;   						#类型为主域名服务器
file “localhost.zone”; 					#本地正向解析的文件
allow-update { none; };
 
};
 
zone “0.0.127.in-addr.arpa” IN {
type master; 							#类型为主域名服务器
file “named.local”;						#本地反向解析的文件
allow-update { none; };
 
};
 
zone “test.com” IN {						#建立test.com域
type master;							#类型为主域名服务器
file “test.zone”;						#test.com域映射IP地址可在此文件编写
allow-update { none; };
 
};
 
zone “1.168.192.in-addr.arpa” in {				#反向解析
type master; #类型为主域名服务器
file “test.local”;						#存放反向解析的文件
allow-update { none; };
 
};

3、区域配置文件配置篇:

打下依次建立这些区域文件

根区域文件的配置:

mkdir /var/named
cd /var/named
vi named.root
根域名服务器的存放位置,比喻hp.com域不在自己的解析范围,自动将解析交给根域名服务器,named.root内容是不定期更新的,最新的内容都是去ftp://rs.internic.net/domain/下载。

下面是Yayi给出的根区域配置文件的参考,建议去下载一个最新的,这里的内容不用背,理解下便可以,因为我可以通过网络得到最新的。

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the “cache  .  ”
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC
;       under anonymous FTP as
;           file                /domain/named.root
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    Feb 04, 2008
;       related version of root zone:   2008020400
;
; formerly NS.INTERNIC.NET
;
.                                            3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:BA3E::2:30
;
; formerly NS1.ISI.EDU
;
.                                            3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
;
; formerly C.PSI.NET
;
.                                            3600000      NS    C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET.      3600000      A     192.33.4.12
;
; formerly TERP.UMD.EDU
;
.                                            3600000      NS    D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.      3600000      A     128.8.10.90
;
; formerly NS.NASA.GOV
;
.                                            3600000      NS    E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET.      3600000      A     192.203.230.10
;
; formerly NS.ISC.ORG
;
.                                            3600000      NS    F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET.      3600000      A     192.5.5.241
F.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:2f::f
;
; formerly NS.NIC.DDN.MIL
;
.                                            3600000      NS    G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET.      3600000      A     192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
.                                            3600000      NS    H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET.      3600000      A     128.63.2.53
H.ROOT-SERVERS.NET.      3600000      AAAA  2001:500:1::803f:235
;
; formerly NIC.NORDU.NET
;
.                                            3600000      NS    I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET.       3600000      A     192.36.148.17
;
; operated by VeriSign, Inc.
;
.                                           3600000      NS    J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET.      3600000      A     192.58.128.30
J.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:C27::2:30
;
; operated by RIPE NCC
;
.                                            3600000      NS    K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET.      3600000      A     193.0.14.129
K.ROOT-SERVERS.NET.      3600000      AAAA  2001:7fd::1
;
; operated by ICANN
;
.                                            3600000      NS    L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET.      3600000      A     199.7.83.42
;
; operated by WIDE
;
.                                             3600000      NS    M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
M.ROOT-SERVERS.NET.      3600000      AAAA  2001:dc3::35
; End of File

②本地区域文件的配置:

依然是在/vat/named/目录中,创建一个本地区域文件:

vi test.zone

添加一下内容:

View Code SHELL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$TTL      86400						#缓存时间.单位‘秒‘
 
@	IN SOA		dns.test.com. root@test.com (	#区域、SOA记录、主域名服务、联系人
 
42	; serial     (d. adams)				#序列号
 
3H	 ; refresh						#每3小时重试
 
15M	; retry						#隔15分钟重试
 
1W	; expiry						#过期时间1个星期
 
1D )	; minimum						#最小的TTL时间为1天
 
@	IN NS		dns.test.com.				#主DNS服务器名称
 
@	IN            dns1.test.com.			#辅助DNS服务器名称
 
dns	IN A          192.168.1.12				#主DNS服务器的IP
 
dns1   IN A          192.168.1.4				#辅助DNS服务器的IP
 
www    IN A          192.168.1.3				#主机www的IP地址
 
www	IN CNAME      host1.test.com.			#host1的别名记录
 
100	IN PTR	       host100.test.com.			#host100.test.com的ip是192.168.1.100(反向查询)
 
@	IN MX   5     mail.test.com.			#test.com使用mail.test.com作为邮件服务(MX记录)

注意:域名后面是需要加上“.”的,不要遗漏,否则出错。

这样,我们的本地区域文件就写好了,然后我们来看看这个区域需要理解的。

IN指的是intelnet类型,
SOA,NS,A,CNAME,MX,PTR是指记录的类型:
NS指的是DNS服务器
A指正向查询方式
CHAME指别名
MXMX记录
PTR指反向查询

好了,这样所有的都出来了.详细的配置看rpm安装配置,
是一模一样的.
启动则为/usr/local/name/sbin/named
/usr/local/name/sbin/named -g则是前台运行,适合第一次启动,或者说直到你看到running…
每次错误都有提示,认真看提示解决.
如果看懂那么就g.cn的在线翻译吧。

下图就是bind已经在运行了:

关于开机自动启动也很简单,
/etc/rc.local文件里加多一行,
“/usr/local/named/sbin/named”

然后我们用客户机测试下,看看是不是成功了,不过别忘记了,客户机的DNS应该设置为我们DNS主机的IP地址哦。

这样,我们这一课又结束了哦。想要了解DNS,不是这样就可以了,要自己再去多点实践与查阅资料。

Posted by Yayi   @   5 八月 2009 0 comments
Tags : , ,

已经有 0 评论

No comments yet. Be the first to leave a comment !
发 表 评 论

Previous Post
«
Next Post
»
Copyright ©2008 - 2011 Yayi's World
知识共享许可协议 粤ICP备09088251号