您的位置:首页 > 运维架构 > Linux

centos 搭建dns server

2017-04-25 11:26 387 查看
如果你以前使用过, 你只是忘记了,那么请你从后往前看.
新人的话一点点看把.

1 BIND 软件安装目录,以及sample文件
安装
# yum install bind
# cd /usr/share/doc/bind-9.7.0/sample // 系统安装bind软件的默认目录中的实例文件
# cd /usr/share/doc/bind-9.7.0/sample/var // 对应实际的配置相应的解析文件
# cd /usr/share/doc/bind-9.7.0/sample/etc // 对应实际的配置服务named.conf文件

2 配置单机DNS需要2个配置目录
# /etc/named.conf //配置服务named.conf文件,可以在上面的sample里找到
# /var/named/chroot/var/named/ //配置相应的解析文件,可以在上面的sample里找到
PS: 配置文件目录会根据你采用的系统不同而变化.

正式配置之前, 先让我们确定你的网卡地址. 即你的DNSserver地址.
我们这里配置的是 192.168.10.15

3 配置服务文件 named.conf
#vim /etc/named.conf //进入named.conf下配置. (如下:)

//
// named.conf
//
// Provided by Red Hat bind 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.
//

options {
listen-on port 53 { 127.0.0.1; any; }; ///注意, 加上any, 意为, 对任何主机在53端口监听, 不加只提供给本机.端口53
listen-on-v6 port 53 { ::1; }; ///支持IPV6
directory "/var/named"; ///定义域名解析文件目录
dump-file "/var/named/data/cache_dump.db"; ///定义数据库目录
statistics-file "/var/named/data/named_stats.txt"; ///状态目录
memstatistics-file "/var/named/data/named_mem_stats.txt"; ///~~~
allow-query { localhost; any; }; ///注意, 加上any, 对本地,所有主机提供解析服务
recursion yes;

dnssec-enable yes; ///如果有请保持默认, 非必须文件
dnssec-validation yes; ///如果有请保持默认, 非必须文件
dnssec-lookaside auto; ///如果有请保持默认, 非必须文件

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key"; ///如果有请保持默认, 非必须文件
};

logging { ///定义log文件地址
channel default_debug {
file "data/named.run"; /// log哦! 好东西 默认的date路径在/var/named/chroot/var/named/
severity dynamic;
};
};

zone "." IN { ///默认保留
type hint;
file "named.ca";
};

zone "qwest.com" IN { ///自己添加的域名正向解析,可以以此为例 此名字实际是一个文件, 对应/var/named/chroot/var/named/相同文件
type master;
file "qwest.com.zone"; ///与步骤4中名字相同. 再别的操作系统中, 可以直接放入路径 例如/etc/xxx.con.zone
};

zone "10.168.192.in-addr.arpa" IN { ///反向解析, 要配对. 地址为192.168.10.x 注意顺序是反的
type master;
file "10.168.192.in-addr.arpa"; ///与步骤4中名字相同
};

include "/etc/named.rfc1912.zones"; ///保持默认即可

4 配置域名文件详细信息的文档 在 /var/named/chroot/var/named/ 下面, 一个文件就是一个域名解析的地址列表
来看看我的机器里有些什么
[root@localhost named]# ls
10.168.192.in-addr.arpa eran.com.zone named.ca named.localhost qwest.com.zone
10.168.192.in-addr.arpa.bak eran.com.zone.bak named.empty named.loopback

其中, 以下四个文件有时候会没有, 没有是不能正常启动的.
如果没有, 请回到步骤1 中 cd /usr/share/doc/bind-9.7.0/sample/var 下找到相应的文件 cp到/var/named/chroot/var/named/ 目录
named.ca
named.localhost
named.empty
named.loopback

我在步骤3举了个例子, qwest.com, 下面就是它的解析文件以及反向解析文件
先看 qwest.com.zone

[root@localhost named]# vim qwest.com.zone ///建立正向解析文件 注意字段后面多了一个.

$TTL 86400
@ IN SOA ns.qwest.com. root.qwest.com. (
20101103 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum default_ttl

@ IN NS ns.qwest.com.

ns IN A 192.168.10.15 /// 二级域名, 看的明白. ns.qwest.com = 192.168.10.15
ldap IN A 192.168.10.3 /// 以下都同上了, 呵呵
ad IN A 192.168.10.4
krb IN A 192.168.10.5
www IN A 192.168.10.15
download IN A 192.168.10.15

[root@localhost named]# vim 10.168.192.in-addr.arpa ///建立反向地址解析文件, 注意IN 前面的数字即为你反解地址.

$TTL 86400
@ IN SOA ns.qwest.com. root.qwest.com. (
20101103 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum default_ttl

@ IN NS dns.qwest.com.

15 IN PTR ns.qwest.com. /// 得到反解结果 15.10.168.192 = ns.qwest.com 看懂没?
3 IN PTR ldap.qwest.com. /// 同上 3.10.168.192 = ldap.qwest.com
4 IN PTR ad.qwest.com. /// 下面的自己看把, 不多写了
5 IN PTR krb.qwest.com.
15 IN PTR www.qwest.com.
15 IN PTR download.qwest.com.

ok, 你按照这个模板重写即可, 注意, 需要在域名后加.zone/ 在域名后面 root.qwest.com. 注意最后的.
结尾的 ns IN A 192.168.10.15 是你做解析的本地网卡的地址 必写
其他的例如 www IN A 就是指你解析出来的地址了.

5 启动/停止/重启 DNSserver
# /etc/init.d/named start
# /etc/init.d/named stop
# /etc/init.d/named restart

最后我们总结下思路:
A 修改name.conf文件, 添加正反解析的文件的文件名 (10.168.192.in-addr.arpa 和 qwest.com.zone)
B 这里面要留神添加 any; 否则你只能再server上解析, 别的电脑无法使用这个server.
C 在 /var/named/chroot/var/named/ 建立 你的正反解析文件, 对应第一步的 10.168.192.in-addr.arpa 和 qwest.com.zone
D 反解和正解文件按格式复制即可, 但是小心多余的. 和其他ns 啊 zone等多出来的单词.
E 正常启动即可.
PS 其debug目录默认再 /var/log/message里面, 即系统log.
你还可以进入 /var/named/chroot/var/named/中的data/named.run 查看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Dnsmasq