一、 知识预备
1、DNS服务器的分类
主DNS服务器
主DNS服务器复制维护所管辖域的域名服务信息,它从域管理员构造的本地磁盘文件中的加载域信息。该文件包含服务器具有管理权的的一部分域结构的精确信息,配置主域服务器需要一整套配置文件:
- 全局配置文件:/etc/named.conf
- 主配置文件:/etc/named.rfc1912.zones
- 正反向区域配置文件:/var/named/xxx
- 高速缓存初始化文件:/var/named/named.ca
- 回送文件:/var/named/named.local
辅助DNS服务器
辅助DNS服务器用于分担主DNS服务器的查询负载。正反向区域文件是从主DNS服务器上复制过来的,并作为本地磁盘文件存储在辅助DNS服务中。这种复制被称为“区域传送”。在辅助DNS服务器中存在一个所有域信息的完整复制,可以权威的应当域中的查询请求。
转发DNS服务器
转发DNS服务器可以向其他DNS服务器转发解析请求。当DNS服务器收到客户端的解析请求后,它首先会尝试从本地数据库中查找,如果未查询到,则会向其它DNS服务器转发解析请求;其它DNS服务器解析后会返回解析结果,转发DNS服务器会将该解析结果缓存在自己的DNS缓存,并向客户端返回解析请求。
唯高速缓存DNS服务器
唯高速缓存DNS服务器供本地网络上的客户机用来进行域名转发。它通过查询其它DNS服务器并将获得的信息存放在它的高速缓存中,为客户机查询信息提供服务。但是该DNS服务器不是权威的服务器,因为提供的所有信息都是间接信息。
2、资源记录
SOA资源记录
每一区在区的开始处都包含了一个起始授权记录(Start of Authority Record, SOA)记录。SOA定义了域的全局参数,进行整个域的管理设置。一个区域文件只允许存在唯一的SOA记录。
NS资源记录
名称服务器(NS)资源记录表示该区的授权服务器,表示SOA资源记录中指定的该区的主DNS服务器和辅助DNS服务器,也表示了任何授权区域的服务器。每个区域在区域根处至少包含一个NS记录。
A记录
地址(A)记录吧FQDN映射到IP地址,因而解析器能查询FQDN对应的IP地址。
PTR记录
现对于A资源记录,指针(PTR)记录把IP地址映射到FQDN。
CNAME资源记录
规范名称(CNAME)资源记录创建特定FQDN的别名。用户可以使用CNAME记录来隐藏用户网络的实现细节,使连接的客户机无法知道。
MX资源记录
邮件交换(MX)资源记录为DNS域名指定邮件交换服务器。邮件交换服务器是用于DNS域名处理或转发邮件的主机。
- 处理邮件是指把邮件投递到目的地或转交另一个不同类型的邮件传送者
- 转发邮件是指把邮件发送到最终目的服务器。
- 转发邮件时,直接使用简单邮件传输协议(SMTP)把邮件发送到离最终目的服务器最近的邮件交换服务器
3、/etc/hosts文件
hosts文件是Linux系统下中一个复制IP地址与域名快速解析的文件,以ASCII格式保存在/etc目录下。hosts文件包含了IP地址和主机名之间的映射,还包括主机名的别名。在没有配置DNS时,系统上的所有网络程序都通过查询该文件来解析对应的IP地址。
书写格式
IP地址 主机名/域名
windows也同样存在hosts文件,存储路径在C:\Windows\System32\drivers\etc\hosts
二、拓扑
正向记录 | 反向记录 | 备注 |
---|---|---|
www.meaauf.com | 192.168.1.11 | web服务器 |
ftp.meaauf.com | 192.168.1.12 | ftp服务器 |
mail.meaauf.com | 192.168.1.13 | 邮件交换记录 |
web.meaauf.com | 192.168.1.11 | web服务器的别名 |
二、基础IP地址配置
主DNS服务器
# DNS服务器的IP地址需为静态IP
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.1.1/24 ipv4.dns 192.168.1.1
nmcli connection up ens160
辅助DNS服务器
# DNS服务器的IP地址需为静态IP
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.1.2/24 ipv4.dns 192.168.1.1
nmcli connection up ens160
委派DNS服务器
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.1.3/24 ipv4.dns 192.168.1.1
nmcli connection up ens160
DNS客户端
nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.dns 192.168.1.2
nmcli connection up ens160
三、安装DNS服务
主DNS服务器
dnf install bind -y
辅助DNS服务器
dnf install bind -y
委派DNS服务器
dnf install bind -y
四、主DNS配置
主DNS服务器
vim /etc/named.conf # 编辑配置文件
# 修改下列内容
options {
listen-on port 53 { any; }; # 侦听的IP地址为任意
listen-on-v6 port 53 { any; }; # 侦听的IPv6地址为任意
allow-query { any; }; # 允许查询网段IP为任意
dnssec-validation no; # 更改为no,可以忽略SELinux的影响
};
调整防火墙规则
firewalld-cmd --add-service=dns --permanent
firewalld-cmd --reload
启动服务并加入开机自启
systemctl enable --now named
添加正向反向区域
vim /etc/named.rfc1912.zones
# 追加以下内容
zone "meaauf.com" IN {
type master;
file "meaauf.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "meaauf.com.ref";
};
在正向区域中添加相关记录
配置文件的书写规范
- 如果完整书写域名需要加上根域,例如:【 ftp.meaauf.com. 】需要在末尾添加“.”
- 注释符号为分号,“;”
- @代表当前域
cp -p /var/named/named.localhost /var/named/meaauf.com.zone # 复制模板文件
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.1.1
www A 192.168.1.11
mail A 192.168.1.12 # 仅书写主机
ftp.meaauf.com. A 192.168.1.13 # 完整书写
web CNAME www.meaauf.com. # CNAME:别名
meaauf.com. MX 10 192.168.1.12 # MX 邮件记录
在反向区域中添加相关记录
cp -p /var/name/named.loopback /var/named/meaauf.com.ref
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.1.1
11 PTR www.meaauf.com.
12 PTR mail.meaauf.com.
13 PTR ftp.meaauf.com.
重启服务
systemctl restart named
测试
nslookup
> www.meaauf.com
> ftp.meaauf.com
> web.meaauf.com
> set type=MX
> meaauf.com
测试结果无误后,调试防火墙
systemctl start firewalld
firewalld-cmd --permanent --add-service=dns # --permanent永久更改, --add-service添加dns服务放行
firewalld-cmd --reload # 重新加载防火墙规则
重新测试
nslookup
> 192.168.1.11
> 192.168.1.12
> 192.168.1.13
五、辅助DNS配置
辅助DNS的配置
- 辅助DNS服务器只需要修改自己主配置文件,而不需要修改主DNS服务器的配置文件
- 辅助DNS需要将区域解析文件同步到
/var/named/slaves
下
修改自己的配置文件
vim /etc/named.conf # 编辑配置文件
# 修改下列内容
options {
listen-on port 53 { any; }; # 侦听的IP地址为任意
listen-on-v6 port 53 { any; }; # 侦听的IPv6地址为任意
allow-query { any; }; # 允许查询网段IP为任意
dnssec-validation no; # 更改为no,可以忽略SELinux的影响
};
添加正向反向辅助区域
vim /etc/named.rfc1912.zones
# 追加以下内容
zone "meaauf.com" IN { # 正向区域
type slave; # 设置区域类型为:辅助DNS
file "slaves/meaauf.com.zone"; # 区域文件路径为 slaves/***(/var/named/slaves)
masters { 192.168.1.1; }; # 主DNS服务器地址
};
zone "1.168.192.in-addr.arpa" IN { # 反向区域
type slave; # 设置区域类型为:辅助DNS
file "slaves/meaauf.com.ref"; # 区域文件路径
masters { 192.168.1.1; }; # 主DNS服务器地址
};
启动DNS服务
systemctl enable --now named.service
调整防火墙规则
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
查看自动同步的解析文件
ll /var/named/slaves
测试
nslookup
> 192.168.1.11
> 192.168.1.12
> www.meaauf.com
> web.meaauf.com
> set type=MX
> meaauf.com
六、委派DNS配置
子域的应用环境
- 原域中增加了新的分支或站点
- 原域规模增大,记录条目增多,用户检索DNS信息时间增加
管理子域
- 区域委派
- 建立子域,并将子域的解析工作委派到额外的DNS服务器
- 在父域的权威DNS服务器中登记委派记录
- 虚拟子域
- 子域管理工作不委派给其他服务器
- 与父域信息存放在一起,存放在相同的域名服务器中
修改主DNS服务器的正向区域文件
仅仅创建子域无法使子域信息被解析,需要在父域中创建A记录,建立父域和子域的关联
vim /var/named/meaauf.com.zone
# 末尾追加两行
gd.meaauf.com. NS dns.gd.meaauf.com. # 设置gd.meaauf.com委派区域由域名服务器dns.gd.meaauf.com管理
dns.gd.meaauf.com A 192.168.1.3 # 设置域名服务器dns.gd.meaauf.com的A记录
修改主DNS服务器的反向区域文件
vim /var/named/meaauf.com.ref
# 末尾追加两行
1 PTR gd.meaauf.com.
3 PTR dns.gd.meaauf.com.
重启服务
systemctl restart named
修改委派DNS服务器的配置文件
vim /etc/named.conf # 编辑配置文件
# 修改下列内容
options {
listen-on port 53 { any; }; # 侦听的IP地址为任意
listen-on-v6 port 53 { any; }; # 侦听的IPv6地址为任意
allow-query { any; }; # 允许查询网段IP为任意
dnssec-validation no; # 更改为no,可以忽略SELinux的影响
};
启动dns服务且调整防火墙策略
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
为委派DNS服务器添加子域的正向区域和反向区域
vim /etc/named.rfc1912.zones
# 追加以下内容
zone "gd.meaauf.com" IN {
type master;
file "gd.meaauf.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "gd.meaauf.com.ref";
};
在正向区域中添加相关记录
cp -p /var/named/named.localhost /var/named/gd.meaauf.com.zone # 复制模板文件
vim /var/named/gd.meaauf.com.zone # 修改记录文件
# 修改内容为以下
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
gd.meaauf.com. A 192.168.1.3
dns.gd.meaauf.com. A 192.168.1.3
www.gd.meaauf.com. A 192.168.1.110
mail.gd.meaauf.com. A 192.168.1.120
web.gd.meaauf.com. CNAME www.gd.meaauf.com.
gd.meaauf.com. MX 10 mail.gd.meaauf.com.
在反向区域中添加相关记录
cp -p /var/name/named.loopback /var/named/gd.meaauf.com.ref
vim /var/named/gd.meaauf.com.ref
# 修改内容如下
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.1.3
3 PTR dns.gd.meaauf.com.
110 PTR www.gd.meaauf.com.
120 PTR mail.gd.meaauf.com.
测试
nslookup
> gd.meaauf.com
> dns.gd.meaauf.com.
> web.gd.meaauf.com.
> 192.168.1.120
> set type=MX
> gd.meaauf.com