CentOS7系统安装DNS服务linux
DNS ( Domain Name System )是“域名系统”的英文缩写,简单来讲就是一个数据库,用于存储网络中IP地址与主机名的对应关系;简单的说DNS的做用就是把主机名解析为IP地址;以下图:web
域名系统做为一个层次结构和分布式数据库,包含各类类型的数据,包括主机和域名。DNS数据库中的名称造成一个分层的树状结构;域名在拼装时,是沿着这颗树的最下面往树根上走的;例如:www.baidu.com,其实改余名的完整写法应该是:www.baidu.com. 注意域名最后面有一个 ".";数据库
假设咱们第一次经过浏览器访问www.baidu.com这个域名。DNS如何查找到www.baidu.com这台主机呢?以下vim
负责至少解析一个域centos
主名称服务器浏览器
辅助名称服务器缓存
不负责域解析安全
缓存名称服务器服务器
资源记录(Resource Record):简称rr;经常使用的资源记录类型有:A, AAAA, PTR, SOA, MX, CNAME, NS;网络
语法格式
name [TTL] IN RR_TYPE VALUE # RR_TYPE:替换为指定的资源记录类型;
name:当前区域的名字;例如:“enzhi.com.”,或者 "1.168.192.in-addr.arpa";
value:由多部分组成
1.当前区域的区域名称(也可使用主DNS服务器名称);
2.当前区域的管理员的邮箱地址;但地址中不能使用@符号,通常使用"."来替代;
3.(主从服务协调属性的定义以及否认答案的TTL)
例如:
enzhi.com. 86400 IN SOA enzhi.com. admin.enzhi.com.( 2017011901 ;serial 2H ;refresh 10M ;retry 3D ; expire 1D) ;minimum
name:当前区域的区域名称;
value:当前区域的某DNS服务器的名字;例如:ns1.enzhi.com.;
注意:一个区域能够有多个NS记录;
例如:
enzhi.com. 86400 IN NA ns1.enzhi.com. enzhi.com. 86400 IN NA ns2.enzhi.com.
name:当前区域的名称;
value:当前区域某邮件交换器的主机名;
注意:MX记录能够有多个,但每一个记录的value以前应该有一个数字表示其优先级;
例如:
enzhi.com 86400 IN MX 10 mail.enzhi.com.
name:某FQDN,例如:www.enzhi.com.;
value:某IPv4地址;
例如:
www.enzhi.com. 86400 IN A 192.168.1.141 www.enzhi.com. 86400 IN A 192.168.1.142 bbs.enzhi.com. 86400 IN A 192.168.1.143
name:IP地址,有特定格式,IP反过来写,并且加特定后缀;例如:192.168.1.141的记录应该写为141.1.168.192.in-addr.arpa;
vlaue:FQDN
例如:
141.1.168.192.in-addr.arpa. 86400 IN PTR www.enzhi.com.
name:FQDN格式的别名;
value:FQDN格式的正式名字;
例如:
web.enzhi.com. 86400 IN CNAME www.enzhi.com.
注意:
一、TTL的值能够从全局继承;只要在第一行加$TTL 86400下面全部的资源记录均可以继承; 二、@符号表示当前区域的名称; 三、相邻的两条记录其name相同时后面的能够省略; 四、MX,NS等类型的记录的value为一个FQDN,此FQDN应该有一个A记录;
Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server;bind是dns协议的一种实现;其运行后的程序名为named;
注意:本文演示环境为centos7.2系统环境;
yum -y install bind
bind服务的主配置文件:/etc/named.conf
或包含进来的其它文件:
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
解析库文件:/var/named/目录下;通常名字为:ZONE_NAME.zone
注意:
一、一台DNS服务器可同时为多个区域提供解析;
二、必需要有根区域解析库文件:named.ca;
三、还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库;
正向:named.localhost
方向:named.loopback
rndc命令
默认监听在127.0.0.1的tcp/953端口,所以仅容许本地使用;
注意:bind程序安装完成后,默认便可做为缓存服务器使用;若是没有专门负责解析的区域,直接可启动服务;
启动服务方法
CentOS6:service named start CentOS7:systemctl start named.service
主配置文件的格式
# 全局配置段 options{...} # 日志配置段 logging{...} # 区域配置段 zone{...}
注意:每一个配置语句必须以分号结尾;不然为语法错误;
安装完bind之后默认启动就是缓存服务器;仅须要关闭部分不须要的功能便可;
一、配置监听能与外部主机通讯的IP地址;
# 在全局配置段中修改 [root@Bj-1-141 ~]# vim /etc/named.conf listen-on port 53 { 127.0.0.1; 192.168.1.141; };
二、学习时建议关闭部分功能
# 关闭dnssec部分 //dnssec-enable yes; //dnssec-validation yes; # 关闭仅容许本地查 //allow-query { localhost; };
注意://表示注释符号
三、检查配置文件是否有语法错误
named-checkconf [/etc/named.conf]
四、启动named服务
[root@Bj-1-141 ~]# systemctl start named.service
五、测试
[root@Bj-1-141 ~]# dig -t A www.baidu.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.baidu.com @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57431 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 6 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 1200 IN CNAME www.a.shifen.com. www.a.shifen.com. 300 IN A 119.75.218.70 www.a.shifen.com. 300 IN A 119.75.217.109 ;; AUTHORITY SECTION: a.shifen.com. 1200 IN NS ns2.a.shifen.com. a.shifen.com. 1200 IN NS ns1.a.shifen.com. a.shifen.com. 1200 IN NS ns5.a.shifen.com. a.shifen.com. 1200 IN NS ns4.a.shifen.com. a.shifen.com. 1200 IN NS ns3.a.shifen.com. ;; ADDITIONAL SECTION: ns2.a.shifen.com. 1200 IN A 180.149.133.241 ns3.a.shifen.com. 1200 IN A 61.135.162.215 ns5.a.shifen.com. 1200 IN A 119.75.222.17 ns1.a.shifen.com. 1200 IN A 61.135.165.224 ns4.a.shifen.com. 1200 IN A 115.239.210.176 ;; Query time: 277 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 18:08:58 CST 2017 ;; MSG SIZE rcvd: 271
dig , host, nslookup;若是当前系统上没有此三个命令,须要安装bind-utils软件包;
功用:用于测试dns系统,所以其不会查询hosts文件;
使用格式
dig [-t RR_TYPE] name [@server] [query options]
查询选项
+[no]trace:跟踪解析过程; +[no]recurse:进行递归解析;
反向解析
dig -x IPADDR
模拟彻底区域传送
dig -t axfr DOMAIN [@server]
示例
# 查询baidu.com的NS记录 [root@Bj-1-141 ~]# dig -t NS baidu.com # 跟踪解析www.baidu.com的过程 [root@Bj-1-141 ~]# dig +trace www.baidu.com # 解析www.baidu.com的A记录 [root@Bj-1-141 ~]# dig -t A www.baidu.com
使用格式
host [-t RR_TYPE] name SERVER_IP
示例
# 解析www.jd.com的A记录 [root@Bj-1-141 ~]# host -t A www.jd.com www.jd.com is an alias for www.jdcdn.com. www.jdcdn.com has address 59.108.139.1
使用格式
nslookup [-opthions] [name] [server]
交互式模式下使用方式
# 命令行下直接输入nslookup nslookup> server ip:server为关键字,以指定的IP为dns服务器进行查询; set q=RR_TYPE:set q= 为关键字,RR_TYPE为要查询的资源类型; name:要查询的域名;
示例
[root@Bj-1-141 ~]# nslookup > server 192.168.1.1 Default server: 192.168.1.1 Address: 192.168.1.1#53 > set q=A > www.baidu.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 119.75.218.70 Name: www.a.shifen.com Address: 119.75.217.109
功用:named服务控制命令
rndc status rndc flush
演示环境
操做系统版本 | DNS服务器IP地址 | 演示域 | 内核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
注意:以enzhi.com为列;
在主配置文件中实现或主配置文件辅助配置文件中实现:/etc/named.conf或者/etc/named.rfc1912.zones
格式
zone "ZONE_NAME" IN { type {master|slave|hint|forward}; file "ZONE_NAME.zone"; };
示例
[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones # 在对下面添加 zone "enzhi.com." IN { type master; file "enzhi.com.zone"; };
注意:区域名字即为域名;
主要记录为A或 AAAA;在/var/named/目录下创建区域数据文件;
一、建立正向区域文件
[root@Bj-1-141 ~]# cd /var/named/ [root@Bj-1-141 named]# vim enzhi.com.zone $TTL 3600 $ORIGIN enzhi.com. @ IN SOA enzhi.com. admin.enzhi.com. ( 2017011901 1H 10M 3D 1D) IN NS ns1.enzhi.com. IN MX 10 mail.enzhi.com. ns1 IN A 192.168.1.141 mail IN A 192.168.1.142 www IN A 192.168.1.143 bbs IN A 192.168.1.144 bbs IN A 192.168.1.145
注意:
$TTL 3600:表示定义默认TTL值,因此在下面的全部资源记录都不用在写TTL值; $ORIGIN enzhi.com.:做用是在资源记录中像"ns1.enzhi.com."就能够简写为ns1,会继承$ORIGIN后面定义的域名;
二、修改区域文件的权限及属组
# 修改区域文件的属组为named用户 [root@Bj-1-141 named]# chown :named enzhi.com.zone # 修改区域文件的权限为640 [root@Bj-1-141 named]# chmod 640 enzhi.com.zone
三、检查配置文件和区域文件是否有语法错误
[root@Bj-1-141 named]# named-checkconf [root@Bj-1-141 named]# named-checkzone enzhi.com. /var/named/enzhi.com.zone zone enzhi.com/IN: loaded serial 2017011901 OK
[root@Bj-1-141 ~]# rndc reload server reload successful # 或者执行 [root@Bj-1-141 ~]# systemctl reload named.service
一、解析www.enzhi.com的A记录;
[root@Bj-1-141 ~]# dig -t A www.enzhi.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40269 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.enzhi.com. IN A ;; ANSWER SECTION: www.enzhi.com. 3600 IN A 192.168.1.143 ;; AUTHORITY SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:06:12 CST 2017 ;; MSG SIZE rcvd: 92
二、解析enzhi.com的NS记录;
[root@Bj-1-141 ~]# dig -t NS enzhi.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27289 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;enzhi.com. IN NS ;; ANSWER SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 34 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:08:53 CST 2017 ;; MSG SIZE rcvd: 72
演示环境
操做系统版本 | DNS服务器IP地址 | 演示域 | 内核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
在主配置文件中实现或主配置文件辅助配置文件中实现:/etc/named.conf或者/etc/named.rfc1912.zones
格式
zone "ZONE_NAME" IN { type {master|slave|hint|forward}; file "ZONE_NAME.zone"; };
注意:反向区域的名字,为反写的网断地址.in-addr.arpa;例如:1.168.192.in-addr.arpa;
示例
[root@Bj-1-141 ~]# vim /etc/named.rfc1912.zones # 在最下面添加 zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.zone"; };
一、建立反向解析区域文件;
[root@Bj-1-141 ~]# cd /var/named/ [root@Bj-1-141 named]# vim 192.168.1.zone $TTL 3600 $ORIGIN 1.168.192.in-addr.arpa. @ IN SOA enzhi.com. admin.enzhi.com. ( 2017011901 1H 10M 3D 1D) IN NS ns1.enzhi.com. 141 IN PTR ns1.enzhi.com. 142 IN PTR mail.enzhi.com. 143 IN PTR www.enzhi.com. 144 IN PTR bbs.enzhi.com. 145 IN PTR bbs.enzhi.com.
二、修改区域文件属组及权限
[root@Bj-1-141 named]# chmod 640 192.168.1.zone [root@Bj-1-141 named]# chown :named 192.168.1.zone
三、检查配置文件及反向区域文件配置语法
[root@Bj-1-141 ~]# named-checkconf [root@Bj-1-141 ~]# named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.zone zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011901 OK
[root@Bj-1-141 ~]# rndc reload server reload successful # 或者执行 [root@Bj-1-141 ~]# systemctl reload named.service
一、反向解析www.enzhi.com域名的IP地址
[root@Bj-1-141 ~]# dig -x 192.168.1.143 @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.143 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57138 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;143.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 143.1.168.192.in-addr.arpa. 3600 IN PTR www.enzhi.com. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:27:39 CST 2017 ;; MSG SIZE rcvd: 116
二、反向解析mail.enzhi.com的IP地址;
[root@Bj-1-141 ~]# dig -x 192.168.1.142 @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -x 192.168.1.142 @192.168.1.141 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51427 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;142.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 142.1.168.192.in-addr.arpa. 3600 IN PTR mail.enzhi.com. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 3600 IN NS ns1.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ;; Query time: 0 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 19:28:57 CST 2017 ;; MSG SIZE rcvd: 117
主服务器的安装和配置这里不在演示根据上面配置正向解析和反向解析后在配置从便可;
注意:从服务器时区域级别的概念;每次修改主服务器区域配置文件序列号要加1;两台服务器要作时间同步
演示环境
操做系统版本 | 主DNS服务器IP地址 | 演示域 | 内核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
操做系统版本 | 从DNS服务器IP地址 | 演示域 | 内核版本 |
CentOS Linux release 7.2.1511 (Core) | 192.168.1.142 | enzhi.com | 3.10.0-327.el7.x86_64 |
一、安装bind软件包
[root@BJ-1-142 ~]# yum -y install bind bind-utils
二、修改主配置文件
[root@BJ-1-142 ~]# vim /etc/named.conf # 修改options全局配置段 listen-on port 53 { 127.0.0.1; 192.168.1.142; }; # 关闭容许查询 //allow-query { localhost; }; # 关闭dnssec部分功能 //dnssec-enable yes; //dnssec-validation yes;
三、定义区域
格式:
zone "ZONE_NAME" IN { type slave; file "slaves/ZONE_NAME.zone"; masters { MASTER_IP; }; };
示例:
[root@BJ-1-142 ~]# vim /etc/named.rfc1912.zones zone "enzhi.com" IN { type slave; file "slaves/enzhi.com.zone"; masters { 192.168.1.141; }; }; zone "1.168.192.in-addr.arpa" IN { type slave; file "slaves/192.168.1.zone"; masters { 192.168.1.141; }; };
四、配置文件语法检查
[root@BJ-1-142 ~]# named-checkconf
五、启动named服务
[root@BJ-1-142 ~]# systemctl start named.service [root@BJ-1-142 ~]# rndc status version: 9.9.4-RedHat-9.9.4-38.el7_3.1 <id:8f9657aa> CPUs found: 2 worker threads: 2 UDP listeners per interface: 2 number of zones: 103 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running
一、确保区域数据文件中为每一个从服务器配置NS记录;而且在正向区域文件中,须要为每一个从服务器的NS记录的主机名配置一个A记录,且此A记录后面的地址为真正的从服务器的IP地址;
[root@Bj-1-141 named]# vim enzhi.com.zone $TTL 3600 $ORIGIN enzhi.com. @ IN SOA enzhi.com. admin.enzhi.com. ( 2017011902 ;#修改区域文件序列号要自增长1; 1H 10M 3D 1D) IN NS ns1.enzhi.com. IN NS ns2.enzhi.com. ;#添加一条从服务器的NS记录 IN MX 10 mail.enzhi.com. ns1 IN A 192.168.1.141 ns2 IN A 192.168.1.142 ;#添加一条从服务器的A记录 mail IN A 192.168.1.142 www IN A 192.168.1.143 bbs IN A 192.168.1.144 bbs IN A 192.168.1.145
二、反向区域文件中也要增长NS记录
[root@Bj-1-141 named]# vim 192.168.1.zone $TTL 3600 $ORIGIN 1.168.192.in-addr.arpa. @ IN SOA enzhi.com. admin.enzhi.com. ( 2017011902 ;#修改区域文件序列号要自增长1 1H 10M 3D 1D) IN NS ns1.enzhi.com. IN NS ns2.enzhi.com. ;#添加一条从服务器的NS记录 141 IN PTR ns1.enzhi.com. 142 IN PTR ns2.enzhi.com. ;#添加一条从服务器的PTR记录 142 IN PTR mail.enzhi.com. 143 IN PTR www.enzhi.com. 144 IN PTR bbs.enzhi.com. 145 IN PTR bbs.enzhi.com.
三、检查配置文件及区域文件是否存在语法错误
[root@Bj-1-141 named]# named-checkconf [root@Bj-1-141 named]# named-checkzone enzhi.com. enzhi.com.zone zone enzhi.com/IN: loaded serial 2017011902 OK [root@Bj-1-141 named]# named-checkzone 1.168.192.in-addr.arpa 192.168.1.zone zone 1.168.192.in-addr.arpa/IN: loaded serial 2017011902 OK
四、重载主服务器配置文件
[root@Bj-1-141 named]# rndc reload server reload successful [root@Bj-1-141 named]# systemctl status named.service
一、在从服务器上解析enzhi.com的NS记录;
[root@BJ-1-142 ~]# dig -t NS enzhi.com @192.168.1.142 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t NS enzhi.com @192.168.1.142 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5598 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;enzhi.com. IN NS ;; ANSWER SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. enzhi.com. 3600 IN NS ns2.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ns2.enzhi.com. 3600 IN A 192.168.1.142 ;; Query time: 1 msec ;; SERVER: 192.168.1.142#53(192.168.1.142) ;; WHEN: 四 1月 19 20:16:24 CST 2017 ;; MSG SIZE rcvd: 106
二、在从服务器上解析www.enzhi.com的A记录;
[root@BJ-1-142 ~]# dig -t A www.enzhi.com @192.168.1.142 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.142 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36363 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.enzhi.com. IN A ;; ANSWER SECTION: www.enzhi.com. 3600 IN A 192.168.1.143 ;; AUTHORITY SECTION: enzhi.com. 3600 IN NS ns1.enzhi.com. enzhi.com. 3600 IN NS ns2.enzhi.com. ;; ADDITIONAL SECTION: ns1.enzhi.com. 3600 IN A 192.168.1.141 ns2.enzhi.com. 3600 IN A 192.168.1.142 ;; Query time: 1 msec ;; SERVER: 192.168.1.142#53(192.168.1.142) ;; WHEN: 四 1月 19 20:16:08 CST 2017 ;; MSG SIZE rcvd: 126
注意:若是从不服务器不能解析,使用手动测试区域传送看看可否同步,在从服务器上;
在从服务器上测试,DNS服务器指向主服务器的IP地址;若是资源记录显示都能同步则配置没有问题;若是从服务器手动测试没问题,可是没法解析出从服务器的NS记录,解决方法,查看防火墙,selinux,或者从新修改主服务器序列号后重载主服务器配置文件;
[root@BJ-1-142 ~]# dig -t axfr enzhi.com @192.168.1.141 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t axfr enzhi.com @192.168.1.141 ;; global options: +cmd enzhi.com. 3600 IN SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400 enzhi.com. 3600 IN NS ns1.enzhi.com. enzhi.com. 3600 IN NS ns2.enzhi.com. enzhi.com. 3600 IN MX 10 mail.enzhi.com. bbs.enzhi.com. 3600 IN A 192.168.1.144 bbs.enzhi.com. 3600 IN A 192.168.1.145 bbs.enzhi.com. 3600 IN A 192.168.1.146 mail.enzhi.com. 3600 IN A 192.168.1.142 ns1.enzhi.com. 3600 IN A 192.168.1.141 ns2.enzhi.com. 3600 IN A 192.168.1.142 www.enzhi.com. 3600 IN A 192.168.1.143 enzhi.com. 3600 IN SOA enzhi.com. admin.enzhi.com. 2017011903 3600 600 259200 86400 ;; Query time: 1 msec ;; SERVER: 192.168.1.141#53(192.168.1.141) ;; WHEN: 四 1月 19 20:21:59 CST 2017 ;; XFR size: 12 records (messages 1, bytes 282)
演示环境
操做系统版本 | 主DNS服务器IP地址 | 演示域 | 内核版本 |
---|---|---|---|
CentOS Linux release 7.2.1511 (Core) | 192.168.1.141 | enzhi.com | 3.10.0-327.el7.x86_64 |
操做系统版本 | 从DNS服务器IP地址 | 演示域 | 内核版本 |
CentOS Linux release 7.2.1511 (Core) | 192.168.1.142 | enzhi.com | 3.10.0-327.el7.x86_64 |
操做系统版本 | 子域DNS IP地址 | 演示域 | 内核版本 |
CentOS Linux release 7.2.1511 (Core) | 192.168.1.143 | ops.enzhi.com | 3.10.0-327.el7.x86_64 |
一、在主DNS服务器正向解析库文件中添加;
[root@Bj-1-141 named]# vim enzhi.com.zone ops IN NS ns1.ops ns1.ops IN A 192.168.1.143 # 注意要修改了配置序列号要加1;
二、重载服务
[root@Bj-1-141 named]# rndc reload server reload successful
一、安装bind服务
[root@BJ-1-143 ~]# yum -y install bind bind-utils
二、修改监听地址关闭部分功能
[root@BJ-1-143 ~]# vim /etc/named.conf listen-on port 53 { 127.0.0.1; 192.168.1.143; }; # 关闭部分功能前面加上注释便可; //allow-query { localhost; }; //dnssec-enable yes; //dnssec-validation yes;
三、添加一个正向区域
[root@BJ-1-143 ~]# vim /etc/named.rfc1912.zones # 在最下面添加 zone "ops.enzhi.com" IN { type master; file "ops.enzhi.com.zone"; };
四、建立子域,区域数据库文件;
[root@BJ-1-143 named]# cd /var/named [root@BJ-1-143 named]# vim ops.enzhi.com.zone $TTL 3600 $ORIGIN ops.enzhi.com. @ IN SOA ops.enzhi.com. admin.ops.enzhi.com. ( 2017011901 1H 10M 3D 1D) IN NS ns1 ns1 IN A 192.168.1.143 www IN A 192.168.1.150 # 修改区域文件权限及属组 [root@BJ-1-143 named]# chown :named ops.enzhi.com.zone [root@BJ-1-143 named]# chmod 640 ops.enzhi.com.zone
五、检查配置文件语法并重载配置文件
[root@BJ-1-143 named]# named-checkconf [root@BJ-1-143 named]# named-checkzone ops.enzhi.com. ops.enzhi.com.zone zone ops.enzhi.com/IN: loaded serial 2017011901 OK # 重载配置 [root@BJ-1-143 named]# systemctl start named.service
六、dig命令测试可否解析父域,测试父域可否解析子域
注意:被转发的服务器必须容许为当前服务器作递归;要在子域服务器上作转发解析父域
仅转发对某特定区域的解析请求;
格式
zone "ZONE_NAME" IN { type forward; forward {first|only}; forwarders { SERVER_IP; }; };
first:首先转发,转发器不响应时;
SERVER_IP:为父域的主从服务器地址;
示例
[root@BJ-1-143 named]# vim /etc/named.rfc1912.zones # 仅对enzhi.com这个域作转发 zone "enzhi.com" IN { type forward; forward only; forwarders { 192.168.1.141; 192.168.1.142; }; };
重载配置文件
[root@BJ-1-143 named]# rndc reload server reload successful
测试
解析父域的www.enzhi.com测试可否解析
[root@BJ-1-143 named]# dig -t A www.enzhi.com @192.168.1.143 ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.1 <<>> -t A www.enzhi.com @192.168.1.143 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5835 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.enzhi.com. IN A ;; ANSWER SECTION: www.enzhi.com. 3076 IN A 192.168.1.144 《====能够解析 ;; AUTHORITY SECTION: enzhi.com. 171964 IN NS ns2.4.cn. enzhi.com. 171964 IN NS ns1.4.cn. ;; Query time: 0 msec ;; SERVER: 192.168.1.143#53(192.168.1.143) ;; WHEN: 四 1月 19 22:15:04 CST 2017 ;; MSG SIZE rcvd: 98
针对凡是本地没有经过zone定义的区域查询请求,统统转发给某转发器;
示例:在子域服务器修改主配置文件定义全局转发
[root@BJ-1-143 ~]# vim /etc/named.conf # 在options全局段中添加,全局转发给父域主服务器 forward only; forwarders { 192.168.1.141; };
重载配置文件
[root@BJ-1-143 ~]# rndc reload server reload successful