一、实验环境
1、转发DNS服务器
转发服务器(Forwarding Server)接受查询请求,但不直接提供DNS解析,而是将所有查询请求发送到另外一台DNS服务器,查询到结果后保存在本地缓存中。如果没有指定转发服务器,DNS服务默认会使用根区域记录,向根服务器查询。
转发服务器一共可以分为两种类型
- 完全转发服务器:将所有区域的DNS查询请求发送到其它DNS服务器进行解析
- 条件转发服务器:只转发指定域的DNS查询请求
转发器的注意事项
- 转发器的查询模式必须允许递归查询,否则无法正确完成转发
- 转发服务器列表如果为多个DNS服务器,则会依次尝试,知道查询到信息为止
- 避免转发器嵌套,如果在Server1上配置DNS转发到Server2,则避免在Server转发到Server3
2、拓扑及需求
正向记录 | 反向记录 | 资源记录 |
---|---|---|
dns.meaauf.com | 192.168.10.1 | A/PTR |
www.meaauf.com | 192.168.10.2 | A/PTR |
web.meaauf.com | www.meaauf.com | CNAME |
mail.meaauf.com | 1921.68.10.3 | MX,10 |
二、主DNS服务器配置
主DNS详细配置请看【RedHat9 | DNS剖析-配置主DNS服务器实例】
三、转发DNS服务器配置
1、地址信息配置
配置IP地址
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.3/24 ipv4.dns 192.168.10.1
nmcli connection up ens160
查看IP地址信息及DNS
ip add show ens160
cat /etc/reslov.conf
在修改了地址信息后,主机名会被自动修改
2、YUM本地源配置
可以查看【RedHat9 | DNF/YUM仓库管理软件包】
3、关闭SELinux
修改配置文件以达到永久关闭
vim /etc/selinux/config
修改内容
SELINUX=disabled
重启生效
reboot
查看重启后SELinux的状态
sestatus
4、安装BIND9
安装BIND9
dnf -y install bind
5、修改全局配置文件
编辑全局配置文件
vim /etc/named.conf
修改以下内容
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
dnssec-validation no;
检查配置文件语法
named-checkconf
四、测试客户端配置
1、地址信息配置
配置IP地址,将DNS指向辅助DNS服务器
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.10/24 ipv4.dns 192.168.10.1
nmcli connection up ens160
查看IP地址信息及DNS
ip add show ens160
cat /etc/reslov.conf
2、关闭SELinux
修改配置文件以达到永久关闭
vim /etc/selinux/config
修改内容
SELINUX=disabled
重启生效
reboot
查看重启后SELinux的状态
sestatus
五、配置完全转发服务器
1、修改全局配置文件
编辑全局配置文件
vim /etc/named.conf
在option中添加
forwarders { 192.168.10.1; }; # 查询的主机列表
forward only; # 仅执行转发查询
2、启动DNS服务
启动DNS服务并加入开机自启
systemctl enable --now named.service
调整防火墙策略
firewalld-cmd --add-service=dns --permanent
firrwalld-cmd --reload
3、客户端测试
可以先查看主DNS服务器上存在哪些记录
使用nslookup测试
nslookup
> www.meaauf.com
> www.qy.meaauf.com
> 192.168.10.11
> 192.168.10.1
六、配置条件转发服务器
如果配置了完全转发,则不要配置条件转发
转发区域存在两种转发模式
- forward only:递归转发,如果DNS服务器没有查询结果返回给转发DNS服务器,则查询失败并结束;
- forward first:迭代查询,先进行递归查询,如果DNS服务器没有返回结果,则询问根DNS,迭代查询下去。
1、修改区域配置文件
编辑区域配置文件
vim /etc/named.rfc1912.zones
添加正向区域和反向区域
zone "meaauf.com" IN {
type forward; # 指定区域为:转发区域
forward only; # 进行递归转发
forwarders { 192.168.10.1; }; # 查询的主机列表
};
zone "10.168.192.in-addr.arpa" IN {
type forward;
masters { 192.168.10.1; };
};
2、启动DNS服务
启动DNS服务并加入开机自启
systemctl enable --now named.service
调整防火墙策略
firewalld-cmd --add-service=dns --permanent
firrwalld-cmd --reload
3、客户端测试
使用nslookup测试
nslookup
> www.meaauf.com
> www.qy.meaauf.com
> 192.168.10.11
> 192.168.10.1
重启服务清除本地DNS缓存
systemctl restart dnsmasq.service
我们可以在主DNS服务器中多添加一个新域
vim /etc/named.rfc1912.zones
# 添加新域
zone "china.com" IN {
type master;
file "china.com.zone";
allow-update { none; };
};
新建正向区域解析文件
cp -p /var/named/named.localhost /var/named/china.com.zone
vim /var/named/china.com.zone
写入下列内容
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.20.1
www A 192.168.20.1
ftp A 192.168.20.2
主DNS服务器使用nslookup测试
nslookup
> www.china.com
> ftp.china.com
客户端测试解析非转发域
nslookup
> www.china.com
> ftp.china.com