linux搭建DNS服务.docx
《linux搭建DNS服务.docx》由会员分享,可在线阅读,更多相关《linux搭建DNS服务.docx(15页珍藏版)》请在冰豆网上搜索。
![linux搭建DNS服务.docx](https://file1.bdocx.com/fileroot1/2023-5/26/d7a0a2bb-feb8-4aec-9d12-bf09a08118e7/d7a0a2bb-feb8-4aec-9d12-bf09a08118e71.gif)
linux搭建DNS服务
Linux下搭建DNS服务器和配置文件(named.conf)祥解
∙ 2011/11/17
∙ DNS, linux, 服务器
∙ 服务器搭建与应用
∙ 评论
∙
∙ 13,428
配置之前先了解一下bind DNS服务器软件:
BIND是一种开源的DNS(DomainNameSystem)协议的实现,包含对域名的查询和响应所需的所有软件。
它是互联网上最广泛使用的一种DNS服务器,对于类UNIX系统来说,已经成为事实上的标准。
为了构架DNS服务器来解析域名或ip地址,我们得安装BIND和caching-nameserver。
为了TCP和UDP53数据包能通过,我们也有必要配置路由器。
安装BIND软件包
1、安装
# yum -yinstallbindcaching-nameserver
2、配置
下面的例子是以公网IP(172.16.0.80/29),局域网IP(192.168.0.0/24),域名()作说明。
在配置你自己的服务器时,请使用你自己的IP和域名。
#vim/etc/named.conf
options{
directory"/var/named";
#queryrange
allow-query{localhost;192.168.0.0/24;};
#transferrange
allow-transfer{localhost;192.168.0.0/24;};
#recursionrange
allow-recursion{localhost;192.168.0.0/24;};
};
controls{
inet127.0.0.1allow{localhost;}keys{rndckey;};
};
#hereisthesectionforinternalinformations
vimew"internal"{
match-clients{
localhost;
192.168.0.0/24;
};
zone"."IN{
typehint;
file"named.ca";
};
#setzonesforinternal
zone""IN{
typemaster;
file".lan";
allow-update{none;};
};
#setzonesforinternal
zone"0.168.192.in-addr.arpa"IN{
typemaster;
file"0.168.192.db";
allow-update{none;};
};
zone"localdomain"IN{
typemaster;
file"localdomain.zone";
allow-update{none;};
};
zone"localhost"IN{
typemaster;
file"localhost.zone";
allow-update{none;};
};
zone"0.0.127.in-addr.arpa"IN{
typemaster;
file"named.local";
allow-update{none;};
};
zone"255.in-addr.arpa"IN{
typemaster;
file"named.broadcast";
allow-update{none;};
};
zone"0.in-addr.arpa"IN{
typemaster;
file"named.zero";
allow-update{none;};
};
};
vimew"external"{
match-clients{
any;
};
zone"."IN{
typehint;
file"named.ca";
};
#setzonesforexternal
zone""IN{
typemaster;
file".wan";
allow-update{none;};
};
#setzonesforexternal*note
zone"80.0.16.172.in-addr.arpa"IN{
typemaster;
file"80.0.16.172.db";
allow-update{none;};
};
};
include"/etc/rndc.key";
#*note:
ForHowtowriteforreverseresolvimng,Writenetworkaddressreverselylikebelow.
thecasefor192.168.0.0/24
networkaddress?
192.168.0.0
rangeofnetwork?
192.168.0.0-192.168.0.255
howtowrite?
0.168.192.in-addr.arpa
caseof172.16.0.80/29
networkaddress?
172.16.0.80
rangeofnetwork?
172.16.0.80-172.16.0.87
howtowrite?
80.0.16.172.in-addr.arp
设置Zones
创建zone文件以便服务器能解析域名IP。
1、内部zone文件
这个例子使用的是内网地址(192.168.0.0/24),域名(),请根据自己的具体情况配置。
#vim/var/named/.lan
$TTL86400
@INSOA..(
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
#definenameserver
INNS.
#internalIPaddressofnameserver
INA192.168.0.17
#definemailexchanger
INMX10.
#defineIPaddressandhostname
nsINA192.168.0.17
2、外部zone文件
这个例子使用的是外网地址(172.16.0.80/29),域名(),请替换成自己的。
#vim/var/named/.wan
$TTL86400
@INSOA..(
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
#definenameserver
INNS.
#externalIPaddressofnameserver
INA172.16.0.82
#defineMailexchanger
INMX10.
#defineIPaddressandhostname
nsINA172.16.0.82
创建zone文件使服务器能够反向解析IP到域名。
3、内部zone文件
这个例子使用的是内网地址(192.168.0.0/24),域名(),请使用自己的设置替换。
#vim/var/named/0.168.192.db
$TTL86400
@INSOA..(
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
#definenameserver
INNS.
#definerangethatthisdomainnamein
INPTR.
#defineIPaddressandhostname
INA255.255.255.0
17INPTR.
4、外部zone文件
这例子使用外网地址(172.16.0.80/29),域名(),请替换成自己的。
#vim/var/named/80.0.16.172.db
$TTL86400
@INSOA..(
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
#definenameserver
INNS.
#definerangethatthisdomainnamein
INPTR.
#defineIPaddressandhostname
INA255.255.255.248
82INPTR.
启动BIND
1、完成BIND的配置后,在启动named之前,还需要建立chroot环境。
#yum-yinstallbind-chroot
#/etc/rc.d/init.d/namedstart
# chkconfig namedon
2、操作检验
确认服务器已经正确解析域名或IP地址。
# dig .
;<<>>DiG9.3.4<<>>.
;;globaloptions:
printcmd
;;Gotanswer:
;;->>HEADER<<-opcode:
QUERY,status:
NOERROR,id:
54592
;;flags:
qraardra;QUERY:
1,ANSWER:
1,AUTHORITY:
1,ADDITIONAL:
0
;;QUESTIONSECTION:
;. IN A
;;ANSWERSECTION:
.86400 IN A 192.168.0.17
;;AUTHORITYSECTION:
. 86400 IN NS .
;;Query time:
0msec
;;SERVER:
192.168.0.17#53(192.168.0.17)
;;WHEN:
ThuMar819:
35:
192007
;;MSGSIZErcvd:
68
#dig-x192.168.0.17
;<<>>DiG9.3.4<<>>-x192.168.0.17
;;globaloptions:
printcmd
;;Gotanswer:
;;->>HEADER<<-opcode:
QUERY,status:
NOERROR,id:
45743
;;flags:
qraardra;QUERY:
1,ANSWER:
1,AUTHORITY:
1,ADDITIONAL:
1
;;QUESTIONSECTION:
;17.0.168.192.in-addr.arpa. IN PTR
;;ANSWERSECTION:
17.0.168.192.in-addr.arpa.86400 IN PTR .
;;AUTHORITYSECTION:
0.168.192.in-addr.arpa. 86400 IN NS .
;;ADDITIONALSECTION:
. 86400 IN A 192.168.0.17
;;Querytime:
0msec
;;SERVER:
192.168.0.17#53(192.168.0.17)
;;WHEN:
ThuMar819:
37:
502007
;;MSGSIZErcvd:
107
配置从DNS服务器
配置从DNS服务器比较简单。
下面的例子主DNS是“”,从DNS是“ns.example.info”。
1、在主DNS服务器的zone文件作如下配置
#vim/var/named/.wan
$TTL86400
@INSOA..(
#updateserial
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
INNS.
#addnameserver
INNSns.example.info.
INA172.16.0.82
INMX10.
nsINA172.16.0.82
#rndcreload
serverreloadsuccessful
2、配置从DNS服务器
#vim/etc/named.conf
#addtheselinesbelow
zone""IN{
typeslave;
masters{172.16.0.82;};
file"slaves/.wan";
};
#rndcreload
serverreloadsuccessful
# ls /var/named/slaves
.wan #zonefileinmasterDNShasbeenjusttransfered
设置别名记录,如果你想为你的主机设置另一个名称,在zone文件定义CNAME记录
#vim/var/named/server-Linux.info.wan
$TTL86400
@INSOAns.server-linux.info.root.server-linux.info.(
#updateserial
2007041501;Serial
3600;Refresh
1800;Retry
604800;Expire
86400;MinimumTTL
)
INNSns.server-linux.info.
INA172.16.0.82
INMX10ns.server-linux.info.
nsINA172.16.0.82
#aliaseINCNAMEserver'sname
ftpINCNAMEns.server-linux.info.
#rndcreload
serverreloadsuccessful
以下是一个整理的主配文件参数解释(仅供参考)/**/代表注释:
options{/*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DIRECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到/var/named下,在这里你还可以指定端口等等。
不指定则端口是53
*/
directory"/var/named";
};//
//
//acachingonlynameserverconfig
//
controls{
inet127.0.0.1allow{localhost;}keys{rndckey;};
};
zone"."IN{//在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
typehint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:
表示定义的是主域名服务器
slave:
表示定义的是辅助域名服务器
hint:
表示是互联网中根域名服务器
*/
file"named.ca";//用来指定具体存放DNS记录的文件
};
zone"localhost"IN{//定义一具域名为localhost的正向区域
typemaster;
file"localhost.zone";
allow-update{none;};
};
zone""IN{//指定一个域名为的正向区域
typemaster;
file"”
allow-update{none;};
};
zone"0.0.127.in-addr.arpa"IN{//定义一个IP为127.0.0.*的反向域区
typemaster;
file"named.local";
allow-update{none;};
};
zone"0.192.168.in-addr.arpa"IN{//定义一个IP为168.192.0.*反向域区
typemaster;
file"168.192.0";
/var/named/文件
@INSOA.W.(SOA表示授权开始
/*上面的IN表示后面的数据使用的是INTERNET标准。
而@则代表相应的域名,如在这里代表,即表示一个域名记录定义的开始。
而则是这个域的主域名服务器,而则是管理员的邮件地址。
注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
*/
2003012101;serial(d.adams)/*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
*/
28800;refresh
/*定义的是以为单位的刷新频率即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
*/
7200;retry
/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
*/
3600000;expiry
/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
*/
8400)
/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记
录
*/
INNSlinux
INMX10linux
linuxINA168.192.0.14
it-test1INA168.192.0.133
wwwINCNAMElinux
/*上面的第一列表示是主机的名字,省去了后面的域。
NS:
表示是这个主机是一个域名服务器,
A:
定义了一条A记录,即主机名到IP地址的对应记录
MX定义了一邮件记录
CNAME:
定义了对应主机的一个别名
/var/named/168.192.0
@INSOA..(
1997022700;Serial
28800;Refresh
14400;Retry
3600000;Expire
86400);Minimum
INNS.
/*以上的各关键字的含义跟是相同的
14INPTR.
133INPTRit-.
/*
上面的第一列表示的是主机的IP地址。
省略了网络地址部分。
如14完整应该是:
168.192.0.14
PTR:
表示反向记录
最后一列表示的是主机的域名。