由 nobody_am 在 07-04-2003 15:28 发表:
用实验快速掌握DNS配置[原创]
用实验快速掌握DNS配置
由于配置DNS很重要,本文主要以做实验来快速掌握DNS配置.
[实验目的]
1.配置一个只可转发请求的DNS.
2.配置一个masterDNS.
3.配置一个slaveDNS.
[实验环境]
1.两台互连的计算机.
2.系统Redhat 8.0.
[实验步骤]
一.实验准备.
1.两台机关掉iptables
service iptables stop
chkconfig iptables off
2.两台机检查安装必要软件
rpm -q bind
rpm -q bind-utils
rpm -q caching-nameserver
根据结果,安装没安装的软件,从安装盘里找出没安装的包,有选择的执行下列步骤:
rpm -Uvh bind-9*
rpm -Uvh bind-utils*
rpm -Uvh caching-nameserver*
3.互连两台机.
①编辑两台机的相应文件.(编辑最好用vi,以下也是)
机器1:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.0.254
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.254
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server1
机器2:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
onBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.1
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=station1
②分别在两台机上运行:
机器1:
ifdown eth0
ifup eth0
ping 192.168.0.1
机器2:
ifdown eth0
ifup eth0
ping 192.168.0.254
主意:两台机能互相ping通,继续下列实验,不通,再找找原因.
二.机器1上配置一个masterDNS.
机器1上:
1.编辑/etc/named.conf文件:
/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 “example1.com” IN {
type master;
file “db.example1”;
};
zone “0.168.192.in-addr.arpa” IN {
type master;
file “db.192.168.0”;
};
----------------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
上述文件有六部分:option ,5个zone.
其中option,”.”,”localhost”,”0.0.127.in-addr.arpa”原来就有.
“example1.com”,“0.168.192.in-addr.arpa”为现在子网的正向和反向搜索区的
定义,“db.example1”,”db.192.168.0”的名字是随便取的,它们必需在/var/named/下
存在.
主义{}前后及中间的空格,及分号.
-----------------------------------------------------------------------
2.用vi创建两个文件,/var/named/db.example1,/var/named/db.192.168.0
/var/named/db.example1
$TTL 86400
@ IN SOA server1.example1.com. Root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
IN A 192.168.0.254
server1 IN A 192.168.0.254
station1 IN A 192.168.0.1
www IN A 192.168.0.254
ftp IN A 192.168.0.254
pop IN A 192.168.0.254
www1 IN CNAME server1.example1.com.
ftp1 IN CNAME server1.example1.com.
@ IN MX 10 server1.example1.com.
server1.example1.com IN MX 10 server1.example1.com.
----------------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
上述文件是一个正向搜索的数据库:
$TTL 86400 是文件开头,数字表示默认存活期,用秒计算的,做什么不用不要管它,
记着添上就行.
接着的格式就是:[domain] [class]
1<type> <rdata>
2
3
4
5[domain]如: server1.example1.com , www.
6
7Www是简写,实际会默认添上定义这个文件的那个 zone “example1.com”里的
8
9example1.com,即:www=www.example1.com.这个段可以升略不写,默认跟前一行的
10
11[domain]相同.@表示”example1.com”.
12
13
14
15[class]一般为internet类,即:IN ,可以省去不写.
16
17
18
19<type> 分别有SOA,NS,A,MX,CNAME,及反向数据库里的PTR.
20
21SOA=start of authority 必要的
22
23NS=nameserver 必要的
24
25A=域名和ip地址的映射. 必要的
26
27MX=mail exchange. 可选的
28
29CNAME=域名的一个假名 可选的
30
31PTR=用在反向:ip地址和域名的影射. 必要的
32
33
34
35假名不可以放在NS MX 的<rdata>字段.
36
37
38
39SOA 括弧中的5个数字:
40
41对应为( serial refresh retry expire Minimum )
42
43serial 可以是任何数字,一般:年月日修改数.
44
45refresh 是SOA信息的刷新时间.
46
47Retry是与授权服务器联系的频率.
48
49Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
50
51Minimum 区域中记录的存活时间.
52
53
54
55H=hour D=day M=minute W=week
56
57
58
59SOA 后的server1.example1.com.表示这个区域授权给哪台机.
60
61root.server1.example1.com.表示管理人.用.代替@
62
63
64
65完整域名后一定要加.号,否则会自动为你加”example1.com”.
66
67
68
69以上如果你不懂,不用急,以后慢慢想清楚.
70
71\-----------------------------------------------------------------------
72
73
74
75/var/named/db.192.168.0
76
77$TTL 86400
78
79@ IN SOA server1.example1.com. root.server1.example1.com. (
80
812003070401 1H 1M 1W 1D )
82
83IN NS server1.example1.com.
84
85254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
86
871.0.168.192.in-addr.arpa IN PTR station1.example1.com.
88
89\----------------------------------------------------------------------
90
91解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
92
93此文件是反向搜索的数据库.
94
95主意IP反着写.
96
97其它的不用解释.
98
99\-----------------------------------------------------------------------
100
1013.检验:
102
103# cat >> /var/log/messages
104
105******
106
107******
108
109[ctrl]+d
110
111# service named restart
112
113# host server1.example1.com
114
115# host station1.example1.com
116
117# host www.example1.com
118
119# host www1.example1.com
120
121# host 192.168.0.254
122
123
124
125看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
126
127192.168.0.254对应域名为server1.example1.com.如果不能解析,说明,配置有问题,
128
129可以到日志/var/log/messages里查看.具体位置在文件末尾的两行*******后,和调试
130
131程序一样,甚至他会告诉你哪个文件,哪行错了.修改后,重新执行:
132
133# cat >> /var/log/messages
134
135******
136
137******
138
139[ctrl]+d
140
141# service named restart
142
143# host server1.example1.com
144
145# host station1.example1.com
146
147# host www.example1.com
148
149# host www1.example1.com
150
151# host 192.168.0.254
152
153直到无错,且能够正确解析.
154
155
156
157三.机器2上配置一个只负责转发请求域名解析的DNS
158
159机器2上:
160
1611.编辑/etc/named.conf
162
163/etc/named.conf
164
165options {
166
167directory “/var/named/”;
168
169forwarders { 192.168.0.254; };
170
171};
172
173........
174
175\------------------------------------------------------------
176
177解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
178
179forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,则交给
180
181192.168.0.254这个DNS,其实在配置masterDNS时,也可以在option里加一个forwarders
182
183具体IP就是你平时上网用的DNS.如果有两个或多个也可以这样写:
184
185{ 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92/24; 192.168.0.254 ;}
186
187.....表示其它的东西,不要动.
188
189\---------------------------------------------------------------------
190
1912.检验:
192
193# cat >> /var/log/messages
194
195******
196
197******
198
199[ctrl]+d
200
201# service named restart
202
203# host server1.example1.com
204
205# host station1.example1.com
206
207# host www.example1.com
208
209# host www1.example1.com
210
211# host 192.168.0.254
212
213
214
215看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
216
217192.168.0.254对应域名为server1.example1.com.
218
219这个配置比较简单,一般不会有笔误,如果错误,排除bug的方法同检查masterDNS
220
221一样,看日志.
222
223
224
225三.机器2上配置一个slaveDNS
226
227机器2上:
228
2291.编辑/etc/named.conf
230
231/etc/named.conf
232
233options {
234
235directory “/var/named/”;
236
237};
238
239
240
241zone “.” IN {
242
243type hint;
244
245file “named.ca”;
246
247};
248
249
250
251zone “localhost” IN {
252
253type master;
254
255file “localhost.zone”;
256
257};
258
259
260
261zone “0.0.127.in-addr.arpa” IN {
262
263type master;
264
265file “named.local”;
266
267};
268
269
270
271zone “example1.com” IN {
272
273type slave;
274
275masters { 192.168.0.254; };
276
277file “db.example1-slave”;
278
279};
280
281
282
283zone “0.168.192.in-addr.arpa” IN {
284
285type slave;
286
287masters { 192.168.0.254; };
288
289file “db.192.168.0-slave”;
290
291};
292
293\------------------------------------------------------------
294
295解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
296
297与masterDNS,不同的是:type slave; masters { 192.168.0.254; };
298
299slaveDNS的效果就是定期的向masterDNS复制一份数据库.
300
301一个网络一般只能有一个masterDNS,多个slaveDNS,slaveDNS用来使DNS的
302
303访问负载均衡.减轻masterDNS的负担.
304
305此时,删掉上面配置forward 的那句:forwarders { 192.168.0.254; };
306
307加着也没错,只不过,容易判断是否是slaveDNS在起作用。
308
309\------------------------------------------------------------
310
3112.检验:
312
313# cat >> /var/log/messages
314
315******
316
317******
318
319[ctrl]+d
320
321# service named restart
322
323# host server1.example1.com
324
325# host station1.example1.com
326
327# host www.example1.com
328
329# host www1.example1.com
330
331# host 192.168.0.254
332
333
334
335看看是否可以解析,如:# host server1.example1.com 显示:
336
337www.example1.com has address 192.168.0.254
338
339# host 192.168.0.254 显示:
340
341254.0.168.192.in-addr.arpa domain name pointer server1.example1.com.
342
3430.168.192.in-addr.arpa.
344
345
346
347且查看在/var/named/下是否生成: db.example1-slave , db.192.168.0-slave
348
349两个文件.</rdata></type></rdata></type>