Bind9内网DNS服务器搭建 | 实现DNS转发功能 | 配置内网顶级域名

DNS(域名系统) 是互联网的基础服务之一,用于将人类可读的域名(如 jester-blog.cc)转换为机器可读的 IP 地址(如 192.0.2.1),从而实现设备之间的通信。

本文将展示如何使用Bind9在Ubuntu操作系统下搭建内网DNS服务器实现转发功能,并实现对自定义顶级域名的访问。笔者用于作为DNS服务器的设备的操作系统是:Ubuntu24.10,IP地址为10.10.10.229。

首先我们安装Bind9:

sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

Bind9默认的配置文件如下:

主配置文件:/etc/bind/named.conf

区域配置:/etc/bind/named.conf.local

选项配置:/etc/bind/named.conf.options

区域数据库文件:/var/cache/bind/

随后我们来到选项配置文件进行转发功能的配置,请将默认内容覆盖为:

options {
    directory "/var/cache/bind";

    recursion yes;
    allow-query { any; };

    forwarders {
        223.5.5.5;     // 阿里DNS
        8.8.8.8;       // 谷歌DNS
    };

    dnssec-validation auto;

    listen-on { any; };
    allow-recursion { any; };
};

此时,我们的内网DNS服务器转发功能配置完毕,当连接到该内网DNS服务器对外请求时,该内网DNS服务器会将请求转发给上游DNS服务器,即配置文件中forwaders字段中的223.5.5.5和8.8.8.8。

若您还想实现在内网环境中访问自定义的顶级域名,需要创建一个名为test的内网自定义域:

sudo nano /etc/bind/db.test
# 编辑内容为
$TTL    604800
@       IN      SOA     dns.test. admin.test. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      dns.test.
dns     IN      A       10.10.10.229
web     IN      A       10.10.10.150

随后我们来到区域配置文件中,写入以下内容:

zone "test" {
    type master;
    file "/etc/bind/db.test";
};

随后,检查上述两个文件配置是否正确并重启Bind9服务即可:

sudo named-checkconf
sudo named-checkzone test /etc/bind/db.test
sudo systemctl restart bind9

至此,对内网DNS服务器配置自定义顶级域名结束,您可以在内网其他设备上手动配置DNS服务器为您自己DNS服务器的IP地址,并通过以下命令测试转发和自定义顶级域名功能是否正常:

nslookup www.baidu.com 10.10.10.229
nslookup web.test 10.10.10.229

得到的输出应为

名称:    web.test
Address:  10.10.20.229

至此,Ubuntu环境下使用Bind9搭建内网转发DNS服务器结束。

参考链接:https://www.horace-liu.com/archives/256

Avatar photo

Sebastian

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注