我正在尝试弄清楚如何将其他域添加到我的 DNS 服务器,因为我遵循了本教程:
https://tecadmin.net/configure-dns-server-on-ubuntu-linuxmint/
有人能解释并向我展示如何向我的服务器添加更多域名,以便我可以用我的 apache 服务器托管它们吗?(我知道“托管”这个术语不是正确的)
我猜它只是复制这两行并在 /etc/bind/example.net.zone 中添加其他域(并将名称服务器设置为 ns1.example.net),但真的是这样吗?
myotherdomain.net. IN A server's_ip
www IN CNAME myotherdomain.net.
答案1
基本上,多区域的说明与单区域的说明相同,但您必须调整 BIND9 的配置 - 多个区域文件和配置中的多个区域定义。
免责声明:我的系统上有多个区域,针对大量不同情况有不同的配置,并且我的 DNS 服务器与我一起位于计算机上的 LXD 容器中。我将在我的示例中使用本地 TLD(
static.lxd
、和chaos.local
)。
在我的环境中,我有多个 TLD,但我将使用static.lxd
和chaos.local
作为我的网络上的两个本地 DNS 域。
首先,我定义一个如下所示的区域文件/etc/bind/zones/static.lxd
(它是我环境中被阻止/RPZ 的域的漏洞,也是我的本地 DNS 服务器,以及仅用于本地包的本地 APT 存储库,当然还有我的 docker 实例):(大多数项目已被剥离)
;
; BIND data file for static.local
;
$ORIGIN static.lxd.
$TTL 604800
@ IN SOA local-dns. root.local-dns. (
2022040201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS local-dns.static.lxd.
local-dns IN A 10.10.1.0
local-repo IN A 10.10.2.0
dns-sinkhole IN A 10.10.1.1
docker IN A 10.10.3.0
/etc/bind/zones/chaos.local
我还为我的chaos.local
域定义了一个区域文件:
;
; BIND data file for static.local
;
$ORIGIN chaos.local.
$TTL 604800
@ IN SOA local-dns. root.local-dns. (
2022040201 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS local-dns.static.lxd.
docker IN A 10.10.3.0
我的环境中没有任何 CNAME,但对于本例的目的来说这并不重要。
两个都这些区域定义/etc/bind/named.conf.local
如下:
// DNS for static.lxd
zone "static.lxd" {
type master;
file "/etc/bind/zones/static.lxd";
};
// DNS for chaos.local
zone "chaos.local" {
type master;
file "/etc/bind/zones/chaos.local";
};
然后您完全重新启动 BIND9 实例 - sudo systemctl restart bind9
- 然后您的 DNS 服务器将提供正确的数据。
您应该将基本域(我的区域中的$ORIGIN
/@
值)定义为 A 记录,否则您会破坏您的域。你需要阅读Cloudflare 提供的此类解释有关如何 CNAME 的了解我为什么这么说。
您可以相对安全地将子域名的 CNAME 添加到根域名有点,www.foo.bar. IN CNAME foo.bar.
但如果您不小心,它仍然会导致一些奇怪的 DNS 结果。但要小心,CNAME 非常复杂,如果您真的不小心,可能会导致一些奇怪的结果。