背景
上一章DNS详解①中我们介绍了DNS的基本功能和基础的DNS环境搭建,这一章接着上次没说完的内容补充以下几点:
1. DNS设置递归查询;
2. DNS设置主辅同步;
3. DNS子域配置;
3. DNS子域配置转发。
实验场景5--递归查询
BIND配置中开启递归参数,默认为开启recurison yes
recursion yes/no 是否开启递归查询请求;
alow-recursion {address_,atch_list | any |none};
1. 修改/etc/bind/named.conf.options配置文件
[xhz@Client]# vim /etc/bind/named.conf
options {
recursion yes;
#可选配置,限制客户递归查询的范围
#allow-recursion {10.0.0.0/24;172.168.1.0/24};
}
[xhz@Client]# rndc reload
2. 测试
recursion为yes情况下:
# www。baidu.com 本地dns不存在,需要递归
[xhz@Route]# dig www.baidu.com @10.10.10.128 +short
www.a.shifen.com.
112.80.248.76
112.80.248.75
# www.example.com 本地dns存在
[xhz@Route]# dig www.example.com @10.10.10.128 +short
1.1.1.1
recursion为no情况下:
# www。baidu.com 本地dns不存在,需要递归,此时关闭了递归功能因此查询不到www.baidu.com
[xhz@Route]# dig www.baidu.com @10.10.10.128 +short
# www.example.com 本地dns存在
[xhz@Route]# dig www.example.com @10.10.10.128 +short
1.1.1.1
实验场景6--DNS主辅同步
1. DNS主辅同步概念
· 辅助DNS是DNS容灾备份服务:在主DNS和辅DNS之间建立区域数据传输机制,当主DNS遇到故障或者服务中断时,辅DNS继续提供解析服务,因此保证业务的稳定运行。
· 辅助DNS的优势:
1. 容灾备份,降低业务中断风险,主DNS故障,辅DNS可以继续提供域名解析服务,
保障业务key性。
2. 负载均衡,流量均摊降低风险,当辅助DNS与主DNS同时对外提供解析服务时,
可以达到流量负载均衡的效果。
2. DNS主从同步原理
3. DNS主辅同步实验
3.1 主辅环境准备
· 确保防火墙规则开放(建议直接关闭防火墙)
· 保持主从服务器时钟一致
· 搭建完主辅后,若要修改主服务器域配置,Serail Number必须递增,否则不同步;
3.2 主辅配置要点
· 主DNS的named.conf的options里面要配置allow-transfer和also-notify选项;
· 辅助DNS主配置文件的options段添加masterfile-format test,否则同步文件为data类型;
· 辅助DNS添加须区域配置文件类型为slave,同时指向masters参数指向master地址;
· 辅助DNS不可主动修改DNS数据库文件;
3.3 Msater服务器配置
[root@Clinet-128]# vim /etc/bind/named.conf.options
options {
allow-transfer {10.10.10.129;};
also-notify {10.10.10.129;};
}
[root@Clinet-128]# vim laox.zone
zone "xhz.com" {
type master;
file "/etc/bind/xhz.com";
notify yes;
}
[root@Clinet-128]# vim /etc/bind/xhz.com
$TTL 1h
xhz.com. IN SOA xhz.com. root.xhz.com. (
2019080901
24h
2h
28d
2d
)
;Name Servers
xhz.com. IN NS ns1.xhz.com.
;Other Servers
ns1.xhz.com. IN A 10.10.10.128
www IN A 10.10.10.10
flf IN A 11.11.11.11
xhl IN A 12.12.12.12
3.4 Slave服务器配置
[root@Route-129]# vim /etc/bind/named.conf.options
options {
masterfile-format text;
}
[root@Route-129]# vim laox.zone
zone "xhz.com" {
type slave;
file "/etc/bind/slave/xhz.com";
masters {10.10.10.128;};
}
3.5 测试
[root@Route-129]#dig www.xhz.com @10.10.10.128
10.10.10.10
[root@Route-129]#dig flf.xhz.com @10.10.10.128
11.11.11.11
[root@Route-129]#dig xhl.xhz.com @10.10.10.128
12.12.12.12
[root@Route-129]#
[root@Route-129]#
[root@Route-129]#
[root@Route-129]#dig www.xhz.com @10.10.10.129
10.10.10.10
[root@Route-129]#dig flf.xhz.com @10.10.10.129
11.11.11.11
[root@Route-129]#dig xhl.xhz.com @10.10.10.129
12.12.12.12
3.6 配置DNS高可用
[root@ test]# vim /etc/resplv.conf
nameserver 10.10.10.128
nameserver 10.10.10.129
实验场景7--DNS子域
A服务器负责example.com域名解析,授权B服务器负责ops.example.com的域名解析;
父域名:example.com
子域名:ops.example.com
ww.ops.example.com
test.ops.example.com
1. 配置环境
环境 | 域名 | 节点地址 |
父域Master | xhz.com | 10.10.10.128 |
父域Slave | xhz.com | 10.10.10.129 |
子域 | ops.xhz.com | 10.10.10.130 |
2. 父域配置
2.1 区域文件配置(使用之前的,在master128上,会同步给129)
[root@Clinet-128]# vim /etc/bind/named.conf.options
options {
allow-transfer {10.10.10.129;};
also-notify {10.10.10.129;};
}
[root@Clinet-128]# vim laox.zone
zone "xhz.com" {
type master;
file "/etc/bind/xhz.com";
notify yes;
}
2.2 区域文件数据库配置,将ops三级子域授权给子域服务器
[root@Clinet-128]# vim /etc/bind/xhz.com
$TTL 1h
xhz.com. IN SOA xhz.com. root.xhz.com. (
2019080901
24h
2h
28d
2d
)
;Name Servers
xhz.com. IN NS ns1.xhz.com.
;Other Servers
ns1.xhz.com. IN A 10.10.10.128
;域名解析
www IN A 10.10.10.10
flf IN A 11.11.11.11
xhl IN A 12.12.12.12
;授权子域
ops.xhz.com. IN NS ns1.ops.xhz.com.
ns1.ops.xhz.com. IN A 10.10.10.130
2.3 130上配置子域配置文件
root@Lvs-Master:/etc/bind# cat ops.xhz.zone
zone "ops.xhz.com" {
type master;
file "/etc/bind/ops.com";
};
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind# cat ops.com
$TTL 1h
ops.xhz.com. IN SOA ns.ops.xhz.com. root.ops.xhz.com. (
2022309333
24h
2h
28d
2d
)
;Name Servers
ops.xhz.com. IN NS ns1.ops.xhz.com.
;Other Servers
ns1.ops.xhz.com. IN A 10.10.10.130
www IN A 20.20.20.20
test IN A 21.21.21.21
root@Lvs-Master:/etc/bind#
2.4 结果验证
客户端通过子域获取对应的ip(使用子域的ip)
root@Lvs-Master:/etc/bind# dig test.ops.xhz.com @10.10.10.130 +short
21.21.21.21
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind# dig www.ops.xhz.com @10.10.10.130 +short
20.20.20.20
root@Lvs-Master:/etc/bind#
客户端通过子域获取对应的ip(使用父域的ip)
root@Lvs-Master:/etc/bind#
root@Lvs-Master:/etc/bind# dig www.ops.xhz.com @10.10.10.129 +short
20.20.20.20
root@Lvs-Master:/etc/bind# dig test.ops.xhz.com @10.10.10.129 +short
21.21.21.21
root@Lvs-Master:/etc/bind#
实验场景8--DNS子域配置转发
在上述的DNS子域中,我们是每天通过子域的ip作为dns服务器来查询父域中域名对应的ip的,因此需要配置dns转发的功能来实现。
1. 什么是DNS转发
转发是指将域名的查询请求,转发到某一台服务器上进行解析,被转发的服务器必须允许当前服务器做递归;
转发分为两类:
区域转发:仅转发对某特定区域的解析请求;
全局转发:针对本地没有通过zone定义的区域查询请求,统统转发。
2. 转发示例
区域转发示例:
root@Lvs-Master:/etc/bind# cat ops.xhz.zone
zone "zone_name" IN {
type forward;
forward {first | only};
forwarders {server_ip;};
};
全局转发示例:
root@Lvs-Master:/etc/bind# cat name.conf.options
options {
forward {first | only};
forwarders {server_ip;};
};
转发含义
forwarders 转发给哪台服务器,可以多台
forward only 仅转发
forward first 优先转发给对应的服务器查询,如转发器未响应,则自行迭代查询
3. 实验
子域上配置转发
root@Lvs-Master:/etc/bind# cat ops.xhz.zone
zone "ops.xhz.com" {
type master;
file "/etc/bind/ops.com";
};
zone "xhz.com" IN {
type forward;
forward first;
forwarders {10.10.10.128;10.10.10.129;};
};
测试
root@Lvs-Master:/etc/bind# dig www.xhz.com @10.10.10.130 +short
10.10.10.10
root@Lvs-Master:/etc/bind# dig flf.xhz.com @10.10.10.130 +short
11.11.11.11
root@Lvs-Master:/etc/bind#