问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在在Linux系统上配置DNS服务器

发布网友 发布时间:2022-04-19 14:03

我来回答

1个回答

热心网友 时间:2022-05-03 22:43

安装 BIND 软件包

1、安装

# yum -y install bind caching-nameserver

2、配置

下面的例子是以公网IP(172.16.0.80/29),局域网IP(192.168.0.0/24),域名(linuxde.net)作说明。在配置你自己的服务器时,请使用你自己的IP和域名。

# vim /etc/named.conf

options {
directory "/var/named";
# query range
allow-query { localhost; 192.168.0.0/24; };
# transfer range
allow-transfer { localhost; 192.168.0.0/24; };
# recursion range
allow-recursion { localhost; 192.168.0.0/24; };
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
# here is the section for internal informations
vimew "internal" {
match-clients {
localhost;
192.168.0.0/24;
};
zone "." IN {
type hint;
file "named.ca";
};
# set zones for internal
zone "linuxde.net" IN {
type master;
file "linuxde.net.lan";
allow-update { none; };
};
# set zones for internal
zone "0.168.192.in-addr.arpa" IN {
type master;
file "0.168.192.db";
allow-update { none; };
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

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 "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};
};

vimew "external" {
match-clients {
any;
};

zone "." IN {
type hint;
file "named.ca";
};

# set zones for external
zone "linuxde.net" IN {
type master;
file "linuxde.net.wan";
allow-update { none; };
};

# set zones for external *note
zone "80.0.16.172.in-addr.arpa" IN {
type master;
file "80.0.16.172.db";
allow-update { none; };
};
};

include "/etc/rndc.key";

# *note : For How to write for reverse resolvimng, Write network address reversely like below.

the case for 192.168.0.0/24
network address? 192.168.0.0
range of network? 192.168.0.0 - 192.168.0.255
how to write? 0.168.192.in-addr.arpa

case of 172.16.0.80/29
network address? 172.16.0.80
range of network? 172.16.0.80 - 172.16.0.87
how to write? 80.0.16.172.in-addr.arp
设置Zones

创建zone文件以便服务器能解析域名IP。

1、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请根据自己的具体情况配置。

# vim /var/named/linuxde.net.lan

$TTL 86400
@ IN SOA ns.linuxde.net. root.linuxde.net. (
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL

)
# define name server
IN NS ns.linuxde.net.
# internal IP address of name server
IN A 192.168.0.17
# define mail exchanger
IN MX 10 ns.linuxde.net.

# define IP address and hostname
ns IN A 192.168.0.17
2、外部zone文件

这个例子使用的是*地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/linuxde.net.wan

$TTL 86400
@ IN SOA ns.linuxde.net. root.linuxde.net. (
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
# define name server
IN NS ns.linuxde.net.
# external IP address of name server
IN A 172.16.0.82
# define Mail exchanger
IN MX 10 ns.linuxde.net.

# define IP address and hostname
ns IN A 172.16.0.82
创建zone文件使服务器能够反向解析IP到域名。

3、内部zone文件

这个例子使用的是内网地址(192.168.0.0/24),域名(linuxde.net),请使用自己的设置替换。

# vim /var/named/0.168.192.db

$TTL 86400
@ IN SOA ns.linuxde.net. root.linuxde.net. (
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
# define name server
IN NS ns.linuxde.net.

# define range that this domain name in
IN PTR linuxde.net.
# define IP address and hostname
IN A 255.255.255.0

17 IN PTR ns.linuxde.net.
4、外部zone文件

这例子使用*地址(172.16.0.80/29),域名(linuxde.net),请替换成自己的。

# vim /var/named/80.0.16.172.db

$TTL 86400
@ IN SOA ns.linuxde.net. root.linuxde.net. (
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
# define name server
IN NS ns.linuxde.net.

# define range that this domain name in
IN PTR linuxde.net.
# define IP address and hostname
IN A 255.255.255.248

82 IN PTR ns.linuxde.net.
启动BIND

1、完成BIND的配置后,在启动named之前,还需要建立chroot环境。

# yum -y install bind-chroot
# /etc/rc.d/init.d/named start
# chkconfig named on

2、操作检验

确认服务器已经正确解析域名或IP地址。

# dig ns.linuxde.net.
; <<>> DiG 9.3.4 <<>> ns.linuxde.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54592
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns.linuxde.net. IN A

;; ANSWER SECTION:
ns.linuxde.net. 86400 IN A 192.168.0.17

;; AUTHORITY SECTION:
linuxde.net. 86400 IN NS ns.linuxde.net.

;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:35:19 2007
;; MSG SIZE rcvd: 68

# dig -x 192.168.0.17
; <<>> DiG 9.3.4 <<>> -x 192.168.0.17
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45743
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;17.0.168.192.in-addr.arpa. IN PTR

;; ANSWER SECTION:
17.0.168.192.in-addr.arpa. 86400 IN PTR ns.linuxde.net.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS ns.linuxde.net.

;; ADDITIONAL SECTION:
ns.linuxde.net. 86400 IN A 192.168.0.17

;; Query time: 0 msec
;; SERVER: 192.168.0.17#53(192.168.0.17)
;; WHEN: Thu Mar 8 19:37:50 2007
;; MSG SIZE rcvd: 107

配置从DNS服务器

配置从DNS服务器比较简单。下面的例子主DNS是“ns.linuxde.net”,从DNS是“ns.example.info”。

1、在主DNS服务器的zone文件作如下配置

# vim /var/named/linuxde.net.wan

$TTL 86400
@ IN SOA ns.linuxde.net. root.linuxde.net. (
# update serial
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS ns.linuxde.net.
# add name server
IN NS ns.example.info.
IN A 172.16.0.82
IN MX 10 ns.linuxde.net.

ns IN A 172.16.0.82
# rndc reload
server reload successful

2、配置从DNS服务器

# vim /etc/named.conf

# add these lines below
zone "linuxde.net" IN {
type slave;
masters { 172.16.0.82; };
file "slaves/linuxde.net.wan";
};

# rndc reload
server reload successful
# ls /var/named/slaves
linuxde.net.wan # zone file in master DNS has been just transfered

设置别名记录,如果你想为你的主机设置另一个名称,在zone文件定义CNAME记录

# vim /var/named/server-Linux.info.wan

$TTL 86400
@ IN SOA ns.server-linux.info. root.server-linux.info. (
# update serial
2007041501 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS ns.server-linux.info.
IN A 172.16.0.82
IN MX 10 ns.server-linux.info.

ns IN A 172.16.0.82
# aliase IN CNAME server's name
ftp IN CNAME ns.server-linux.info.
# rndc reload
server reload successful

以下是一个整理的主配文件参数解释(仅供参考)/**/代表注释:

options { /*OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53
*/
directory "/var/named";
}; //

//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN { //在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区
type hint;
/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:
master:表示定义的是主域名服务器
slave :表示定义的是辅助域名服务器
hint:表示是互联网中根域名服务器
*/
file "named.ca"; //用来指定具体存放DNS记录的文件
};

zone "localhost" IN { //定义一具域名为localhost的正向区域
type master;
file "localhost.zone" ;
allow-update { none; };
};
zone "test.net" IN { //指定一个域名为test.net的正向区域
type master;
file "test.net”
allow-update { none;};
};

zone "0.0.127.in-addr.arpa" IN { //定义一个IP为127.0.0.*的反向域区
type master;
file "named.local";
allow-update { none; };
};
zone "0.192.168.in-addr.arpa" IN { //定义一个IP为168.192.0.*反向域区
type master;
file "168.192.0";

/var/named/test.net文件
@ IN SOA linux.test.net. Webmaster.test.net. ( SOA表示授权开始
/*上面的IN表示后面的数据使用的是INTERNET标准。而@则代表相应的域名,如在这里代表test.net,即表示一个域名记录定义的开始。而linux.test.net则是这个域的主域名服务器,而webmaster.test.net则是管理员的邮件地址。注意这是邮件地址中用.来代替常见的邮件地址中的@.而SOA表示授权的开始
*/
2003012101 ; serial (d. adams) /*本行前面的数字表示配置文件的修改版本,格式是年月日当日修改的修改的次数,每次修改这个配置文件时都应该修改这个数字,要不然你所作的修改不会更新到网上的其它DNS服务器的数据库上,即你所做的更新很可能对于不以你的所配置的DNS服务器为DNS服务器的客户端来说就不会反映出你的更新,也就对他们来说你更新是没有意义的。
*/
28800 ; refresh
/*定义的是以为单位的刷新频率 即规定从域名服务器多长时间查询一个主服务器,以保证从服务器的数据是最新的
*/
7200 ;retry
/*上面的这个值是规定了以秒为单位的重试的时间间隔,即当从服务试图在主服务器上查询更时,而连接失败了,则这个值规定了从服务多长时间后再试
*/
3600000 ; expiry
/*上面这个用来规定从服务器在向主服务更新失败后多长时间后清除对应的记录,上述的数值是以分钟为单位的
*/
8400 )
/*上面这个数据用来规定缓冲服务器不能与主服务联系上后多长时间清除相应的记

*/
IN NS linux
IN MX 10 linux
linux IN A 168.192.0.14
it-test1 IN A 168.192.0.133
www IN CNAME linux

/*上面的第一列表示是主机的名字,省去了后面的域。
NS:表示是这个主机是一个域名服务器,
A:定义了一条A记录,即主机名到IP地址的对应记录
MX 定义了一邮件记录
CNAME:定义了对应主机的一个别名

/var/named/168.192.0
@ IN SOA linux.test.net. webmastert.linux.net. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS linux.test.net.
/*以上的各关键字的含义跟test.net是相同的
14 IN PTR linux.test.net.
133 IN PTR it-test1.test.net.
/*
上面的第一列表示的是主机的IP地址。省略了网络地址部分。如14完整应该是:
168.192.0.14
PTR:表示反向记录
最后一列表示的是主机的域名。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
流量保险是什么 会计的基本常识是什么 我奶奶这几天总是拉肚子,而且只能躺着一站起来眼睛就发黑,医生说她贫血... win7c盘里找不到users,用户里也没有c:usersadministrator... C盘里没有users文件夹 pvc天然气管能用多久 PVC天然气管的寿命是多久?  请教大神这怎么搞?天然气排烟管怎么弄? ...时不用在手机确认电脑登陆微信如何不用手机确认 急性胰腺炎护理 急性胰腺炎非手术治疗的护理措施 如何在Linux操作系统上架设DNS服务器 洗澡的好处很多,宝宝常洗澡有什么好处? 婴儿洗澡水温度多少合适 十几年前有一种小象的沐浴液,谁知道是什么牌子的? 给新生儿洗澡澡,你知道有哪些注意点吗? 爸妈给新生儿洗澡的时候,一定要注意哪些事情? 新生婴儿可以每天洗澡吗 新生儿洗澡可以用沐浴露吗?还是仅用清水洗? 如何正确给新生儿洗澡? 看到一个小孩洗澡的动态图片,是个小男孩大概4、5... 婴儿沐浴露哪个好,宝宝沐浴露排行榜 新生儿要不要洗澡?洗澡都有哪些好处呢? 婴幼儿洗澡&quot;最佳时间&quot;是什么时候?有哪些注意事项? 新生儿洗澡的禁忌有哪些? 新手宝爸宝妈怎样正确给宝宝洗澡? 如何给新生儿洗澡?要注意哪些问题呢? 给新生儿洗澡不是件小事,爸妈们要注意哪些事情? 苗浴是什么? 新生儿洗澡应注意什么? 婴儿沐浴露哪款好?能推荐几款吗? 在Linux中,如何配置DNS? linuX下DNS怎么搭建? linux下如何配置DNS服务器, 如何给linux添加dns服务器记录? linux dns服务器怎么设置 Linux DNS 如何搭建 linux怎样配置dns服务器 如何在LINUX命令下设置DNS 在LInux中怎样安装和配置DNS服务器要具体步骤 如何在Linux里搭建ddns(动态DNS服务器)? 在linux系统下,如何配置DNS服务器,用域名发布网... LINUX搭建DNS服务器问题 求高手解答 linux下架设dns服务器 RedHat-Linux配置DNS详细步骤是什么? 如何在linux下搭建dns服务器?最关键的配置文件有... 参加一周cp活动中你遇到过哪些有意思的人? ff14黑魔打d几 ff14黑魔法师在哪学 FF14怎么转职黑魔法师 最终幻想14黑魔巴哈4层打法介绍 FF14黑魔怎么打巴...