1. 安装 Bind 软件包
首先需要安装bind
以及相关的工具包,在终端中执行以下命令:
bash
sudo yum install bind bind-utils -y
2. 配置主配置文件
Bind 的主配置文件是/etc/named.conf
,你可以使用文本编辑器(如vim
)打开该文件进行配置:
bash
sudo vim /etc/named.conf
下面是一个基本的配置示例:
plaintext
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
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";
上述配置中,listen-on
指定了监听的 IP 地址和端口,allow-query
指定了允许哪些 IP 地址进行 DNS 查询,这里配置为允许任何 IP 地址查询。
3. 创建正向和反向查找区域
正向查找区域
正向查找区域用于将域名解析为 IP 地址。首先需要在/etc/named.rfc1912.zones
文件中添加区域配置:
bash
sudo vim /etc/named.rfc1912.zones
添加如下内容(假设域名为example.com
):
plaintext
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
然后在/var/named
目录下创建区域文件example.com.zone
:
bash
sudo vim /var/named/example.com.zone
文件内容示例如下:
plaintext
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025040401 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.100
www IN A 192.168.1.101
反向查找区域
反向查找区域用于将 IP 地址解析为域名。同样在/etc/named.rfc1912.zones
文件中添加区域配置:
plaintext
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};
在/var/named
目录下创建反向区域文件192.168.1.zone
:
bash
sudo vim /var/named/192.168.1.zone
文件内容示例如下:
plaintext
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025040401 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com.
101 IN PTR www.example.com.
4. 修改文件权限
确保/var/named
目录下的区域文件权限正确,执行以下命令:
bash
sudo chown named:named /var/named/example.com.zone
sudo chown named:named /var/named/192.168.1.zone
5. 启动并设置开机自启
完成配置后,启动named
服务并设置为开机自启:
bash
sudo systemctl start named
sudo systemctl enable named
6. 配置防火墙
如果防火墙开启,需要开放 DNS 服务使用的端口(UDP 和 TCP 的 53 端口):
bash
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload
7. 测试 DNS 服务
你可以使用nslookup
或dig
命令来测试 DNS 服务是否正常工作,例如:
bash
nslookup www.example.com 192.168.1.100
以上步骤完成后,你就在 CentOS 系统上成功部署了 DNS 服务。