Linux 配置DNS域名解析服务器
1. DNS分布式结构
结构 | 含义 |
---|---|
. | 根(全球共13台) |
cn. jp. | 顶级域 |
com.cn. | com. 就是二级域 |
baidu.com.cn. | baidu. 就是子域(需要购买,全球唯一) |
2. 域名解析过程
查询:
本地缓存 ------> dns域名服务器 ------> 根服务器 ------> 顶级域 ------> 二级域 ------> 子域
先查本地的dns缓存,如果没有,到dns域名解析服务器查找,若是还是没有,就到根服务器找,找不到就到顶级域,找不到就去二级域找,找不到再到子域
返回:
查询结果 ------> dns域名服务器 ------> 本地缓存 ------> 用户 ------> ip地址
将返回结果先发送至域名解析服务器,域名解析服务器将结果发送到本地,再发送给用户
迭代:
查询 --- 从根服务器到子域的查询过程
递归:
返回 --- 从dns域名服务器到返回ip地址的过程
3. 解析方式
三种解析方式
正向解析:
从域名解析出ip地址
反向解析:
从ip地址解析出域名
主从服务器解析:
主服务器停止工作,从服务器可以继续承担任务
解析命令:
nslookup 域名/ip地址
可以正向解析也可以反向解析,但需要配置
4. bind 配置服务软件
bind 软件
开源软件
用于内网划分dns
外网地址划分需要注册、付费
内网地址划分不需要注册、免费,方便内部进行访问和使用
服务类型:
根区域 hint
主区域 master
从区域 slave
(1)安装bind软件
# 本地yum源和在线yum源都可以安装
[root@localhost ~]# yum -y install bind
(2)配置文件
① 主区域配置文件
作用:
用于配置服务、配置监听地址
位置:
/etc/named.conf
② 区域配置文件
作用:
指定区域数据文件
位置:
/etc/named.rfc1912.zones
③ 区域数据配置文件
作用:
配置正向及反向解析
位置:
/var/named/named.localhost
5. 配置DNS主服务器
配置主区域文件
# 备份配置文件
[root@localhost ~]# cd /etc
[root@localhost etc]# cp named.conf named.conf.bak20230520
[root@localhost etc]# vim named.conf
# 将解析服务器主机ip设置为本机的ip地址
# 允许所有网段的客户机访问
(1)正向解析
① 配置区域文件
# 备份配置文件
[root@localhost ~]# cd /etc
[root@localhost etc]# cp named.rfc1912.zones named.rfc1912.zones.bak
[root@localhost etc]# vim named.rfc1912.zones
# 设置域名为 host1.com
# 类型为master(主区域)
# 设置区域数据配置文件的文件名
② 配置区域数据配置文件
默认的区域数据配置文件在 /var/named/named.localhost
[root@localhost etc]# cd /var/named
[root@localhost named]# cp -a named.localhost host1.com.zone
[root@localhost named]# vim host1.com.zone
$TTL 1D
@ IN SOA host1.com. admin.host1.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS host1.com.
A 192.168.23.5
www IN A 192.168.23.10
IN MX 10 mail.host1.com.
mail IN A 192.168.23.15
AAAA ::1
# 重启named服务
[root@localhost named]# systemctl restart named
# 修改DNS域名解析配置文件(192.168.23.5 、23.10 、23.15 主机都要更改)
[root@localhost named]# vim /etc/resolv.conf
nameserver 192.168.23.5
③ 重启named服务
④ 修改DNS域名解析配置文件(192.168.23.5 、23.10 、23.15 主机都要更改)
⑤ 正向解析检测
(2)反向解析
① 配置区域文件
# 进入区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
# 添加反向解析配置
zone "23.168.192.in-addr.arpa" IN {
type master;
file "host1.com.zone.local";
allow-update { none; };
};
② 配置区域数据文件
# 创建反向解析区域配置文件
[root@localhost ~]# cd /var/named
[root@localhost named]# cp -a host1.com.zone host1.com.zone.local
# 进入配置反向解析区域配置文件
[root@localhost named]# vim host1.com.zone.local
$TTL 1D
@ IN SOA host1.com. admin.host1.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS host1.com.
A 192.168.23.5
10 IN PTR www.host1.com.
15 IN PTR mail.host1.com.
AAAA ::1
③ 重启named服务
[root@localhost named]# systemctl restart named
④ 修改DNS域名解析配置文件(192.168.23.5 、23.10 、23.15 主机都要更改)
⑤ 反向解析检测
6. 配置DNS从服务器
(1)更改主服务器
# 更改主服务器
[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "host1.com" IN {
type master;
file "host1.com.zone";
allow-transfer { 192.168.23.20; };
};
zone "23.168.192.in-addr.arpa" IN {
type master;
file "host1.com.zone.local";
allow-transfer { 192.168.23.20; }
};
# 重启主服务器named服务
[root@localhost ~]# systemctl restart named
(2)配置从服务器
① 配置主区域配置文件
# 从服务器安装bind软件
[root@localhost ~]# yum -y install bind
# 配置从服务器的主区域配置文件
[root@localhost ~]# vim /etc/named.conf
# 监听所有网段的客户机
# 允许所有网段的客户机访问
② 配置区域配置文件
[root@localhost ~]# vim /etc/named.rfc1912.zones
# 添加正向解析和反向解析配置
zone "host1.com" IN {
type slave;
file "slaves/host1.com.zone";
masters { 192.168.23.5; };
};
zone "23.168.192.in-addr.arpa" IN {
type slave;
file "slaves/host1.com.zone.local";
masters { 192.168.23.5; };
};
# 重启named服务
[root@localhost ~]# systemctl restart named
③ 分别配置主、从服务器的DNS配置文件
root@localhost ~]# vim /etc/resolv.conf
nameserver 192.168.168.5
nameserver 192.168.168.20
④ 检验主、从服务器的区域数据配置文件是否同步
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cd slaves/
[root@localhost slaves]# ls
host1.com.zone host1.com.zone.local