DNS
https://blog.51cto.com/shiliguo/4870819
DNS:域名系统,应用层协议。域名和IP地址相互映射的分布式数据库,服务器端:53/udp,53/tcp
-----------------------------------------------------------------------------------------------------------------------------------------------------
DNS解析优先级: 本地hosts文件--dns,可以修改
centos系统: /etc/nsswitch.conf
根域----顶级域名---二级域名----三级域名
顶级域名:com,gov,org等 顶级域名存储的域名是二级域名
二级域名:goole.com,baidu.com等 二级域名存储的域名是三级域名
三级域名:www.baidu.com 本质是主机
----------------------------------------------------------------------------------------------------------------------------------------------------------------
DNS查询类型:
递归查询:客户机和本地DNS服务器之间属于递归查询,客户机向DNS发出请求后,如果DNS服务器本身不能解析,则向另外的DNS服务器发出请求,得到最终的肯定或否定的结果转交给客户机。此查询的源和目标保持不变,为了查询结果只发起一次查询
迭代查询:本地DNS向其他DNS服务器的查询属于迭代查询,如果对方不能返回权威的结果,则向下一个DNS服务器再次发起查询,知道返回结果为止。此查询的源不变,但是查询的目标不断变化,为查询结果一般需要发起多次查询。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DNS服务器类型
主DNS服务器:管理和维护所负责的域名解析库的服务器
从DNS服务器:从主服务器或者从服务器复制解析库副本
缓存DNS服务器(转发器)
各种资源记录
记录类型:A,AAAA,PTR,SOA,NS,CNAME,MX
SOA:起始授权记录;一个区域解析库有且仅有一个SOA记录,必须位于解析库的第一条记录
A:正向解析
AAAA:ipv6正向解析
PTR:反向解析
NS:标明当前区域的DNS服务器
CNAME:别名记录
MX:邮件交换器
-------------------------------------------------------------------------------------------------------------------------------------------------------------
DNS服务器软件:bind,powerdns,dnsmasq,coredns
以下选择bind安装DNS服务
yum -y install bind bind-utils
主配置脚本:/etc/named.conf /etc/named.rfc1912.zones
正向解析库文件: /var/named/named.localhost
反向解析库文件: /var/named/named.loopback
根域名服務器配置: /var/named/named.ca
注意:
一台服务器可同时为多个域名提供解析 ,必须要有根域名文件
主配置文件 /etc/named.conf
全局配置: options{}
日志子系统配置:logging{}
区域定义:本地能够为那些zone进行解析,就要定义那些zone
注意:
任何服务程序如果希望能通过网络被其他主机访问,至少应该就监听在一个能与外部主机通信的IP地址上
缓存DNS服务器的配置:监听外部地址即可
dnssec:设为no
设置了114.114.114.114Dns,所以能够访问外网。将DNS设置为本地,依旧可以访问外网。这是因为dns服务器天生知道根服务器。
将其他服务器的DNS只向DNS服务器,依旧可以上网。需要修改DNS的named.conf
rndc reload 或者 systemctl restart named
------------------------------------------------------------------------------------------------------------------------------------------------
搭建DNS正向主服务器,实现web服务器基于FQDN的访问
主DNS服务器:192.168.89.140
web服务器:192.168.89.142
访问web的客户端:192.168.89.141
第一步:所有服務器关闭selinux,防火墙,开启时间同步
第二步:140节点进行操作
1安装bind ---------------yum -y install bind bind-utils
2 vim /etc/named.conf
3 vim /etc/named.rfc1912.zones
ty.org 域 IN可写可不写 ty.org.zone可以随意命名(a.txt都行)
4 DNS区域数据库文件 cp -p /var/named/named.localhost /var/named/ty.org.zone(a.txt)
vim /var/named/ty.org.zone
master=master.ty.org. DNS服务器
www=www.ty.org. web服务器
5 .rndc reload
第三步:142节点配置httpd
1. yum install -y httpd && systemctl enable --now httpd
第四步: 141测试是否能够访问www.ty.org(这里是因为我将dns已经指向了192.168.89.140,httpd默认页面内容为ty)
如果用户访问输入有问题,比如输入wwwwwwwwww.ty.org,ty.org无法解析,域文件配置修改为
----------------------------------------------------------------------------------------------------------------------------
named配置检查
named-checkconf 检查named.conf
named-checkzone ty.org /var/named/ty.org.zone 检查域文件配置
--------------------------------------------------------------------------------------------------------------------------------
启用DNS客户端缓存加快访问速度
yum install -y nscd
systemctl enable --now nscd
-----------------------------------------------------------------------------------------------------------------------------------
增加从DNS服务器143节点
1.yum install -y bind
2.vim /etc/named.conf
3.vim /etc/named.rfc1912.zones
4 .systemctl enable --now named
5.140主DNS节点关闭dns服务 rndc stop,客户端141节点访问web测试
但是此时无法主从同步,修改140节点配置形成主从不同 vim /var/named/ty.org.zone
高危:DNS默认允许从任何节点抓取数据库==================141为例抓取
预防操作:主节点允许从节点抓取,从节点禁止任何节点抓取
141抓取尝试
==========================================-=============================
子域添加,144作为子域节点。多用于异地DNS管理。
DNS父域 ,DNS主节点: 140节点
DNS子域:144节点
父域,子域的web服务器:142节点
DNS从节点:143节点
访问web客户端:141节点
配置修改如下-------------------------------
1.140节点添加子域 vim /var/named/ty.org.zone 然后重启rndc
2.144节点安装bind
3.144节点配置 vim /etc/named.conf
4 vim /etc/named.rfc1912.zones,,-----------这里的son必须和父域的数据库文件的一致
5.vim /var/named/son.zone,--------------------重启服务rndc
6 141节点测试子域
实现缓存DNS服务器==============================添加146节点
1.146节点安装bind
2.vim /etc/named.conf
3.重启服务
1.1 搭建DNS实现Internet DNS架构 1.2 环境要求(使用centos7) 需要8台主机 DNS客户端:10.0.0.6/24 本地DNS服务器(只缓存):10.0.0.8/24 转发目标DNS服务器:10.0.0.18/24 根DNS服务器:10.0.0.28/24 org域DNS服务器:10.0.0.38/24 mageedu.org域主DNS服务器:10.0.0.48/24 mageedu.org域从DNS服务器:10.0.0.58/24 www.mageedu.org的web服务器:10.0.0.68/24 1.3 前提准备 关闭selinux 关闭防火墙 时间同步 1.4 实现步骤 1.4.1 各主机的网络配置(看图要求) #在客户端配置DNS服务器地址 [15:23:40 root@centos7 ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 ME=eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=10.0.0.6 NETMASK=255.255.255.0 DNS1=10.0.0.8 ONBOOT=yes #重启网卡 [15:37:22 root@centos7 ~]#systemctl restart network 1.4.2 实现web服务 #在web服务器10.0.0.68/24上实现 [15:02:45 root@centos7 ~]#yum install -y httpd [15:02:45 root@centos7 ~]#echo www.mageedu.org > /var/www/html/index.html [15:02:45 root@centos7 ~]#systemctl restart httpd.service 1.4.3 实现mageedu.org域的主DNS服务器 #在mageedu.org域主DNS服务器10.0.0.48/24上实现 [15:44:51 root@centos7 ~]#yum install bind -y [15:45:13 root@centos7 ~]#vim /etc/named.conf #注释掉下面两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #只允许从服务器进行区域传输,从服务器地址是10.0.0.58 allow-transfer {10.0.0.58;}; [15:50:07 root@centos7 ~]#vim /etc/named.rfc1912.zones #添加这段 zone "mageedu.org" { type master; file "mageedu.org.zone"; }; [15:52:40 root@centos7 ~]#cd /var/named/ [15:53:38 root@centos7 named]#cp -a named.localhost mageedu.org.zone [15:51:15 root@centos7 ~]#vim mageedu.org.zone 1 $TTL 1D 2 @ IN SOA master admin.mageedu.org. ( 3 1 ; serial 4 1D ; refresh 5 1H ; retry 6 1W ; expire 7 3H ) ; minimum 8 NS master 9 NS slave 10 master A 10.0.0.48 11 slave A 10.0.0.58 12 www A 10.0.0.68 #重启named服务 [15:54:07 root@centos7 named]#systemctl restart named 1.4.4 实现megeedu.org域的从DNS服务器配置 #在megeedu.org域从DNS服务器10.0.0.58/24上实现 [15:56:31 root@centos7 ~]#yum install bind -y [15:56:48 root@centos7 ~]#vim /etc/named.conf #注释掉这两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #不允许其他主机进行区域传输 allow-transfer { none;}; [15:58:34 root@centos7 ~]#vim /etc/named.rfc1912.zones #添加这段 zone "mageedu.org" { type slave; masters {10.0.0.48;}; #主服务器IP file "slaves/mageedu.org.slave"; }; #重启named服务 [15:59:46 root@centos7 ~]#systemctl restart named [16:00:16 root@centos7 ~]#ls /var/named/slaves/mageedu.org.slave #查看区域数据库文件是否生成 /var/named/slaves/mageedu.org.slave 1.4.5 实现org域的主DNS服务器 #在org域的主DNS服务器10.0.0.38/24上实现 [16:02:12 root@centos7 named]#yum install -y bind [16:02:39 root@centos7 named]#vim /etc/named.conf #注释掉这两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; [16:03:26 root@centos7 named]#vim /etc/named.rfc1912.zones #添加这段 zone "org" { type master; file "org.zone"; }; [16:04:20 root@centos7 ~]#cd /var/named/ [16:04:32 root@centos7 named]#cp -a named.localhost org.zone 1 $TTL 1D 2 @ IN SOA master admin.mageedu.org. ( 3 1 ; serial 4 1D ; refresh 5 1H ; retry 6 1W ; expire 7 3H ) ; minimum 8 NS master 9 mageedu NS mageeduns1 10 mageedu NS mageeduns2 11 master A 10.0.0.38 12 mageeduns1 A 10.0.0.48 13 mageeduns2 A 10.0.0.58 #重启named服务 [16:05:48 root@centos7 named]#systemctl restart named 1.4.6 实现根域的主DNS服务器 #在根域的主DNS服务器10.0.0.28/24上实现 [16:07:35 root@centos7 ~]#yum install bind -y [16:08:07 root@centos7 ~]#vim /etc/named.conf #注释掉这两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #来到文件最后面,本来是这样的 zone "." IN { type hint; file "named.ca"; }; #改为 zone "." IN { type master; file "root.zone"; }; [16:10:03 root@centos7 ~]#cd /var/named/ [16:12:21 root@centos7 named]#cp -a named.localhost root.zone [16:12:41 root@centos7 named]#vim root.zone 1 $TTL 1D 2 @ IN SOA master admin.mageedu.org. ( 3 1 ; serial 4 1D ; refresh 5 1H ; retry 6 1W ; expire 7 3H ) ; minimum 8 NS master 9 org NS orgns 10 master A 10.0.0.28 11 orgns A 10.0.0.38 #安全加固 [16:13:17 root@centos7 named]#chmod 640 root.zone #重启named服务 [16:14:02 root@centos7 named]#systemctl restart named 1.4.7 实现转发目标的DNS服务器 #在转发目标的DNS服务器10.0.0.18/24上实现 [16:16:39 root@centos7 ~]#yum install bind -y #注释掉这两行 [16:17:42 root@centos7 ~]#vim /etc/named.conf // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #修改这两行33行和34行,yes改为no 33 dnssec-enable no; 34 dnssec-validation no; [16:20:57 root@centos7 ~]#cd /var/named/ [16:21:14 root@centos7 named]#vim named.ca #添加这行 a.root-servers.net. 3600000 IN A 10.0.0.28 #重启named服务 [16:22:36 root@centos7 named]#systemctl restart named 1.4.8 实现本地只缓存DNS服务器 #在转发目标的DNS服务器10.0.0.8/24上实现 [15:19:52 root@centos7 ~]#yum install -y bind [16:25:25 root@centos7 ~]#vim /etc/named.conf #注释掉这两行 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; #添加这两行 forward only; forwarders {10.0.0.18;}; #修改这两行33行和34行,yes改为no 33 dnssec-enable no; 34 dnssec-validation no; #重启named服务 [16:26:46 root@centos7 ~]#systemctl restart named 1.4.9 客户端测试 [16:17:26 root@centos7 ~]#cat /etc/resolv.conf # Generated by NetworkManager search cxz.cn nameserver 10.0.0.8 #安装测试软件 [16:28:36 root@centos7 ~]#yum install bind-utils.x86_64 [16:29:46 root@centos7 ~]#curl www.mageedu.org www.mageedu.org
分类: LINUX
2015-08-03 19:01:26
假设在一个公司(域)内有两个部门(子域),这两个部门是可以独立出去的并且希望实现DNS的自我管理,那么就可以实行子域授权。子域授权就是在原有的域上再划分出一个小的区域并指定新DNS服务器。在这个小的区域中如果有客户端请求解析,则只要找新的子DNS服务器。这样的做的好处可以减轻主DNS的压力,也有利于管理
前提:任何的子域必须得到其父域的授权才可以授权;父域子域不一定在同一个网段,但是必须能相互通信;
过程:
1.在父域中定义子域的相关NS记录和A记录
1.1父域的正向区域数据文件:
[root@localhost named]# cat mageedu.com.zone
$TTL 600
@ IN SOA ns1.mageedu.com. admin.mageedu.com. (
2015073108
1H
5M
2D
6H )
IN NS ns1
IN NS ns2
IN MX 10 mail
ns1 IN A 192.168.85.128
ns2 IN A 192.168.85.133
mail IN A 192.168.85.129
www IN A 192.168.85.133
pop IN A 192.168.85.130
ftp IN CNAME www
lw IN A 192.168.85.134
a1 IN NS ns1.a1
ns1.a1 IN A 192.168.85.136
b2 IN NS ns1.b2
ns1.b2 IN A 192.168.85.140
#上面四行定义了两个子域a1.mageedu.com和b2.mageedu.com
1.2 重新加载named服务
[root@localhost named]# service named reload
Reloading named: [ OK ]
1.3 查看日志是否发送了更新
[root@localhost named]# tail /var/log/messages
Aug 3 01:51:04 localhost named[2482]: client 192.168.85.133#35544: transfer of 'mageedu.com/IN': AXFR started
Aug 3 01:51:04 localhost named[2482]: client 192.168.85.133#35544: transfer of 'mageedu.com/IN': AXFR ended
Aug 3 01:51:29 localhost named[2482]: received SIGHUP signal to reload zones
Aug 3 01:51:29 localhost named[2482]: loading configuration from '/etc/named.conf'
Aug 3 01:51:29 localhost named[2482]: using default UDP/IPv4 port range: [1024, 65535]
Aug 3 01:51:29 localhost named[2482]: using default UDP/IPv6 port range: [1024, 65535]
Aug 3 01:51:29 localhost named[2482]: sizing zone task pool based on 5 zones
Aug 3 01:51:29 localhost named[2482]: Warning: 'empty-zones-enable/disable-empty-zone' not set: disabling RFC 1918 empty zones
Aug 3 01:51:29 localhost named[2482]: reloading configuration succeeded
Aug 3 01:51:29 localhost named[2482]: reloading zones succeeded
1.4 在从服务器133上查看是否更新(如果没有更新确保防火墙,SElinux等关闭了或者重新加载服务)
[root@localhost slaves]# cat mageedu.com.zone
$ORIGIN .
$TTL 600 ; 10 minutes
mageedu.com IN SOA ns1.mageedu.com. admin.mageedu.com. (
2015073108 ; serial
3600 ; refresh (1 hour)
300 ; retry (5 minutes)
172800 ; expire (2 days)
21600 ; minimum (6 hours)
)
NS ns1.mageedu.com.
NS ns2.mageedu.com.
MX 10 mail.mageedu.com.
$ORIGIN mageedu.com.
a1 NS ns1.a1
$ORIGIN a1.mageedu.com.
ns1 A 192.168.85.136
$ORIGIN mageedu.com.
b2 NS ns1.b2
$ORIGIN b2.mageedu.com.
ns1 A 192.168.85.140
$ORIGIN mageedu.com.
ftp CNAME www
lw A 192.168.85.134
mail A 192.168.85.129
ns1 A 192.168.85.128
ns2 A 192.168.85.133
pop A 192.168.85.130
www A 192.168.85.133
1.5 在主服务器128上查看子域是否建立成功
[root@localhost named]# dig -t NS a1.mageedu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t NS a1.mageedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 16439
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;a1.mageedu.com. IN NS
;; Query time: 10 msec
;; SERVER: 192.168.85.128#53(192.168.85.128)
;; WHEN: Mon Aug 3 01:58:48 2015
;; MSG SIZE rcvd: 32
这里没有显示有相关信息,这是因为我们虽然已经成功建立了记录信息,但是父域服务器链接不到子域服务器,无法与子域服务器进行通信,所以,下一步需要建立子域以及子域服务器
2. 建立子域服务器
2.1 重开一台主机进行基础配置
IP:192.168.85.136
网关:和父域服务器网关相同
掩码:和父域服务器掩码相同
DNS1:192.168.85.136(指向自己)
搜索域:a1.mageedu.com
2.2 安装bind后并编辑配置文件(因为是克隆主DNS服务器的所以包已经装好,各个配置文件都还在,所以修改源配置文件即可)
主配置文件:
[root@localhost named]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "a1.mageedu.com" IN {
type master;
file "a1.mageedu.com.zone";
};
正向数据文件(之做正向测试,所以反向的不修改了)
[root@localhost named]# cat a1.mageedu.com.zone
$TTL 600
@ IN SOA ns1.a1.mageedu.com. admin.a1.mageedu.com. (
2015080301
1H
5M
2D
6H )
IN NS ns1
IN MX 10 mail
ns1 IN A 192.168.85.136
mail IN A 192.168.85.137
www IN A 192.168.85.138
重新启动named服务
2.3 用136本机测试
[root@localhost named]# dig -t A @192.168.85.136
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.136
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33477
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 600 IN A 192.168.85.138
;; AUTHORITY SECTION:
a1.mageedu.com. 600 IN NS ns1.a1.mageedu.com.
;; ADDITIONAL SECTION:
ns1.a1.mageedu.com. 600 IN A 192.168.85.136
;; Query time: 4 msec
;; SERVER: 192.168.85.136#53(192.168.85.136)
;; WHEN: Mon Aug 3 02:28:58 2015
;; MSG SIZE rcvd: 86
2.4 用父域DNS服务器测试
[root@localhost named]# dig -t A @192.168.85.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15029
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 600 IN A 192.168.85.138
;; AUTHORITY SECTION:
a1.mageedu.com. 360 IN NS ns1.a1.mageedu.com.
;; ADDITIONAL SECTION:
ns1.a1.mageedu.com. 600 IN A 192.168.85.136
;; Query time: 7 msec
;; SERVER: 192.168.85.128#53(192.168.85.128)
;; WHEN: Mon Aug 3 02:34:44 2015
;; MSG SIZE rcvd: 86
这样看来书需要子域建立并能相互通信父域才能解析子域,子域才能解析;
3.转发DNS
一般,如果没有特殊配置,父域可以解析子域记录但是子域却不能解析父域记录;
父域128解析子域136的A记录:
[root@localhost named]# dig -t A @192.168.85.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8886
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 600 IN A 192.168.85.138
;; AUTHORITY SECTION:
a1.mageedu.com. 600 IN NS ns1.a1.mageedu.com.
;; ADDITIONAL SECTION:
ns1.a1.mageedu.com. 600 IN A 192.168.85.136
;; Query time: 10 msec
;; SERVER: 192.168.85.128#53(192.168.85.128)
;; WHEN: Mon Aug 3 02:45:01 2015
;; MSG SIZE rcvd: 86
子域136解析父域128的A记录:
[root@localhost named]# dig -t A @192.168.85.136
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.136
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49493
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;. IN A
;; AUTHORITY SECTION:
mageedu.com. 600 IN SOA f1g1ns1.dnspod.net. freednsadmin.dnspod.com. 1425539659 3600 180 1209600 180
;; Query time: 32 msec
;; SERVER: 192.168.85.136#53(192.168.85.136)
;; WHEN: Mon Aug 3 02:46:20 2015
;; MSG SIZE rcvd: 107
解决办法:
定义子域转发使得子域将所有的请求都转发给父域来解析而不是自己来解析
3.1 作为转发器转发
3.1.1编辑子域的主配置文件为(其他没变的地方省略了):
[root@localhost named]# cat /etc/named.conf
options {
directory "/var/named";
forward first;
forwarders { 192.168.85.128; };
};
其中 forward 有only和first两个选项;子域无法解析时,forward为only表示只转发给某服务器,如果这些服务器不提供或者无法解析
那么就无法解析;为first表示首先转发给某服务器解析,如果解析失败就转交给根解析....
强调一下:此时的forward是写在全局配置里的,如果请求的是子域本身内的就可以直接解析,请求的是子域外的其他域的无论请求的
是哪一个网段的都将转发出去
[root@localhost named]# dig -t A @192.168.85.136
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.136
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35719
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 600 IN A 192.168.85.133
;; AUTHORITY SECTION:
mageedu.com. 600 IN NS ns1.mageedu.com.
mageedu.com. 600 IN NS ns2.mageedu.com.
;; ADDITIONAL SECTION:
ns1.mageedu.com. 600 IN A 192.168.85.128
ns2.mageedu.com. 600 IN A 192.168.85.133
#这里确实给出了应答,只不过是非权威应答
;; Query time: 21 msec
;; SERVER: 192.168.85.136#53(192.168.85.136)
;; WHEN: Mon Aug 3 03:14:34 2015
;; MSG SIZE rcvd: 117
3.2 作为转发域转发
3.2.1子域服务器136上测试其他域:
[root@localhost named]# dig +trace -t A /> ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> +trace -t A @192.168.85.136
;; global options: +cmd
. 512769 IN NS l.root-servers.net.
. 512769 IN NS e.root-servers.net.
. 512769 IN NS i.root-servers.net.
. 512769 IN NS f.root-servers.net.
. 512769 IN NS k.root-servers.net.
. 512769 IN NS a.root-servers.net.
. 512769 IN NS j.root-servers.net.
. 512769 IN NS b.root-servers.net.
. 512769 IN NS h.root-servers.net.
. 512769 IN NS c.root-servers.net.
. 512769 IN NS d.root-servers.net.
. 512769 IN NS m.root-servers.net.
. 512769 IN NS g.root-servers.net.
;; Received 508 bytes from 192.168.85.128#53(192.168.85.128) in 5163 ms #这里是父域完成的;
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
;; Received 491 bytes from 192.112.36.4#53(192.112.36.4) in 17567 ms
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
;; Received 201 bytes from 192.31.80.30#53(192.31.80.30) in 388 ms
. 1200 IN CNAME /> a.shifen.com. 1200 IN NS ns4.a.shifen.com.
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 ns3.a.shifen.com.
a.shifen.com. 1200 IN NS ns5.a.shifen.com.
;; Received 228 bytes from 202.108.22.220#53(202.108.22.220) in 23 ms
这里子域来追踪解析的A记录,但是子域并不负责该域,无法解析,所以就转交给了父域处理(父域处理过程并没有显示);
此时父域也不负责baidu域的权威解析,所以转发出去也并没有多大意义,事实上对于子域而言,我们可以只转发对父域的请求到父域,而
剩下的自己处理(自己能连通互联网);
3.2.2 编辑子域的主配置文件为:
[root@localhost named]# cat /etc/named.conf
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "named.localhost";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
};
zone "a1.mageedu.com" IN {
type master;
file "a1.mageedu.com.zone";
};
zone "mageedu.com" IN { #定义将请求转发的域
type forward;
forward first;
forwarders { 192.168.85.128; };
};
这样,就只对这一个域转发解析请求而不对其他的域转发了
3.2.3 重启服务后测试
[root@localhost named]# dig -t A @192.168.85.136
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t A @192.168.85.136
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43895
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;. IN A
;; ANSWER SECTION:
. 600 IN A 192.168.85.133
;; AUTHORITY SECTION:
mageedu.com. 600 IN NS ns1.mageedu.com.
mageedu.com. 600 IN NS ns2.mageedu.com.
;; ADDITIONAL SECTION:
ns1.mageedu.com. 600 IN A 192.168.85.128
ns2.mageedu.com. 600 IN A 192.168.85.133
;; Query time: 21 msec
;; SERVER: 192.168.85.136#53(192.168.85.136)
;; WHEN: Mon Aug 3 03:35:25 2015
;; MSG SIZE rcvd: 117
3.2.4 对其他域测试
[root@localhost named]# dig +trace -t A /> ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> +trace -t A @192.168.85.136
;; global options: +cmd
. 518283 IN NS e.root-servers.net.
. 518283 IN NS k.root-servers.net.
. 518283 IN NS l.root-servers.net.
. 518283 IN NS m.root-servers.net.
. 518283 IN NS j.root-servers.net.
. 518283 IN NS a.root-servers.net.
. 518283 IN NS h.root-servers.net.
. 518283 IN NS f.root-servers.net.
. 518283 IN NS i.root-servers.net.
. 518283 IN NS g.root-servers.net.
. 518283 IN NS d.root-servers.net.
. 518283 IN NS b.root-servers.net.
. 518283 IN NS c.root-servers.net.
;; Received 496 bytes from 192.168.85.136#53(192.168.85.136) in 63 ms #不再是父域完成的而是子域服务器自己完成的
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
;; Received 503 bytes from 192.5.5.241#53(192.5.5.241) in 4117 ms
baidu.com. 172800 IN NS dns.baidu.com.
baidu.com. 172800 IN NS ns2.baidu.com.
baidu.com. 172800 IN NS ns3.baidu.com.
baidu.com. 172800 IN NS ns4.baidu.com.
baidu.com. 172800 IN NS ns7.baidu.com.
;; Received 201 bytes from 192.12.94.30#53(192.12.94.30) in 979 ms
. 1200 IN CNAME /> a.shifen.com. 1200 IN NS ns3.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 ns2.a.shifen.com.
a.shifen.com. 1200 IN NS ns4.a.shifen.com.
;; Received 228 bytes from 220.181.38.10#53(220.181.38.10) in 29 ms
4.补充
接上面的配置继续,此时用父域服务器来解析可知,父域不负责该域,所以将请求交给了根 根交给了.com域
.com域交给了baidu域然后才找到记录;
我们可以配置将对.com 的请求都转发给.com的服务器;
一下实在父域服务器上测试:
4.1 首先获得.com的NS记录在找到对应的A记录
[root@localhost named]# dig -t NS com @192.168.85.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.3 <<>> -t NS com @192.168.85.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19117
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 15
;; QUESTION SECTION:
;com. IN NS
;; ANSWER SECTION:
com. 164836 IN NS l.gtld-servers.net.
com. 164836 IN NS m.gtld-servers.net.
com. 164836 IN NS e.gtld-servers.net.
com. 164836 IN NS b.gtld-servers.net.
com. 164836 IN NS h.gtld-servers.net.
com. 164836 IN NS d.gtld-servers.net.
com. 164836 IN NS f.gtld-servers.net.
com. 164836 IN NS k.gtld-servers.net.
com. 164836 IN NS c.gtld-servers.net.
com. 164836 IN NS j.gtld-servers.net.
com. 164836 IN NS g.gtld-servers.net.
com. 164836 IN NS i.gtld-servers.net.
com. 164836 IN NS a.gtld-servers.net.
;; ADDITIONAL SECTION:
i.gtld-servers.net. 170482 IN A 192.43.172.30
l.gtld-servers.net. 170476 IN A 192.41.162.30
j.gtld-servers.net. 170479 IN A 192.48.79.30
k.gtld-servers.net. 170475 IN A 192.52.178.30
a.gtld-servers.net. 170478 IN A 192.5.6.30
a.gtld-servers.net. 170478 IN AAAA 2001:503:a83e::2:30
h.gtld-servers.net. 170479 IN A 192.54.112.30
b.gtld-servers.net. 170477 IN A 192.33.14.30
b.gtld-servers.net. 170477 IN AAAA 2001:503:231d::2:30
g.gtld-servers.net. 170482 IN A 192.42.93.30
e.gtld-servers.net. 170481 IN A 192.12.94.30
f.gtld-servers.net. 170479 IN A 192.35.51.30
d.gtld-servers.net. 170491 IN A 192.31.80.30
m.gtld-servers.net. 170484 IN A 192.55.83.30
c.gtld-servers.net. 170489 IN A 192.26.92.30
;; Query time: 262 msec
;; SERVER: 192.168.85.128#53(192.168.85.128)
;; WHEN: Mon Aug 3 03:57:10 2015
;; MSG SIZE rcvd: 509
4.2 将相应的A记录写在forwards中即可;