主DNS服务器:172.16.249.138
辅(slave)服务器:172.16.249.177
~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
~]# uname -r
2.6.32-504.el6.x86_64
用户一次完整的DNS查询请求:
Client客户端发起查询请求 --> /etc/hosts会首先查询自己的本地hosts文件是否有DNS定义,如果有返回结果,否则继续请求查询 --> DNS Service通过DNS服务器发起查询请求 --> Local Cache会先查看本地是否有缓存记录,如果有返回结果,否则继续请求查询 --> DNS Server 向DNS服务器发起查询请求,一次递归请求 --> Server Cache 服务器端会查询自己是否有缓存记录,如果有返回结果,否则会根据请求查询 --> iteration迭代直至返回结果给Client
DNS服务器的类型:
主DNS服务器;
辅助DNS服务器;
缓存DNS服务器;
转发服务器;
FQDN: Full Qualified Domain Name 完全合格域名
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key /etc/rndc.conf
解析库路径:/var/named/
本地名称解析路径: /etc/hosts
编辑name.conf配置文件. //在named里是注意某一行的意思,修改完成后记得重启
[root@Corazon ~]# vim /etc/named.conf options { listen-on port 53 { 172.16.249.138; }; # 监听 172.16.249.138的 53号端口 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; dnssec-enable no; dnssec-validation no; dnssec-lookaside no; /* Path to ISC DLV key */// bindkeys-file "/etc/named.iscdlv.key";//// managed-keys-directory "/var/named/dynamic";}; [root@Corazon ~]# service named restart # 重启服务器
定义区域配置文件,在文件内追加这两个zone,ibm.com是正向区域解析库,249.16.172.in-addr.arpa则是反向区域解析库。
[root@Corazon named]# vim /etc/named.rfc1912.zones zone "ibm.com" IN { type master; # 可选类型{master|hint|slave|forward} file "ibm.zone"; # master:主DNS服务器 hint:根DNS服务器 slave:辅助DNS服务器 forward:转发服务器 }; # 每个语句后面必须要有分号 --> ; <-- zone "249.16.172.in-addr.arpa" IN { # 反向区域格式必须这样定义 --> IP反过来.in-addr.arpa 例如: 1.2.3.4 --> 4.3.2.1.in-addr.arpa type master; file "249.16.172.zone";};
检查named配置文件是否有错,如果没有信息提示,则说明没有语法错误
[root@Corazon named]# named-checkconf
区域解析库由众多Resource Record简称RR 资源记录组成
资源记录常用的有如下几种:
SOA: 起始授权记录,一个解析库只能有一个,并且需要定义在解析库文件的第一条
A,AAAA: 完全合格域名指定其对应的IP地址 A是IPv4, AAAA是IPv6
PTR: IP --> FQDN
NS: 名称服务器 主要用于表明当前区域的DNS服务器
MX: 邮件交换
CNAME: 别名记录
编辑正向区域文件
@: 引用当前区域的名字
$TTL 全局定义 全局都可以继承$TTL指定的值
[root@Corazon named]# vim ibm.zone $TTL 1D@ IN SOA ibm.com. mail.ibm.com. ( # SOA记录必须是第一条 2015091601 # 序列号,用于定义配置版本,从服务器判断同步的关键 1H # 从服务器上主服务器上同步的刷新时间间隔 3m # 从服务器上主服务器上同步失败后重新发起同步的时间间隔 1W # 联系不上主服务器的最大时间期限 1D) # 否定答案TTL值 IN NS ns1 # 定义ns记录主配置文件内除了SOA记录ibm.com.不可省略 IN NS ns2 ,其余可省略ibm.com. ns1 IN A 172.16.249.138 # NS,MX,都必须要有一条A记录ns2 IN A 172.16.249.177mail IN A 172.16.249.21 IN MX 10 mail # 在定义MX与其他记录不同的时,必须要指定优先级www IN A 172.16.249.138 # 一条记录可以定义多次www IN A 172.16.249.21 # 出现多次的记录会以轮询方式工作web IN CNAME www # web.ibm.com.别名到www.ibm.com.
检查正向区域配置文件是否有错,如果没有报错信息,则说明没有语法错误
[root@Corazon named]# named-checkzone ibm.com /var/named/ibm.zone zone ibm.com/IN: loaded serial 2015091601OK
编辑反向区域文件
[root@Corazon named]# vim 249.16.172.zone $TTL 1D@ IN SOA ibm.com. mail.ibm.com. ( 2015091601 1D 10M 5D 1D) IN NS ns1.ibm.com. # 同主配置文件一样 IN NS ns2.ibm.com. 138 IN PTR ns1.ibm.com. # 反向区域不用定义A、MX记录177 IN PTR ns2.ibm.com.21 IN PTR mail.ibm.com.138 IN PTR www.ibm.com.21 IN PTR www.ibm.com.
检查反向区域配置文件是否有错,,如果没有报错信息,则说明没有语法错误
[root@Corazon named]# named-checkzone 249.16.172.in-addr.arpa /var/named/249.16.172.zone
zone 249.16.172.in-addr.arpa/IN: loaded serial 2015091601
OK
测试是否配置成功可以使用
dig、host、nslookup
正解:FQDN-->IP
# dig -t A FQDN
# host -t A FQDN
反解:IP-->FQDN
# dig -x IP
# host -t PTR IP
[root@Corazon named]# dig -t A www.ibm.com @172.16.249.138; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> -t A www.ibm.com @172.16.249.138;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37874;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION:;www.ibm.com. IN A;; ANSWER SECTION:www.ibm.com. 86400 IN A 172.16.249.138www.ibm.com. 86400 IN A 172.16.249.21;; AUTHORITY SECTION:ibm.com. 86400 IN NS ns1.ibm.com.ibm.com. 86400 IN NS ns2.ibm.com.;; ADDITIONAL SECTION:ns1.ibm.com. 86400 IN A 172.16.249.138ns2.ibm.com. 86400 IN A 172.16.249.177;; Query time: 0 msec;; SERVER: 172.16.249.138#53(172.16.249.138);; WHEN: Mon Sep 7 20:06:25 2015;; MSG SIZE rcvd: 129 [root@Corazon named]# host -t A mail.ibm.com 172.16.249.138Using domain server:Name: 172.16.249.138Address: 172.16.249.138#53Aliases:mail.ibm.com has address 172.16.249.21
下面我们演示一下DNS的主从复制:
主从复制需要注意以下几点:
1、应该是一台单独的服务器
2、主服务器的区域解析库文件ns记录一定要有一条指定slave服务器
3、slave只需要定义区域即可,不需要提供解析库文件,而在定义区域时,应该讲解析库文件指定在/var/named/slaves目录下
4、主服务器需要允许slave进行区域传送
5、主从的服务器时间应该同步一致
6、bind程序的版本应该保持一致,否则的话 slave的版本应该高于主DNS服务器的版本
编辑修改Slave的named.conf配置文件,只修改如下部分
[root@Corazon slaves]# vim /etc/named.conf options { listen-on port 53 { 172.16.249.177; }; directory "/var/named"; allow-query { 172.16.0.0/16; }; recursion yes; 编辑区域文件增加如下内容 [root@Corazon slaves]# vim /etc/named.rfc1912.zones zone "ibm.com" IN { type slave; masters { 172.16.249.138; }; file "slaves/ibm.zone";};zone "249.16.172.in-addr.arpa" IN { type slave; masters { 172.16.249.138; }; file "slaves/172.16.249.zone";}; [root@Corazon slaves]# rndc reload # 重载主配置文件和区域解析库文件 查看是否同步成功, [root@Corazon slaves]# pwd/var/named/slaves[root@Corazon slaves]# lltotal 8-rw-r--r-- 1 named named 430 Sep 16 14:42 172.16.249.zone-rw-r--r-- 1 named named 432 Sep 16 14:23 ibm.zone
到这里我们的DNS配置已经全部完成,谢谢
完。
原文地址:http://corazon.blog.51cto.com/9658694/1699497