1、安装dns服务器shell
使用bind源码安装-不赘述,参考bind文件下的readme文件数据库
使用yum命令安装:yum install bind bind-chroot;服务器
2、dns配置网络
dns的主要配置文件/ets/named.conf;给文件主要用于dns服务器的权限控制,以及解析文件(数据库文件)的制定,dns会经过named.conf文件找到你的解析配置文件(数据库文件),以下:dom
options { listen-on port 53 { any; }; // listen-on-v6 port 53 { ::1; }; 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 { any; }; recursion yes; rrset-order { order cyclic; }; allow-transfer { none; }; //不容许别人进行zone转移 dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "xxxx.com.cn" IN { type master; file "named.xxxx.com.cn"; }; zone "16.172.in-addr.arpa" IN { type master; file "named.172.16"; }; zone "0.27.172.in-addr.arpa" IN { type master; file "named.172.27.0"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
注意:在named.conf中,因为解析时bind是从右往左解析,而ip地址的解析方式是从左往右解析,因此在编写逆向解析zone时,ip地址需放过来写,如:172.27.0写zone时为:0.27.172.in-addr.arpa;在zone内的file参数制定你的解析文件的位置,若是不加上绝对路径,默认存放位置在/var/named/路径下面。ide
3.切换目录到/var/named测试
cd /var/named/
在/var/name目录下新建你在zone里指定的文件名(默认该目录下有例文件如:named.ca。能够复制重命名):spa
named.xxxx.com.cn,named.172.16,named.172.27.0
4.正反解析文件以下:debug
name.xxxx.com.cn日志
$TTL 600 @ IN SOA dns.xxxx.com.cn. root.xxxx.com.cn. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.xxxx.com.cn. dns.xxxx.com.cn. IN A 172.27.0.128 www.xxxx.com.cn. IN A 192.168.2.70 amms IN A 172.16.1.62 ;简化写法,dns会自动补全为:amms.shandongair.com.cn
逆向解析文件:named.172.16
$TTL 600 @ IN SOA dns.xxxx.com.cn. songc.xxxx.com.cn. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.xxxx.com.cn. 128.0.27.172.in-addr.arpa. IN PTR dns.xxxx.com.cn. 62.1 IN PTR amms.xxxx.com.cn.
经过上面文件named.xxxx.com.cn中,我采用了两种域名方式,一种是全称加上“.”,一种是只是“hostname”;加了“.”表示这是一个完整的主机名(FQDN),即:“hostname+domain name”,若是没有加“.”的话,表示该名称仅为“hostname”如:amms。在named.172.16中,因为这是1个16位的网络号,后面16位为主机号,由于bind从右开始解析,因此写主机号时,需颠倒顺序,如:正常地址172.27.1.62,在反向解析文件中,需写做:62.1;若是你的dns服务器地址与你的逆向解析地址不在同一个网络号下,那么,你的dns服务器ip地址逆向解析时就须要写全称,如:
128.0.27.172.in-addr.arpa. IN PTR dns.xxxx.com.cn.
5.named.172.27.0文件对以上配置没有影响,就不贴出来了。配置完成后,重启named服务,使用nslookup或者dig命令进行测试。(注意:在启动named服务之后,需查看/var/log/messages日志文件,查看你的配置是否正常,即便启动正常,也不表明你的dns配置是正常的,因此必须查看日志文件),在日志文件里可能遇到:permission deny,这是因为你的配置文件全部者和组全部者与默认文件不一致,你的配置文件通常为:root:root,而默认文件问root:named;所以需使用chown命令更改.