DNS子域授权配置
1、什么是DNS子域授权
A 服务负责 (example.com) 域名解析,授权B服务器管理 (ops.example.com) 的域名解析;
父域: example.com
子域: ops.example.com
www.ops.example.com
test.ops.example.com
2、主机环境准备
环境 域名 节点地址 父域(Master) example.com 192.168.10.19 父域(Slave) example.com 192.168.10.18 子域 ops.example.com 192.168.10.17
3、DNS子域授权的配置
3.1、DNS Master父域配置
3.1.1、/etc/named.conf的配置
# 区域配置文件此前可以复用之前主辅配置,所以无需修改; ]# vi /etc/named.conf ... options { allow-transfer { 192.168.10.18; }; //允许哪个地址同步master配置信息 also-notify { 192.168.10.18; }; //主动通知辅助DNS域名变更 ... } ... zone "example.com" IN { type master; file "example.com.zone"; notify yes; }; ...
3.1.2、区域文件数据库文件配置【将 ops 三级子域授权给子域服务器】
cat << 'CAT_END' > /var/named/example.com.zone example.com. 600 IN SOA ns.example.com. sa.example.com. ( 2023051647 ;serial 自增1 10800 900 604800 86400) ;ns服务器配置 example.com. IN NS ns1.example.com. example.com. IN NS ns2.example.com. ns1.example.com. IN A 192.168.10.19 ns2.example.com. IN A 192.168.10.18 ;域名A记录解析,末尾需要.结尾,不然解析不出来 www.example.com. IN A 1.1.1.1 ;增加如下记录 test.example.com. IN A 2.2.2.2 ftp.example.com. IN A 3.3.3.3 ;增加子域的配置 ops.example.com. IN NS ns1.ops.example.com. ns1.ops.example.com. IN A 192.168.10.17 CAT_END
3.2、DNS Other子域配置
3.2.1、bind软件安装
yum install bind bind-utils -y
3.2.2、增加子域的 Zone 配置文件
]# vi /etc/named.conf ... options { ... listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; allow-query { any; }; ... } //增加如下配置 zone "ops.example.com" IN { type master; file "ops.example.com.zone"; }; ...
3.2.3、添加区域数据数据库文件【ops.example.com.zone】
cat << 'CAT_END' > /var/named/ops.example.com.zone ops.example.com. 600 IN SOA ns.ops.example.com. sa.example.com. ( 2023051647 ;serial 10800 900 604800 86400) ;ns服务器配置 ops.example.com. IN NS ns1.ops.example.com. ns1.ops.example.com. IN A 192.168.10.17 ;增加如下记录 dns.ops.example.com. IN A 8.8.8.8 ftp.ops.example.com. IN A 1.1.1.4 CAT_END
3.2.4、语法检查并且重启服务
named-checkconf named-checkzone ops.example.com /var/named/ops.example.com.zone systemctl start named systemctl enable named
3.2.5、测试访问
# 使用other解析 ~]# dig www.ops.example.com @192.168.10.17 +short 8.8.8.8 # 使用master解析不到 ~]# dig www.ops.example.com @192.168.10.19 +short # 使用slave服务器可以解析到 ~]# dig www.ops.example.com @192.168.10.18 +short 8.8.8.8
4、子域授权为什么客户端获取父域解析不了
4.1、子域解析父域的域名
~]# dig www.example.com @192.168.10.17 +short
发现解析不出来
4.2、子域无法解父域问题
4.2.1、问题点
问题:由于父域与子域互相维护不同的区域配置,它们之间并不存在任何的联系,所以子域在解析父域的域名时,它并不会直接通过父域来获取权威的解析记录,那它会怎么做呢?
第一步:它会先找顶点根域;
第二步:寻找找 com 域对应的 DNS 服务器;
第三步:寻找 example 域对应的 DNS 服务器,而后获取 www 对应的解析记录;
这种查找模式是由 DNS 的机制所决定的;
4.2.2、解决方法
明确告诉子域,让其能找到父域进项查询解析,而无需查找根域;(需要配置 DNS 的转发),参考小节:4.2、子域名转发的配置
4.2、子域名转发的配置
4.2.1、配置域转发
]# vi /etc/named.conf options { ... dnssec-enable no; dnssec-validation no; ... }; ... zone "example.com" IN { type forward; forward only; forwarders { 192.168.10.18; 192.168.10.19; }; }; 注意事项: dnssec-enable no; dnssec-validation no; //需要关闭安全校验,否则会解析不到,报如下错误 validating www.example.com/A: bad cache hit (www.example.com/DS)
4.2.2、语法校验并且重新加载
named-checkconf && rndc reload
4.2.3、测试解析
]# dig www.example.com @192.168.10.17 +short 1.1.1.1