DNS服务器搭建
实验搭建 DNS 服务器
尝试搭建 DNS 服务器,中途碰到了些问题,解决后,将搭建的过程和步骤记录下来
安装软件
DNS 用到的软件是 bind,直接安装即可
Arch Linux 和 RHEL7 用的都一样
1 |
|
RHEL7
1 |
|
最基本的配置
编辑 /etc/named.conf
文件,修改以下两个配置
1 |
|
设置ipv4的监听地址为所有地址,允许查询的主机为任意主机
编辑 /etc/named.rfc1912.zones
文件,添加正向和反向的DNS解析
1 |
|
保留权限的复制 /var/named/named.empty 到 /var/named/data/hello.com.zone
1 |
|
编辑 /var/named/data/hello.com.zone
文件
1 |
|
- @ 代表当前区域的域名
- 第一个
@
是当前区域的名字 - SOA 表示资源类型为SOA
- 第二个
@
为主DNS的名称,表示下面哪一条资源记录是主 DNS - jkmail.neroumu.top. DNS服务器的管理员邮箱,@用点
.
来代替 - IN 代表Internet
NS @
其中 NS 表示这是一条域名服务器记录,@ 表示当前区域的服务器是域名服务器A 172.16.10.10
表示当前区域的域名服务器的 IP 地址,也就是本机的 IP 地址
同理复制一个反向解析文件 data/10.16.172.in-addr.arpa.zone
,编辑如下
1 |
|
重启服务
1 |
|
客户端可以通过 nslookup
命令测试是否搭建完成
1 |
|
搭建从服务器
从服务器安装好 bind 后,同样的修改 /etc/named.conf
中的两个 any
编辑 /etc/named.rfc1912.zones
文件,增加一个正向解析和一个反向解析,并设置类型为slave
1 |
|
重启服务
1 |
|
此时在 /var/named/slaves
目录下可以看到正向和反向区域解析都已自动获取,配置完成
搭建 DNS 子域委派
编辑 /etc/named.conf
文件,将服务器之间的认证机制关闭,否则后续会导致无法认证以至于无法委派子域,父域和子域都要配置
1 |
|
编辑子域服务器的 /etc/named.rfc1912.zones
文件,添加一个子域zone
1 |
|
编辑 /var/named/data/sekai.hello.com.zone
文件
1 |
|
其实就是在子域服务器上搭建一个新的 DNS 服务器,它管理的域名是 hello.com 的一个子域 sekai
此时启动服务后,本服务器可以解析 sekai.hello.com 的资源
但此时父域服务器无法解析子域管理的域名,需要给它授权才能解析到子域管理的域名
编辑父域服务器的 /var/named/data/hello.com.zone
文件,添加子域服务器认证
1 |
|
添加的两条解析的意思是如果碰到 sekai 这个域的域名解析,把它交给 dns1 所指向的服务器解析,dns1 指向的服务器为子域服务器的 IP 地址
重启 named 服务后,客户端将DNS服务器设置为父域服务器,并尝试解析子域服务器管理的域名,可以得到未经过认证的解析结果
1 |
|
常见错误
忘记关闭防火墙导致子域服务器配置失败
1
2systemctl stop firewalld
iptables -F序列号不相同导致无法授权
认证机制未关闭,因为配置的时候没有配置认证,所以应该关闭认证,否则会无法授权
编辑/etc/named.conf
文件的如下配置1
2dnssec-enable no;
dnssec-validation no;
总算是把 DNS 服务器配置出来了,尤其是子域配置,配置了很久
之所以能在子域卡这么久,就是因为很多博主在配置的时候,都没有提到过关闭认证机制,导致我一直配置不成功,关闭之后,一下就成功了
从大量的重复、真真假假的文章中找答案真是太难受了,还是直接读官方文档好啊 ( ′ 3`) sigh~