如何在linux下搭建dns服务器?最关键的配置文件有哪几个?分别有什么用?一般在linux下搭建
1、需要安装bing、bing-chroot、caching-nameserver这三个包
2、编辑配置文件:有三个
(1)主配置文件,是/var/named/chroot/etc/named.conf
在这里你要配置dns的ip,监听端口,区域文件的目录,允许其他主机使用dns服务和缓存。最终要的就是你要定义正向解析区域和反向解析区域,在这里面要指明正向区域文件和反向区域区域文件的名字
(2)两个区域文件,文件名是你自己定义的,必须跟主配置文件里的一样。
区域文件会放在/var/named/chroot/var/named/目录下,里面有模板的。直接拷贝。
3、重启服务。
重启服务失败一般都是配置文件出错,而且dns服务是一个比较难学的服务,所以建议兄弟你在网上找点更详细的资料。就是配置文件详解之类的。要懂得配置文件里每一项参数设定的意义。
祝你好运~~~
在LInux中怎样安装和配置DNS服务器要具体步骤
安装包之后:
1、DNS主配置文件与区域数据文件配置
在/var/named/chroot/etc目录下创建DNS的主配文件:named.conf
#vi
/var/named/chroot/etc/named.conf
2、创建正反向区域文件:在/var/named/chroot/var/named中创建
#cp
-p
/var/named/named.ca
/var/named/chroot/var/named/named.ca
――根提示文件
#vi
/var/named/chroot/var/named/文件名()此文件名根据你的主配文件内容定的。
重启服务就OK了,如果不懂文件内容怎么写的话,继续问。
如何在在Linux系统上配置DNS服务器
安装 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:表示反向记录
最后一列表示的是主机的域名。
CentOS7 搭建 DNS 域名解析服务器
[TOC]主要参考知识
centOS7下DNS服务器的安装与配置 - csdn - 主要参考
CentOS7.3使用BIND配置DNS服务器(一) - csdn - 主要参考
四、bind(named)配置文件 - csdn
Linux系统下搭建DNS服务器——DNS原理总结 - csdn - 从概念层面看 DNS 解析
DNS正反向解析库配置篇(一) - csdn - 正反向解析文件配置
DNS配置详解 BIND实现正向解析和反向解析 - cnblog - 正反向解析文件配置
DNS域名解析服务--Named服务 - 说明详细
搭建DNS服务器 - - 域名解析文件配置说明
Linux中DNS配置 - csdn - 配置文件语法检查用的比较好
linux中dns服务器的搭建 - csdn - nslookup 使用的比较好
其他扩展知识
反向域名解析有什么功能? - 百度百科
Centos7/RHEL7中的ifconfig、netstat、route几个常用指令被替代 - csdn
运维小技巧:使用ss命令代替 netstat,和netstat说再见 - csdn
Linux安装nslookup - csdn
如图:
修改前先备份: cp -p /etc/named.conf /etc/named.conf.bak // 参数-p表示备份文件与源文件的属性一致。
修改配置: vi /etc/named.conf , 配置内容如下:
检查一波
添加配置: vi /etc/named.rfc1912.zones , 配置内容如下:
基于 name.localhost 模板,创建配置文件: cp -p /var/named/named.localhost /var/named/named.reading.zt
配置正向域名解析文件 named.reading.zt : vi /var/named/named.reading.zt ,配置内容如下:
说明:
授权 named 用户 chown :named /var/named/named.reading.zt
检查区域文件是否正确 named-checkzone \"reading.zt\" \"/var/named/named.reading.zt\" ,如图:
基于 name.localhost 模板,创建配置文件: cp -p /var/named/named.localhost /var/named/named.192.168.0
配置反向域名解析文件 named.192.168.0 : vi /var/named/named.192.168.0
授权 named 用户 chown :named /var/named/named.192.168.0
检查区域文件是否正确 named-checkzone \"0.168.192.in-addr.arpa\" \"/var/named/named.192.168.0\" ,如图:
重启 named 服务,让配置生效 systemctl restart named
配置 ifcfg-xxxx vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 , 具体内容如下:
如图:
重启网络服务,让配置生效 systemctl restart network.service
bind-utils 软件包本身提供了测试工具 nslookup
nslookup test.reading.zt , 或者,如下图:
nslookup 192.168.0.232 , 或者,如下图:
RedHat-Linux配置DNS详细步骤是什么?
RedHat-Linux服务器搭建DNS服务器;\\x0d\\x0aDNS domain name system 域名系统\\x0d\\x0a特点:(1)具备递归查询和迭代查询\\x0d\\x0a(2)分布式数据库\\x0d\\x0a(3)将域名解析为IP\\x0d\\x0a(4)具有主DNS服务器、辅DNS服务器和缓存DNS服务器三种类型\\x0d\\x0a(5)全球13台根域服务器\\x0d\\x0a\\x0d\\x0a以下是搭建步骤:\\x0d\\x0a1、准备软件包\\x0d\\x0abind.i386 --主服务软件包 \\x0d\\x0abind-chroot.i386 -- 笼环境软件包 \\x0d\\x0abind-devel.i386 --开发包\\x0d\\x0abind-libs.i386 --库文件\\x0d\\x0abind-utils.i386 --工具包\\x0d\\x0a[root@rootbug ~]# rpm -qa |grep ^bind- --rhel6.3下的包\\x0d\\x0abind-utils-9.8.2-0.10.rc1.el6.x86_64\\x0d\\x0abind-chroot-9.8.2-0.10.rc1.el6.x86_64\\x0d\\x0abind-libs-9.8.2-0.10.rc1.el6.x86_64\\x0d\\x0abind-9.8.2-0.10.rc1.el6.x86_64\\x0d\\x0abind-dyndb-ldap-1.1.0-0.9.b1.el6.x86_64\\x0d\\x0a-------------看到软件包有点纠结,为啥呢??因为这些软件包的名字跟DNS这三个词每半点关系---------\\x0d\\x0a2、安装软件包\\x0d\\x0a[root@rootbug ~]#yum install bind* -y\\x0d\\x0a3、查看配置文件\\x0d\\x0aRHEL6下不管是安装了bind-chroot还是不安装,配置文件都是以/var/named.conf文件为主。\\x0d\\x0a(1)修改/etc/named.conf\\x0d\\x0a[root@rootbug ~]#vim /etc/named.conf\\x0d\\x0a-------省略其他万行代码----------------\\x0d\\x0a\\x0d\\x0aoptions {\\x0d\\x0alisten-on port 53 { any; }; --将原配置文件中的127.0.0.1改为any,表示监听所有\\x0d\\x0alisten-on-v6 port 53 { ::1; };\\x0d\\x0adirectory \"/var/named\"; --域的数据文件存放目录\\x0d\\x0adump-file \"/var/named/data/cache_dump.db\"; \\x0d\\x0astatistics-file \"/var/named/data/named_stats.txt\";\\x0d\\x0amemstatistics-file \"/var/named/data/named_mem_stats.txt\";\\x0d\\x0aallow-query { any; }; --将配置文件的localhost改为any,表示所有人能查询这台服务器\\x0d\\x0arecursion yes;\\x0d\\x0a\\x0d\\x0a-------省略其他万行代码----------------\\x0d\\x0a修改之后保存退出\\x0d\\x0a(2)配置/etc/named.rfc1912.zones,增加域的配置\\x0d\\x0a[root@rootbug ~]#vim /etc/named.rfc1912.zones\\x0d\\x0a按照配置文件格式添加一个域,这里我添加一个rootbug.com的域,域的数据文件放在directory \"/var/named\"当前目录下的data下,名称为:master.rootbug.com.zone。配置域时请注意“;”分号。\\x0d\\x0azone \"rootbug.com\" IN {\\x0d\\x0atype master;\\x0d\\x0afile \"data/master.rootbug.com.zone\";\\x0d\\x0a};\\x0d\\x0a配置好之后保存退出。\\x0d\\x0a(3)创建master.rootbug.com.zone的数据文件\\x0d\\x0a[root@rootbug ~]#vim /var/named/data/master.cluster.com.zone\\x0d\\x0a$TTL 3600\\x0d\\x0a@ IN SOA rootbug. zhangsan. (\\x0d\\x0a2013090801 --版本号,下面的是各种时间,作用是主从DNS服务器的同步时间\\x0d\\x0a30\\x0d\\x0a60\\x0d\\x0a90\\x0d\\x0a3600 )\\x0d\\x0aIN NS 172.16.2.151. --这里就是DNS服务器的IP(实际应该是公网IP,但这里是内网环境,所以写的内网IP),但是ip地址最后还有一个“.”记得加点,也可以写DNS服务器的外网域名;并且这里可以写多个NS,代表了你公司的多台DNS服务器\\x0d\\x0amail IN A 1.1.1.1 --A记录就是真正的数据,这里代表mail.rootbug.com的公网地址为1.1.1.1\\x0d\\x0adns IN A 172.16.2.151\\x0d\\x0abbs IN A 2.2.2.2\\x0d\\x0a\\x0d\\x0a保存退出\\x0d\\x0a(4)启动DNS服务器\\x0d\\x0a[root@rootbug ~]#/etc/init.d/named start ----第一次配置开启过程需要等待一段时间\\x0d\\x0a(5)客户端认证DNS服务器是否正确\\x0d\\x0awindows客户端认证\\x0d\\x0a在IP配置DNS栏中将首选DNS填写为172.16.2.151即可\\x0d\\x0aMicrosoft Windows XP [版本 5.1.2600]\\x0d\\x0a(C) 版权所有 1985-2001 Microsoft Corp.\\x0d\\x0a\\x0d\\x0aC:\\Documents and Settings\\ruutbugnslookup mail.rootbug.com\\x0d\\x0a*** Can\'t find server name for address 172.16.2.151: Server failed\\x0d\\x0a*** Default servers are not available\\x0d\\x0aServer: UnKnown\\x0d\\x0aAddress: 172.16.2.151\\x0d\\x0a\\x0d\\x0aName: mail.rootbug.com\\x0d\\x0aAddress: 1.1.1.1\\x0d\\x0aC:\\Documents and Settings\\ruutbugnslookup dns.rootbug.com\\x0d\\x0a*** Can\'t find server name for address 172.16.2.151: Server failed\\x0d\\x0a*** Default servers are not available\\x0d\\x0aServer: UnKnown\\x0d\\x0aAddress: 172.16.2.151\\x0d\\x0a\\x0d\\x0aName: dns.rootbug.com\\x0d\\x0aAddress: 172.16.2.151\\x0d\\x0aC:\\Documents and Settings\\ruutbugnslookup bbs.rootbug.com\\x0d\\x0a*** Can\'t find server name for address 172.16.2.151: Server failed\\x0d\\x0a*** Default servers are not available\\x0d\\x0aServer: UnKnown\\x0d\\x0aAddress: 172.16.2.151\\x0d\\x0a\\x0d\\x0aName: bbs.rootbug.com\\x0d\\x0aAddress: 2.2.2.2