我正在尝试使用 Bind9 的生产版本 (BIND9.11.33) 设置 DNS 委派。当前区域是“example.localnet”。我尝试为 Iodine DNS 隧道设置的子域是“dnstun.example.localnet”。
“example.localnet”域指向名称服务器“ns1.example.localnet”,其 IP 地址为“192.168.0.13”。这是 DNS 服务器的 IP。委派子域“dnstun.example.localnet”指向名称服务器“ns2.example.localnet”,其 IP 地址为“192.168.0.14”。这是 Iodine 服务器所在的位置。
这是有趣的部分:当我使用 NSLookup 在 set type=ns 下查询 Bind9 DNS 服务器中的“example.localnet”时,它会给出名称服务器的 IP 地址。对于委托的子域,它会给出 NXDOAMIN、超时或服务器故障。
我注意到,当我在 Wireshark 中查询 NS 中的“dnstun.example.localnet”时,它会访问互联网以查找谁是 NS“dnstun.example.localnet”。这将返回 NXDOMAIN。
禁用转发和递归后,NS 查询“dnstun.example.localnet”可以正常工作。我不确定我到底错过了什么。我还向“example.localnet”区域(在 named.conf 中)添加了一个空转发器,但它不起作用。它要么超时,要么服务器故障。
这是我的“named.conf”文件:
options {
directory "C:\Program Files\ISC BIND 9\etc";
allow-transfer { none; };
recursion yes;
forward only;
forwarders { 192.168.0.254; };
};
zone "example.localnet" IN {
type master;
file "db.example.localnet.txt";
allow-transfer { none; };
// forwarders {};
};
zone "0.168.192.in-addr.arpa" {
type master;
notify no;
file "db.192.168.0.txt";
};
这是我的“example.localnet”区域文件:
$TTL 6h
@ IN SOA ns1.example.localnet. admin.example.localnet. (
2005022201
10800
3600
604800
86400 )
@ NS ns1.example.localnet.
ns1 IN A 192.168.0.13
dnstun IN NS ns2.example.localnet.
ns2 IN A 192.168.0.14
反向区域工作正常。我不确定的是为什么子域委派会以应有的方式解决。我在网上搜索了无数的例子,但找不到太多。我尝试在 Microsoft Server 2019 数据中心进行完全相同的设置,并且成功了。没有问题。Iodine DNS 隧道通过它没有任何问题。
请让我知道我遗漏了什么或做错了什么,以便我可以从中吸取教训。任何指点/帮助都将不胜感激。
干杯,
亚历山大
答案1
问题已解决。即使 NSLookup 失败,Iodine Server 和 Iodine Client 仍设法通过 Bind DNS 服务器建立隧道。通过在 named.conf 中的区域“example.localnet”中添加此代码“forwarders {};”,即可解决问题。链接:https://support.citrix.com/article/CTX124727。
这是我的“named.conf”文件:
options {
directory "C:\Program Files\ISC BIND 9\etc";
allow-transfer { none; };
allow-query { any; };
recursion yes;
// edns yes;
edns-udp-size 4096;
max-udp-size 4096;
forward only;
forwarders { 192.168.0.254; };
};
zone "example.localnet" IN {
type master;
file "db.example.localnet.txt";
allow-transfer { none; };
notify no;
forwarders {};
};
zone "0.168.192.in-addr.arpa" {
type master;
notify no;
file "db.192.168.0.txt";
};
这是我的“example.localnet”区域文件:
$TTL 6h
$ORIGIN example.localnet.
@ IN SOA ns1.example.localnet. admin.example.localnet. (
2005022201
10800
3600
604800
86400 )
@ NS ns1.example.localnet.
ns1 IN A 192.168.0.13
dnstun IN NS ns2.example.localnet.
ns2 IN A 192.168.0.14
希望这能帮助遇到类似问题的人。