引言
DNS,全称为域名系统(Domain Name System),是一个网络基础设施,它允许用户通过易于记忆的域名来访问网站,而不需要知道与之关联的IP地址。
BIND9是一种流行的开源DNS服务器软件,它用于配置DNS授权服务器和DNS缓存服务器。
dig命令是一种常用的域名查询工具,可以用来测试域名系统工作是否正常。
环境
为了顺利地搭建BIND9服务器,需要准备一个运行Linux的环境。在本教程中,我使用CentOS作为操作系统。
安装BIND9
在CentOS上安装BIND9非常简单。只需打开终端并运行以下命令:
sudo yum install bind
这将安装BIND9软件包和其相关依赖项。
配置域名
为了设置DNS解析,我们需要配置域名。为此我们需要先创建域文件。
这些文件存储了域名和IP地址的映射关系。域文件通常位于 /var/named/data 目录下。以下是如何创建一个域文件的步骤:
创建域文件
在终端中运行以下命令来创建一个新的域文件:
sudo vim db.test.com
这将打开一个新文件db.test.com。在此文件中,你需要输入以下内容:
;
; BIND data file for test.com.
;
$TTL 604800
@ IN SOA test.com. root.test.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; A records
@ IN NS localhost.
@ IN A 183.169.1.12
@ IN AAAA 2183:169:1::12
testing.test.com. IN A 183.169.1.12
testing.test.com. IN AAAA 2183:169:1::12
注意,域名是以.结尾的!
保存并关闭文件。
修改named.conf配置文件
现在,我们需要修改BIND9的配置文件named.conf,以告诉它我们的域是什么以及在哪里可以找到域文件。运行以下命令来打开named.conf文件:
sudo vim /etc/named.conf
在配置文件中添加以下内容:
zone "test.com" {
type master;
file "/var/named/data/db.test.com";
};
保存并关闭文件。现在,BIND9应该知道我们的域和域文件了。接下来,我们需要启动BIND9服务。
启动named服务
在终端中运行以下命令来启动named服务:
sudo systemctl start named
测试DNS解析
本机dig测试
如果你想测试本地的DNS查询是否正常工作,可以在终端中运行以下命令:
dig @localhost testing.test.com
跨主机 dig 测试
如果要实现跨主机解析,需要两台设备相互之间能ping 通,且需要放开BIND服务器的监听范围。
具体来说,修改 named.conf options:
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
其它问题
forwarders 转发不起作用
前提:设备能访问外网
当我在 named.conf.options 添加 forwarders,dig 公网域名时失败,只需将 dnssec-validation 设置为 no 就解决问题。