一般的域名TTL设定在100到600,你的这个数值有点大,建议改小此.如果是域名注册商限定了的话,那就没有办法了,因为这个值越小,对服务器的要求越高.
所以,对你来说,这个值设定的越小越好,对域名注册商来说,则不希望你设定一个过小的值
Berkeley Internert Name Domain(BIND)是我们所熟知的域名软件,它具有广泛的使用基础,Internet上的绝大多数 Py`<WDNS服务器都是基于这个软件的。BIND目前由ISC(Internet Software Consortium)负责维护,具体的开发由 7! J"|RRH*
Nominum(www.nominum.com)公司来完成。下面编译的这个常见问题集就是由该公司所发布的(同时也见于 @W(6pyQd
http://www.isc.org/bind),可以说,它具有较强的针对性和实用性。 VgkSh*^i
1) 哪里可以找到BIND? j 9|KD
BIND以源码的格式发布。当前的版本为BIND 9,不过BIND 8.2.2-P5仍然是广泛发布的版本。考虑到早期版本的安全问 FGX G7vl
题,如果您还在运行比8.2.2-P5更早的版本,那么我们强烈推荐您升级软件。 RB2/TwDZ%
以下的URL包括了源码和其他相关资源的链接,你可能会觉得很有用处: &]L~(kL
http://www.isc.org/products/BIND/ I4o^<P+
源码也可以使用ftp从ftp://ftp.isc.org/isc/bind/src/8.2.2-P5/bind-src.tar.gz 获得。 'f Vw$0W
镜像BIND的ftp服务器列表和其它ISC维护的开发源码软件可以在ftp://ftp.isc.org/isc/MIRRORS上找到。 `1N.=W
2) 怎样安装BIND? l.%B,bUg
下载源码到一个空的目录。如果你需要的话,你也可以下载文档和捆绑的包。 OqOA*AnNK[
接下来,你需要解压(unzip)和解包(untar)发布的包。 <n1],wY
gunzip <bind-src.tar.gz | tar xf - w0_x\
然后,你需要编译和安装软件。常见src/INSTALL以获知指令。在安装之前请备份系统,因为安装可能会覆盖旧的二进制 a_$ Xi
代码;这是依赖于系统的。 W"$w57
如果你是从BIND 4转过来的,那么你需要将配置文件named.boot转成新的语法。这里包含了一个转换程序。 Q-! |C
named-bootconf }(y
</etc/named.boot w1'SM}J%
>/etc/named.conf 9JEC+]6
同时,如果你正从BIND 4转换而来,那么系统启动脚本需要进行修改,以使之查找/etc/named.conf,而不是 z$Tk?0*a
/etc/named.boot。 f o+-<s
接着,你需要终止老的named并启动新的。 TD:^&o+
kill -TERM tF /[A-
ndc start [#yE)| Q
检查系统日志(在大多数Unix系统上,错误都存放在/var/adm/messages中),因为当前的版本比先前的版本容错性会差 g^|3F2j
一些。 cw%V0r
3) 哪里有基于NT的BIND? {}x.lWT-
最新的基于NT的BIND可以从ftp://ftp.isc.org/isc/bind/src/8.2.2-P5/bind-src.tar.gz上的8.2.2p5源码中找 R zsW2.&
到。你应该能够使用WinZip来解压/解包8.2.2p5文件。一旦解压了源码,你会在src/port/winnt目录下找到NT的移植程 ]NcAW6"
序。你需要Visual C++ 6.0来编译它。 lyh=!F*X4
4) 哪里可以找到有关BIND的信息? l,wcUi
先从http://www.isc.org/products/BIND/开始。 DA #S
对于BIND用户,有一个可用的邮件列表。使用http://www.isc.org/services/public/lists/bind-lists.html上的表 sw*ryaPHw
单订阅。在你提交你的问题到邮件列表之前,请检查邮件列表的档案以查看是否你的问题已经回答过了。可搜索的 gPoZfV
bind-users邮件列表档案位于http://www.isc.org/ml-archives/bind-users/。 p6ba)>r
Bind-users邮件列表同时指向了中等的Usenet新闻组comp.protocols.dns.bin.你可以在http://www.deja.com/上搜 <SjBK\.>
索该新闻组。 )6=~|6c^
BIND的"圣经"是DNS and BIND,Third Edition,作者:Paul Albitz和Cricket Liu。 - ]*R[}a8p
5) 为什么我应该升级BIND到最新的版本? b>NV)
最新的BIND版本解决了在以前版本中发现的bug和/或安全漏洞。 V)]OHyC6{
6) 我现在使用的是BIND的什么版本? ohF8Rfr/2
有几种方法可用来确定你正在使用什么版本的BIND。请注意有一些是针对于特定操作系统的,而其它一些不能在早于 b>\F K
4.9.5的BIND版本上工作。我们会在下面的描述中指明这些限制。 5pB5KCV
● 最简单的告知版本号的方法是查找named启动时写到系统日志文件中的消息。例如: #I Q1
Jul 14 12:54:21 ns named[15677]: starting. named 8.2.2-P5 !\cM,+6R
Jul 14 12:54:21 hostmaster@ns1.nominum.com:/usr/sbin/named C<ruBa9Z
● named带"-v"开关会显示版本: 0Hq N[ @
# named -v ''dfa<5%I
named 8.2.2-P5 Thu Jul 20 17:19:57 PDT 2000 g-qJi ~6#
hostmaster@ns1.nominum.com:/usr/sbin/named lM _
● 当使用更新版本的BIND时,BIND的name后台守护程序的控制接口程序可以提供版本信息: *${\w`H
ndc status (+-S_A(o
● 源代码控制系统(SCSS)的"what"命令提供了文件的标示信息。 Bh(iA\/
what /named e5r8_50ut|
以下命令当在运行BIND 4.9.5及以上版本的服务器上检查时会起作用。这两个程序都包括在BIND的发布版本中。 "$CYOoa
●nslookup _|h1
# nslookup h*Hd>W>_
Default Server: ns.yourco.bogus (?j47Ts
Address: 333.333.333.333 _K)pf
>set class=chaos veqLn/o
>set type=txt ["?u S
>version.bind @c.rC090
Server: ns.yourco.bogus "^L%]
Address: 333.333.333.333 i3ovFUs(
VERSION.BIND text = "8.2.2-P5" x]OiQL%jz
〉 cf1V^v3
●dig :.hnR&>r
dig version.bind txt chaos @ server name z$X1,h.\U
或者 W*1?87<'r
dig @ server name txt chaos version.bind ^f$7t
7) 我得到一个错误提示:No default TTL set using SOA minimum instead.为什么会这样?怎么办? D3rJ0m7[
从BIND 8.2开始,你需要一条$TTL指示来设置域的默认TTL。可在域的SOA记录之前添加一条'$TTL XXXXXX'指示。 .X Xv2R
(XXXXXX表示计算到秒的默认TTL.) ..s6$i#@
8) 主机名可使用哪些有效字符? IG/*CJ}@
主机名可以包括字母,数字以及连字符,但不能以连字符开头。下划线(_)在主机名中不是有效的字符。尽管有一些DNS ^b{
服务软件包可以允许下划线在主机名中出现,但大多数是不行的。使用一个带有下划线的域或者主机名会导致大多数 @em=?gla
Internet上的名字服务器不能识别相关的主机/IP地址。 s5Av"Jy:k
9) 为什么当我在本域中的一台主机上使用nslookup时会得到non-authoritative的答复? Q*z"m |
这通常发生在域(zone)文件中有错误出现的时候。检查系统日志文件'messages'以查证错误。 GtZ(rVA0F/
10) 我已经修改了自己的域,但是在Internet上的其它地方看不到这种改变,为什么? nE8IaTpT
每当你修改了你的域文件,例如当你添加或者修改了主机记录的时候,你也必须更新域的SOA记录的文件版本,或者是 ]Bl.m:vMc
"serial number",因为名字服务器从你的服务器检索信息时需要知道发生了修改。如果从上次查询之后版本号没有修 q6BW*<
改,就不会执行更新。举例如下: Dl6]iB
foo.com. DuBX\E`{
$TTL 14400 |6p ^Gz.H,
@ IN SOA o.8J#XJP*
someplace.foo.com. admin.foo.com. ( K$i<D) c
1 this file's version -- change I2NfG ~9 J
43200 refresh twice a day yj~cD9:(e
1800 retry refresh every 15 minutes yj->X7}+'
604800 expire after 1000 hours (over week) Ve\2#Yh
259200 ) minimum TTL of 3 day t~?^o!Q
显而易见,带'file's version'的行是我们想要修改的。版本序号可以为任何数字;1,2,3,4或者2001,2002, ngx6}[tgV
2003,等等。唯一的限制是版本号不能多于10位。在这个示例中,如果你对域文件作了修改,你需要将版本序号改为 TSBSfc4zu
'2'。 $g_TCdN%
11) 为什么没有IP地址? ((${Ea1
在/etc/resolv.conf中没有名字服务器记录。 4o _G ,/G_
12) 在我的日志文件中出现的"lame server"错误是什么? Aa]0IY'7jp
"lame server"指的是不能确信其是否具有域的授权的服务器。如果你有lame server,或者是授权给了lame server的 I<zvq!Z)
域,那么"lame server"消息很有用。如果你宁愿不看到"lame server"消息,你可以使用logging语句丢弃它们: YbA ]9uB
logging { X TDb R]
category lame-servers{ null}$=?:-f5
}LOFv5H4I
13) Microsoft Windows 2000和BIND的关系怎样? MFY813 `
BIND默认会检查所有记录以确保只在需要主机名的地方使用了主机名,这能够防止意外的一致性问题。 <+\&u7x*
Microsoft Windows 2000使用一个称为"_msdcs"来存放动态目录数据。尽管这种子域不会与合法的主机名产生不一致, p\9x[9:iR1
但是也使得在子域中存放非法的主机名成为可能。这种主机名的使用默认是被BIND拒绝的。 @YS osEk}
动态目录希望在_msdcs中有"全局目录(global catalog)"(例如,gc._msdcs.example.com),这默认是拒绝的。为了解 Q/&"5rvC
决此问题,我们推荐动态目录设为独立的域(例如,"_msdcs.example.com")并配置成不检查非法的主机名。这应该是合理 -'Z ~(su
的,因为Window 2000服务器创建这些数据,而且不应该会与其它希望访问这些数据的Windows 2000机器产生不一致问 iIaj )ihQI
题。 })7p M`a
例如, WI:kRt1
zone "_msdcs.example.com" { >x=?UPe8
type master}26- @:
file "_msdcs.example.db"JCbt$6Tv
check-names ignore@eaD5'$bt)
allow-update { localnets}ec?mz?
}sU QfN{:
14) 什么是TSIG key? (+5m(CvN
TSIG key提供了一种鉴别和验证交换的DNS数据有效性的方法,它在解析器和服务器之间或者两台服务器之间使用一个密 cy_*
钥。 Z lY<!
15) 我怎样使用TSIG key来动态更新我的DNS? 1vB(T!9%
首先你需要使用以下命令生成一个TSIG密钥(我们将使用tsig-key作为密钥文件名): (+zhM'Z
dnskeygen -H 128 -h -n tsig-key。 Vh#X8 S 4
这会生成一对密钥文件: AvU =D$a
'Ktsig-key.+157+00000.key',这是一个ASCII文件,它包括以下行: YML|F
tsig-key. IN KEY 513 3 157 <$u32YI H.
awwLOtRfpGE+rRKF2+DEiw== t 9 O*rv
和 rmbW3!bh
'Kvip-key.+157+00000.private' ,这包括: N&-tX$iLa5
Private-key-format: v1.2 Algorithm: 157 (HMAC) .bkk{&*{
Key: awwLOtRfpGE+rRKF2+DEiw== i5:W'g1b?
你将需要获取base64编码的密钥awwLOtRfpGE+rRKF2+DEiw== 并在配置你的服务器命名设置中使用它。例如: J,6Ir/f"b
key tsig-key. { algorithm hmac-md5secret "awwLOtRfpGE+rRKF2+DEiw=="}rkn#b:Dxq
zone "ddns.dregis.com" { 3K|*Bd()t
... 0z]o0= {
... l40iikt
allow-update { key tsig-key. }ImBFtHXYo
} kJVcF)
记得在这之后重启named。 UEPu.#=Q
然后,你需要复制这两个密钥文件到客户系统的某个位置(例如使用/var/named/tsig)。最后,你需要运行以下命令: dC*\GwP
nsupdate -k /var/named/tsig:tsig-key。 FCr\
16) 在named.conf中的'forwarder'选项有何作用? EKH!_!
forwarder行告诉服务器转发所有查询,因为它对另一个域名服务器没有授权或缓冲的数据。
linux DNS服务器配置
基本理论:
DNS系统的作用是把域名和IP对应起来。
正向解析:根据域名(主机名)查找对应的IP地址。
反向解析:根据IP地址查询对应的域名(主机名)。
查询
递归查询:大多数客户机向DNS服务器解析域名的方式。
迭代查询:大多数DNS服务器向其它DNS服务器解析域名的方式。
DNS服务器的类型
缓存域名服务器:也称唯高速缓存服务器。通过向其它域名服务器查询获得域名与IP地址的对应记录,将域名查询结果缓存到本地,提高重复查询时的速度。
主域名服务器:特定DNS区域的官方服务器,具有唯一性。负责维护该区域内的所有域名与IP的映射记录。
从域名服务器:也称辅助域名服务器。其维护的域名与IP地址的映射记录来源于主域名服务器。
环境准备:
临时关闭selinux和iptables
#setenforce 0
#service iptables stop
查询相关软件包:
[root@localhost ~]# yum search bind
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
====================================================================================== N/S Matched: bind ======================================================================================
PackageKit-device-rebind.i686 : Device rebind functionality for PackageKit
bind.i686 : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
bind-chroot.i686 : A chroot runtime environment for the ISC BIND DNS server, named(8)
bind-utils.i686 : Utilities for querying DNS name servers
其中各软件包的作用如下:
bind: 提供域名服务的主要程序及相关文件。
bind-chroot:为bind提供一个伪装的根目录以增强安全性。
bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。
安装BIND软件包#yum install *bind*
配置DNS服务器:
bind服务器端程序
主要执行程序:/usr/sbin/named
服务脚本:、etc/init.d/named
默认监听端口:53
主配置文件: /etc/named.conf
保存DNS解析记录的数据文件: /var/named/chroot/var/named
查询bind程序的配置文件列表
[root@localhost ~]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback
查看主配置文件named.conf
#vim /etc/named.conf
主配置文件解析:
全局配置部分:
默认的全局配置项如下:
10 options {
11 listen-on port 53 { 127.0.0.1}//监听的端口和接口IP地址
12 listen-on-v6 port 53 { ::1}
13 directory "/var/named" //dns区域的数据文件默认存放位置
14 dump-file "/var/named/data/cache_dump.db"
15 statistics-file "/var/named/data/named_stats.txt"
16 memstatistics-file "/var/named/data/named_mem_stats.txt"
17 allow-query { localhost}//允许dns查询的客户机列表,any表示所有
18 recursion yes //是否允许客户机进行递归查询
19
20 dnssec-enable yes
21 dnssec-validation yes
22 dnssec-lookaside auto
23
24 /* Path to ISC DLV key */
25 bindkeys-file "/etc/named.iscdlv.key"
26 }
全局配置中还有如下选项:
forwarders {202.102.24.6812.3.3.3} //将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址
默认的区域配置项如下:
35 zone "." IN {
36 type hint//区域类型。hint为根区域;master为主区域slave为辅助区域
37 file "named.ca" //该区域对应的区域数据配置文件名
38 }
区域配置中还有如下选项:
allow-transfer {189.98.90.23} //允许下载区域数据库的从域名服务器IP地址
allow-update {none} //允许动态更新的客户端IP地址(none表示全部禁止)
添加如下区域配置:
zone “my.com” IN {
type master //主区域
file “my.com” //该区域对应的区域数据配置文件名
allow-transfer {192.168.153.1}//允许下载区域数据库的从域名服务器IP地址
allow-update {none}
}
zone “153.168.192.in-addr.arpa” IN { //表示针对IP192.168.153.130反向解析
type master //主区域
file “192.168.153.my.arpa” //该区域对应的区域数据配置文件名
}
配置完了,可以执行如下命令对named.conf文件进行语法检查。
#named-checkconf
注意:倒序网络地址.in-addr.arpa 表示反向区域
主配置文件最后还有一行是:
include “/etc/named.rfc1912.zones” //该文件包含/etc/named.rfc1912.zones文件
区域数据配置文件:
先看一下named.localhost的内容:
$TTL 1D //time to live 生存时间
@ IN SOA @ rname.invalid. (//”rname.invalid”DNS区域地址
0 serial //更新序列号
1D refresh //更新时间
1H retry //重试延时
1W expire //失效时间
3H )minimum //无效地址解析记录的默认缓存时间
NS @ //name server 域名服务记录
A 127.0.0.1 //address 只用在正向解析的区域数据文件中
AAAA::1
新建2个对应的区域数据配置文件:
#touch my.com
#touch 192.168.153.my.arpa
#vim my.com
$TTL 86400
@ IN SOA my.com. admin.my.com (//admin.myNaN为该区域管理员的邮箱地址
200900201
3H
15M
1W
1D
)
@ IN NS ns1.my.com. //当前域的DNS服务器地址
IN MX 10 mail.my.com. //用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低
ns1 IN A 192.168.153.130
mailIN A 192.168.153.130
www IN A 192.168.153.130
ftp IN CNAME www //CNAME别名(canonical name)记录,表示ftp.my.com和www.my.com对应同一个IP.
[root@localhost named]# vim 192.168.153.my.arpa
$TTL 86400
@ IN SOA my.com. admin.my.com (
200900201
3H
15M
1W
1D
)
@ IN NS ns1.my.com.
130 IN PTR ftp.my.com
启动DNS服务
[root@localhost ~]# service named start
测试:
配置一台ftp服务器用于测试:
#service vsftpd start//启动vsftpd服务
当前网卡的配置:
eth0: 192.168.0.1/24
eth1: 192.168.153.130/24
[root@localhost named]# nslookup 192.168.153.130
Server: 127.0.0.1
Address: 127.0.0.1#53
130.153.168.192.in-addr.arpa name = www.my.com.
[root@localhost ~]# nslookup ftp.my.com
Server: 127.0.0.1
Address: 127.0.0.1#53
ftp.my.com canonical name = www.my.com.
Name: www.my.com
Address: 192.168.153.130
测试成功
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)