一、实验环境
1、BIND软件包介绍
BIND软件是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护,全称为Berkeley Internet Name Domain。该软件在DNS(域名系统)领域具有重要地位,是目前世界上使用最为广泛的DNS服务器软件之一
- 主服务器程序:named.service
- 全局配置文件:/etc/named.conf
- 区域配置文件:/etc/named.rfc1912.zones
- 正向区域模板文件:/var/named/named.localhost
- 反向区域模板文件:/var/named/named.loopback
- 区域解析文件默认存放目录:/var/named/
- 配置文件语法验证命令:/usr/sbin/named.checkconf
2、全局配置文件解析
全局配置文件named.conf位于/etc/目录下
options {
listen-on port 53 {
127.0.0.1; }; # 指定bind侦听的端口和IP
listen-on-v6 port 53 {
::1; }; # 指定bind侦听的端口和IPv6
directory "/var/named"; # 区域解析文件所在目录
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query {
localhost; }; # 允许发起查询的主机
recursion yes; # 启用递归查询
dnssec-validation yes; # 启用DNSSEC验证
managed-keys-directory "/var/named/dynamic";
geoip-directory "/usr/share/GeoIP";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
include "/etc/crypto-policies/back-ends/bind.config";
};
logging {
# 日志
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
# 根区域
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
3、区域配置文件解析
区域配置文件named.rfc1912.zones位于/etc/目录下
。。。略。。。
zone "localhost" IN {
# 正向查找区域
type master; # 区域类型:主要区域
file "named.localhost"; # 区域数据文件所在路径
allow-update {
none; }; # 不允许任何主机或网络更新区域数据
};
。。。略。。。
zone "0.in-addr.arpa" IN {
# 反向查找区域
type master; # 区域类型:主要区域
file "named.empty"; # 区域数据文件所在路径
allow-update {
none; }; # 不允许任何主机或网络更新区域数据
};
4、正向区域解析文件模板解析
区域配置文件named.localhost位于/var/named/目录下
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
- $TTL 1D:设置默认的TTL生存时,定义了DNS记录在缓存中可以保留的时间
- @ IN SOA @ rname.invalid.
- @:代表当前区域,可以理解为是一个变量
- SOA :起始授权机构,SOA记录是DNS区域文件中的第一个记录,主要表示DNS服务器和区域的其它参数
- rname.invalid. :电子邮件的占位符,用于书写管理员的邮箱,如果要书写域名,需要书写完全,也就是要带上根域
.
- 0 :serial字段,代表序列号,用于标识区域文件的版本,当文件版本修改后,值应增加,以便其他DNS服务器知悉重新加载该区域
- 1D :刷新时间,辅助DNS在重新获取主DNS记录的等待时间
- 1H :重试时间,当辅助DNS获取数据失败时,重新获取的等待时间
- 1W :过期时间,辅助DNS无法与主DNS联系时,辅助DNS数据的有效时间
- 3H :最小TTL,这是可以应用于该区域中所有记录的最低TTL值
- NS :NS记录,指定哪一台DNS服务器负责该区域(区域指的是NS后面书写的区域,这里@表示当前区域 )的权威解析
- 区域解析文件中使用
;
来表示注释
默认文件书写并不完全,完整的书写如下所示
$TTL 1D
localhost. IN SOA localhost. rname.invalid. (
0
1D
1H
1W
3H )
localhost. NS localhost.
localhost. A 127.0.0.1
localhost. AAAA ::1
5、反向区域模板文件解析
与正向区域基本类似。
6、拓扑及需求
正向记录 | 反向记录 | 资源记录 |
---|---|---|
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服务器配置
1、地址信息配置
配置IP地址
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.10.1/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
6、修改区域配置文件
编辑区域配置文件
vim /etc/named.rfc1912.zones
添加正向区域和反向区域
zone "meaauf.com" IN {
type master;
file "meaauf.com.zone";
allow-update {
none; };
};
zone "10.168.192.in-addr.arpa" IN {
type master;
file "meaauf.com.ref";
allow-update {
none; };
};
7、新建正反区域解析文件
复制正向区域解析模板
cp -p /var/named/named.localhost /var/named/meaauf.com.zone
复制反向区域解析模板
cp -p /var/named/named.loopback /var/named/meaauf.com.ref
编辑正向解析区域文件
vim /var/named/meaauf.com.zone
修改为以下内容
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.10.1
dns A 192.168.10.1
www A 192.168.10.2
web CNAME www.meaauf.com.
mail A 192.168.10.3
@ MX 10 192.168.10.3
编辑反向解析区域文件
vim /var/named/meaauf.com.ref
修改为以下内容
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.10.1
1 PTR dns.meaauf.com.
2 PTR www.meaauf.com.
3 PTR mail.meaauf.com.
@ MX 10 mail.meaauf.com.
8、启用DNS服务
启动DNS服务并加入开机自启
systemctl enable --now named.service
调整防火墙策略
firewalld-cmd --add-service=dns --permanent
firrwalld-cmd --reload
三、测试客户端配置
1、地址信息配置
配置IP地址
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
3、使用nslookup测试
正向解析
nslookup
> dns.meaauf.com
> www.meaauf.com
> web.meaauf.com
> mail.meaauf.com
反向解析
nslookup
> 192.168.10.1
> 192.168.10.2
> 192.168.10.3
邮件记录解析
nslookup
> set type=MX
> meaauf.com
文章评论