Namedforlinux
1. 在linux上搭建DNS服务如果named.conf和zone文件配置都没有问题但启动失败是何原因
安装 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
2. Linux域名解析
你已经作对了啊,就是做A记录指到你的IP就行了。
只是生效需要一段时间而已。
刚Ping了一下,www.feelworld.com指向的IP是82.98.86.175,你的IP应该是173.231.6.89,那把这个A记录的IP改一下就行了
3. Linux中如何设置域名服务器
etc/hosts 文件的具体内容如下: # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost fc4 192.168.1.3 a.test.com a 192.168.1.1 b.test.cn b /etc/host.conf 文件: order hosts,bind 表示先用hosts文件做解析,在用DNS解析 /etc/resolv.conf 文件: ; generated by NetworkManager, do not edit! search test.com nameserver 127.0.0.1 search test.cn nameserver 192.168.1.1 nameserver 61.144.56.100 /etc/named.conf 文件: // // named.conf for Red Hat caching-nameserver // options { directory "/var/named"; mp-file "/var/named/data/cache_mp.db"; statistics-file "/var/named/data/named_stats.txt"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; zone "." IN { type hint; file "named.ca"; }; zone "test.com"IN { type master; file "test.com"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa"IN { type master; file "192.168.1.rev"; allow-update { none; }; }; zone "test.cn"IN { type master; file "test.cn"; allow-update { none; }; }; zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.ip6.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; }; }; include "/etc/rndc.key"; 在/var/name/test.com 文件下: $TTL 86400 @ IN SOA a.test.com. root.a.test.com ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS a.test.com. IN MX 10 mail.test.com. a IN A 192.168.1.3 mail IN A 192.168.1.3 //其中root.a.test.com的含义是管理员的邮箱 /var/name/test.cn 文件下: $TTL 86400 @ IN SOA b.test.cn. root.a.test.com ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS b.test.cn. IN MX 10 mail.test.cn. b IN A 192.168.1.1 mail IN A 192.168.1.1 /var/name/192.168.1.rev 文件下: $TTL 86400 @ IN SOA 1.168.192.in-addr.arpa. root.test.com. ( 1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS a.test.com. IN NS b.test.cn. IN MX 10 mail.test.com. IN MX 10 mail.test.cn. 3 IN PTR a.test.com. 3 IN PTR mail.test.com. 1 IN PTR b.test.cn. 1 IN PTR mail.test.cn. 然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。 最后还有一些nslookup的命令比较有用: set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息 set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址 server 192.168.0.1更换查询的DNS服务器地址。
4. Linux下常用的DNS服务软件是什么,常用的DNS记录有
Linux下常用的DNS服务软件是BIND
以下是一个配置DNS服务的实例:
………………………………………………DNS的配置步骤:……………………………………………………
一、配置静态IP地址:
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.198.0.5
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
#/etc/init.d/network restart
#ifconfig eth0
二、使用BIND构建DNS服务器
1、BIND服务器安装
RHEL4中包括了BIND服务相关的软件包
bind-libs-9.2.4-2
提供了实现域名解析功能必备的库文件 ,系统默认安装
bind-utils-9.2.4-2
提供了对DNS服务器的测试工具程序 ,系统默认安装
bind-9.2.4-2 安装文件位于第4张安装光盘中
# rpm -ivh bind-9.2.4-2.i386.rpm
BIND服务器的服务程序脚本名称是named,默认没有启动,需手动设置。
#rpm -ql bind | grep init.d
/etc/rc.c/init.d/named
#chkconfig --level 35 named on
#chkconfig --list named
三、主域名服务器的配置
1、在named.conf文件中设置域
全局配置
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
建立正向解析域
zone "." IN { (指定根域)
type hint;
file "named.ca";
};
zone "benet.com" { (指定本地域)
type master;
file "benet.com.zone";
};
建立反向解析域
zone "0.168.192.in-addr.arpa" { (指定反向域)
type master;
file "192.168.0.rev";
};
2、建立正向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)
#cat /var/named/benet.com.zone
$TTL 86400 (秒)
@ IN SOA benet.com. hostmaster.benet.com. (
42 ; serial (d. adams) (序列号)
3H ; refresh (3小时更新)
15M ; retry (15分钟重试)
1W ; expiry (1周)
1D ) ; minimum (1天)
@ IN NS ns1.benet.com.
@ IN NS ns2.benet.com.
ns1 IN A 192.168.0.5
ns2 IN A 192.168.0.6
host1 IN A 192.168.0.7
host2 IN A 192.168.0.8
mail IN CNAME host1.benet.com.
www IN CNAME host2.benet.com.
@ IN MX 5 mail.benet.com.
3、建立反向区域文件 (该文件需要用vi编辑器手动建立在/var/named中,并写其内容)
# cat /var/named/192.168.0.rev
$TTL 86400
@ IN SOA ns1.ltest.com. hostmaster.ltest.com. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns1.ltest.com.
@ IN NS ns2.ltest.com.
2 IN PTR ns1.ltest.com. (PTR可用IP省略方法,1.168.192.in-addr.rapa表192.168.1.2可写为2)
3 IN PTR ns2.ltest.com.
11 IN PTR host1.ltest.com.
12 IN PTR host2.ltest.com.
4、配置文件和区域文件的测试
A、测试named.conf主配置文件
# named-checkconf (如果不显示任何信息表示语法正确 )
B、测试区域文件
# named-checkzone benet.com /var/named/benet.com.zone
# named-checkzone 0.168.192.in-addr.arpa /var/named/192.168.0.rev
(named-checkzone命令对正向区域文件和反向区域文件进行检查语法是否错误,第一个参数指定区域名称,第二个参数指定区域文件名称,如果语法正确将显示OK)
5、重启named服务
#service named restart
四、从域名服务器 的配置
(它做为主域名服务器的辅助和备份服务器,自身不建立区域文件,而是从主域名服务器中查询并保存,它可以与主域名服务器提供相同的域名解析服务,它需要在与主域名服务器不同的主机中构建)
1、在named.conf文件中设置域
建立正向解析域
zone "benet.com" {
type slave; (type设置为“slave”,表示当前DNS服务器是该域的从域名服务器类型 )
file "slaves/benet.com.zone" (从域名服务器中的区域文件应设置保存在 “slaves”子目录中,区域文件将从主 域名服务器中获取并保存在该目录中,为了便于管理,尽量使用与主服务器相 同的区域文件名称)
masters { 192.168.0.5; }; ( 使用masters设置主域名服务器的IP地址 )
};
建立反向解析域
zone "0.168.192.in-addr.arpa" {
type slave;
file " slaves/192.168.0.rev";
masters { 192.168.0.5; };
};
2、检测配置文件和启动named服务
从域名服务器只需要检测配置文件的语法
# named-checkconf
启动从域名服务器
# service named start
查看区域文件
从服务器启动后将从主域名服务器中获得区域文件并保存在指定的目录中
# ls /var/named/slaves/
192.168.0.rev benet.com.zone
(如果/var/named/slaves/目录中没有发现区域文件,说明从域名服务器和主域名服务器之间传输区域文件不成功,需要排错。)
五、缓存域名服务器的配置
(它应保证能够与互联网中的其他DNS服务器进行连接,它的主要作用是提高域名解析速度和节约出口带宽)
1、安装caching-nameserver软件包
(RHEL4系统为配置缓存域名服务器专门提供了名为“caching-nameserver”的软件包,该软件包保存在第1张安装光盘中,默认没有安装。)
# rpm -ivh caching-nameserver-7.3-3.noarch.rpm
(caching-nameserver软件包安装时将对BIND服务器的配置文件named.conf的内容进行更改,原文件中的内容保存在/etc/named.conf.rpmorig中。)
2、named.conf中的全局设置 (其中以//开头的行是无效行)
options {
directory "/var/named"; (directory用于设置BIND服务器的工作目录,即域名区域文件保存的目录 )
mp-file "/var/named/data/cache_mp.db"; (mp-file用于设置域名缓存文件的保存位置和文件名 )
statistics-file "/var/named/data/named_stats.txt";
};
3、根区域设置
named.conf中的根区域设置
zone "." IN {
type hint; (type设置为hint表示该区域的类型是根区域)
file "named.ca"; (file用于设置区域文件,根区域文件的名称是“named.ca” )
};
(named.ca是根区域文件,位于“/var/named/ ”目录中,named.ca中包含全球DNS根服务器的地址信息请不要更改)
4、localhost正向解析
(localhost区域的作用是对主机名称“localhost”和环回地址“127.0.0.1” 进行解析,总是代表本机)
zone "localhost" IN {
type master; ( type设置为master表示区域的类型为主服务器 )
file "localhost.zone"; (file设置区域文件名的名字 ,localhost.zone在/var/named中,是安装caching- nameserver时自动安装的,用cat /var/named/localhost.zone查看内容)
};
5、localhost反向解析
zone "0.0.127.in-addr.arpa" IN {
type master; ( type设置为master表示区域的类型为主服务器 )
file "named.local"; (file设置区域文件名的名字,named.local在/var/named中,是安装caching-nameserver时 自动安装的,用cat /var/named/named.local查看内容)
};
6、缓存域名服务器在安装caching-nameserver软件包后不需要任何其他配置就可以启动运行,并实现域名查询和缓存功能,但它必须能够访问互联网。可以使用nslookup命令进行测试。
六、DNS服务器的测试
1、DNS测试原理
DNS服务器的主要测试方法
使用nslookup、dig和host等专用工具可以对DNS服务器进行较全面的测试
nslookup命令在Linux和Windows系统中都默认安装,是比较常用的测试工具
2、使用nslookup测试DNS服务器
进入nslookup命令交换环境
# nslookup
>
设置使用指定的DNS服务器
> server 192.168.0.5
测试localhost主机域名的正向解析
> localhost
测试localhost主机域名的反向解析
> 127.0.0.1
测试互联网中的域名解析
> www.benet.com
测试benet.com域中的A记录
> host1.benet.com
测试benet.com域中的PTR记录
> 192.168.0.7
测试benet.com域中的CNAME记录
> www.benet.com
测试benet.com域中的NS记录
> set type=ns (设置域名查询类型为NS即域名记录)
> benet.com
测试benet.com域中的MX记录
> set type=mx (设置域名查询类型为MX即邮件交换记录)
> benet.com
设置进行A记录的测试
> set type=a (设置域名查询类型为A即地址记录)
>mail.benet.com
3、使用dig测试DNS服务器 (dig只运行在liunx平台,是domain information grep的缩写)
1)#dig --help
dig命令的格式
Usage: dig [@global-server] [domain] [q-type] [q-class] {q-opt}
{global-d-opt} host [@local-server] {local-d-opt}
[ host [@local-server] {local-d-opt} [...]]
Use "dig -h" (or "dig -h | more") for complete list of options
2)dig命令可以比nslookup命令显示更多的DNS服务器信息
# dig @192.168.0.5 benet.com (@后是被查询的DNS服务器的IP地址,benet.com域名做为命令参数)
; <<>> DiG 9.2.4 <<>> @192.168.0.5 benet.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51201
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;benet.com. IN A
;; AUTHORITY SECTION:
benet.com. 86400 IN SOA ns1.benet.com. hostmaster.benet.com. 42 10800 900 604800 86400
以上dns是以benet.com域为实例讲解………………
5. Linux named启动不了
配置问题报错已经说得很清楚了
没有找到 /etc/named.local.zones 文件
查看你的配置文件 /etc/named.conf 72行左右的配置
ls /etc/named.local.zones 看看这个文件存在吗
6. linux下如何配置DNS服务器,
在linux下配置DNS服务器,下面是配置过程中设置过的一些文件,
/etc/hosts 文件的具体内容如下:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost fc4
192.168.1.3 a.test.com a
192.168.1.1 b.test.cn b
/etc/host.conf 文件:
order hosts,bind
表示先用hosts文件做解析,在用DNS解析
/etc/resolv.conf 文件:
; generated by NetworkManager, do not edit!
search test.com
nameserver 127.0.0.1
search test.cn
nameserver 192.168.1.1
nameserver 61.144.56.100
/etc/named.conf 文件:
//
// named.conf for Red Hat caching-nameserver
//
options {
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "test.com"IN {
type master;
file "test.com";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa"IN {
type master;
file "192.168.1.rev";
allow-update { none; };
};
zone "test.cn"IN {
type master;
file "test.cn";
allow-update { none; };
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.ip6.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; };
};
include "/etc/rndc.key";
在/var/name/test.com 文件下:
$TTL 86400
@ IN SOA a.test.com. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS a.test.com.
IN MX 10 mail.test.com.
a IN A 192.168.1.3
mail IN A 192.168.1.3
//其中root.a.test.com的含义是管理员的邮箱
/var/name/test.cn 文件下:
$TTL 86400
@ IN SOA b.test.cn. root.a.test.com (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS b.test.cn.
IN MX 10 mail.test.cn.
b IN A 192.168.1.1
mail IN A 192.168.1.1
/var/name/192.168.1.rev 文件下:
$TTL 86400
@ IN SOA 1.168.192.in-addr.arpa. root.test.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS a.test.com.
IN NS b.test.cn.
IN MX 10 mail.test.com.
IN MX 10 mail.test.cn.
3 IN PTR a.test.com.
3 IN PTR mail.test.com.
1 IN PTR b.test.cn.
1 IN PTR mail.test.cn.
然后用/etc/init.d/named restart重启DNS服务,在重启过程中,我曾经出现过好几次的错误,按照出错的提示,会提示是named.conf文件第几行出错的。或者提示在那些包含文件例如test.cn这些文件里面的问题,然后一个一个排除。
最后还有一些nslookup的命令比较有用:
set all用于显示使用nslookup工具这台机器上的DNS服务器的一些信息
set type=any会显示完整信息包括域中邮件服务器和主从DNS服务器的名字和IP地址
server 192.168.0.1更换查询的DNS服务器地址
7. Linux中/etc/named.conf配置文件如何设置
1、首先打开一台linux虚拟机。
8. linux dns服务器怎么设置
在linux系统中一般通过bind软件包来提供dns服务。
1、环境准备:
临时关闭selinux和iptables
#setenforce0
#serviceiptablesstop
2、查询相关软件包:
[root@localhost~]#yumsearchbind
Loadedplugins:proct-id,refresh-packagekit,subscription-manager
UpdatingRedHatrepositories.
======================================================================================N/SMatched:bind======================================================================================
PackageKit-device-rebind.i686:
bind.i686:TheBerkeleyInternetNameDomain(BIND)DNS(DomainNameSystem)server
bind-chroot.i686:,named(8)
bind-utils.i686:
其中各软件包的作用如下:
1)、bind: 提供域名服务的主要程序及相关文件。
2)、bind-chroot:为bind提供一个伪装的根目录以增强安全性。
3)、bind-utils:提供对DNS服务器测试的工具程序(如nslookup、dig等)。
3、安装BIND软件包
#yuminstall*bind*
4、配置DNS服务器:
1)、bind服务器端程序
主要执行程序:/usr/sbin/named
服务脚本:、etc/init.d/named
默认监听端口:53
主配置文件: /etc/named.conf
保存DNS解析记录的数据文件: /var/named/chroot/var/named
2)、查询bind程序的配置文件列表
[root@localhost~]#rpm-qcbind
/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
3)、查看主配置文件named.conf
#vim/etc/named.conf
4)、主配置文件解析:
a、全局配置部分,默认的全局配置项如下:
options{
11listen-onport53{127.0.0.1;};//监听的端口和接口IP地址
12listen-on-v6port53{::1;};
13directory"/var/named";//dns区域的数据文件默认存放位置
14mp-file"/var/named/data/cache_mp.db";
15statistics-file"/var/named/data/named_stats.txt";
16memstatistics-file"/var/named/data/named_mem_stats.txt";
17allow-query{localhost;};//允许dns查询的客户机列表,any表示所有
18recursionyes;//是否允许客户机进行递归查询
19
20dnssec-enableyes;
21dnssec-validationyes;
22dnssec-lookasideauto;
23
24/*PathtoISCDLVkey*/
25bindkeys-file"/etc/named.iscdlv.key";
26};
全局配置中还有如下选项:
//将本域名服务器不能解析的条目转发给其它DNS服务器的IP地址
forwarders{202.102.24.68;12.3.3.3;};
b、默认的区域配置项如下:
35zone"."IN{
36typehint;//区域类型。hint为根区域;master为主区域;slave为辅助区域
37file"named.ca";//该区域对应的区域数据配置文件名
38};
区域配置中还有如下选项:
//允许下载区域数据库的从域名服务器IP地址
allow-transfer{189.98.90.23;};
//允许动态更新的客户端IP地址(none表示全部禁止)
allow-update{none;};
添加如下区域配置:
zone“my.com”IN{
typemaster;//主区域
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反向解析
typemaster;//主区域
file“192.168.153.my.arpa”;//该区域对应的区域数据配置文件名
};
5)、配置完了,可以执行如下命令对named.conf文件进行语法检查。
#named-checkconf
注意:倒序网络地址.in-addr.arpa 表示反向区域
主配置文件最后还有一行是:
//该文件包含/etc/named.rfc1912.zones文件
include“/etc/named.rfc1912.zones”
区域数据配置文件:
先看一下named.localhost的内容:
$TTL1D//timetolive生存时间
@[email protected].(//”rname.invalid”DNS区域地址
0;serial//更新序列号
1D;refresh//更新时间
1H;retry//重试延时
1W;expire//失效时间
3H);minimum//无效地址解析记录的默认缓存时间
NS@//nameserver域名服务记录
A127.0.0.1//address只用在正向解析的区域数据文件中
AAAA::1
新建2个对应的区域数据配置文件:
#touchmy.com
#touch192.168.153.my.arpa
#vimmy.com
$TTL86400
@INSOAmy.com.admin.my.com(//admin.my.cm为该区域管理员的邮箱地址
200900201
3H
15M
1W
1D
)
@INNSns1.my.com.//当前域的DNS服务器地址
INMX10mail.my.com.//用于设置当前域的邮件服务器域名地址,数字10表示优先级别,数字越大优先级越低
ns1INA192.168.153.130
mailINA192.168.153.130
wwwINA192.168.153.130
ftpINCNAMEwww//CNAME别名(canonicalname)记录,表示ftp.my.com和www.my.com对应同一个IP.
[root@localhostnamed]#vim192.168.153.my.arpa
$TTL86400
@INSOAmy.com.admin.my.com(
200900201
3H
15M
1W
1D
)
@INNSns1.my.com.
130INPTRftp.my.com
启动DNS服务
[root@localhost~]#servicenamedstart
4、测试:
配置一台ftp服务器用于测试:
#servicevsftpdstart//启动vsftpd服务
当前网卡的配置:
eth0:192.168.0.1/24
eth1:192.168.153.130/24
[root@localhostnamed]#nslookup192.168.153.130
Server:127.0.0.1
Address:127.0.0.1#53
130.153.168.192.in-addr.arpaname=www.my.com.
[root@localhost~]#nslookupftp.my.com
Server:127.0.0.1
Address:127.0.0.1#53
ftp.my.comcanonicalname=www.my.com.
Name:www.my.com
Address:192.168.153.130
9. 如何在在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:表示反向记录
最后一列表示的是主机的域名。
10. Linux 下安装DNS服务器,修改配置文件,谁给我做一下啊,named.conf文件发上来
//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
mp-file "/var/named/data/cache_mp.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// Those options should be used carefully because they disable port
// randomization
// query-source port 53;
// query-source-v6 port 53;
allow-query { any; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { any; };
match-destinations { any; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
我给你说声,DNS服务器不只是配置named.conf这么简单。还有/etc/named.rfc1912.zones下的DNS正向反向查找区域设置。
祝你成功
来自:寒枫