以百度百科中的DNS开篇:DNS 是域名系统 (Domain Name Service) 的缩写,是因特网的一项核心服务,它做为能够将域名和IP地址相互映射的一个分布式数据库,可以令人更方便的访问互联网,而不用去记住可以被机器直接读取的IP数串。数据库
提供DNS服务的软件叫Bind,要搭建DNS服务首先得安装Bind,将本地光盘挂载好并用其提供yum源,直接yum -y install bind,bind-utils和bind-libs通常系统自带。vim
在主DNS Server[192.168.12.13]上的配置:缓存
1. 主配置文件的修改:bash
[root@Domain01 ~]# vim /etc/named.conf #DNS的主配置文件 options { // listen-on port 53 { 127.0.0.1; }; #用//注释掉此行 // 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 { localhost; }; #用//注释掉此行 recursion yes; 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"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key";
2.添加zone信息:dom
用vim打开/etc/named
.rfc1912.zones(也能够直接在主配置文件添加,依我的喜爱),而后在后面添加本身zone信息,
分布式
vim /etc/named.rfc1912.zones zone "anoldboy.com" IN { type master; file "anoldboy.com.zone"; allow-transfer { 192.168.12.14; }; #限制只有辅助DNS能够同步区域文件 }; zone "12.168.192.in-addr.arpa" IN { type master; file "192.168.12.zone"; allow-transfer { 192.168.12.14; }; #限制只有辅助DNS能够同步区域文件 };
建议配置完成后用:named-checkconf测试,若是没有报错证实配置正确. ide
3.zone文件配置: 测试
正向解析区域配置:
spa
[root@Domain01 ~]# vim /var/named/anoldboy.com.zone $TTL 600 #定义TTL @ IN SOA anoldboy.com. root.anoldboy.com. ( 2014022101;#serial number 2H; #刷新时间 2M; #无响应状态等待时间 2D; #放弃解析时间 7D; #否认回答缓存时间 ) IN NS dns IN MX 10 mail #必定要记得加优先级 IN NS ns2 dns IN A 192.168.12.13 mail IN A 192.168.12.6 ns2 IN A 192.168.12.14 www IN A 192.168.12.3 ftp IN CNAME www
建议配置完成后用:named-checkzone "区域名称" 区域配置文件[绝对路径] debug
如:named-checkzone "anoldboy.com" /var/named/anoldboy.com.zone 进行测试,返回Ok则代表配置正确。
反向解析区域配置:
$TTL 600 @ IN SOA anoldboy.com. root.anoldboy.com. ( 2014022101; 2H; 2M; 2D; 7D; ) IN NS dns.anoldboy.com. #不可省略anoldboy.com. IN NS ns2.anoldboy.com. #不然系统会默认添加成 13 IN PTR dns.anoldboy.com. #12.168.192.in-addr.arpa 6 IN PTR mail.anoldboy.com. 14 IN PTR ns2.anoldboy.com. 3 IN PTR www.anoldboy.com. 3 IN PTR ftp.anoldboy.com. ~
建议配置完成后用:named-checkzone "区域名称" 区域配置文件[绝对路径]
如:named-checkzone "12.168.192.in-addr.arpa" /var/named/192.168.12.zone 进行测试,返回Ok则代表配置正确。
PS:全部的配置文件属主为root,属组为named。
4.启动named服务,并将其加入开机启动:
root@Domain01 ~]# service named start
[root@Domain01 ~]# chkconfig named on
第一次启动时可能会卡在Generating /etc/rndc.key:上很长时间,因系统随机数不够致使,等待一会便可。
或者能够执行:rndc-confgen -r /dev/urandom -a
而后再重启DNS服务。
至此一个简单的DNS服务已经搭建完成。