我有以下设置:
\nfoo.com
test.lab.foo.com
我试图实现的目标:
\n当来自外界的 DNS 查询到达第一个 DNS 服务器以获取属于该区域的记录时test.lab.foo.com
,我希望它向第二个 DNS 服务器发出递归请求,然后转发记录。
我明确不想进行区域传输或使第二个 DNS 服务器可从 Internet 访问。
\n我的配置如下:(我只将[我的想法]\xc2\xa0重要部分复制到这里)
\n在第一个 DNS 服务器上
\noptions {\n allow-recursion {\n localnets;\n localhost;\n internal;\n my-datacenter;\n mc-office;\n };\n};\n\nzone "test.lab.foo.com" {\n forward only;\n forwarders {\n <private IP of second DNS server>;\n };\n type forward;\n };\n\n zone "foo.com" {\n file "/etc/bind/zones/foo.com.zone";\n type master;\n };\n
Run Code Online (Sandbox Code Playgroud)\n我的问题:
\n当我在本地网络中时,它被列入块中的白名单allow-recursion
,然后它会按预期工作。 \n当我尝试从互联网进行 DNS 查找时,我会得到一个 NOERROR …
我有一个 BIND 9.9.5-9+deb8u8-Raspbian DNS 服务器在我的网络中的 RPi3 上运行。它 - 对于不是我的主区域的所有内容 - 配置为“仅转发”,转发器为“{ 8.8.8.8; 8.8.4.4; 208.67.222.222; 208.67.220.220; };”。
a) 正常情况
通常,dns 解析工作得很好。即使结果不在缓存中,它们也会从转发服务器中获取并通常在 100 毫秒内传送回我的客户端。下面是一个例子:
client:~ $ time nslookup faz.net
Server: [my_server]
Address: [my_server]#53
Non-authoritative answer:
Name: faz.net
Address: 40.118.6.229
real 0m0.095s […]
Run Code Online (Sandbox Code Playgroud)
这是流量在 tcpdump 中的样子,就我所见,一切都很完美,而且 DNSSEC 验证似乎也能正常工作:
06:48:21.880240 IP [my_client].59563 > [my_server].domain: 614+ A? faz.net. (25)
06:48:21.881246 IP [my_server].28766 > google-public-dns-a.google.com.domain: 30021+% [1au] A? faz.net. (36)
06:48:21.916031 IP google-public-dns-a.google.com.domain > [my_server].28766: 30021 1/0/1 A 40.118.6.229 (52)
06:48:21.917093 IP [my_server].44792 > google-public-dns-a.google.com.domain: 10551+% …
Run Code Online (Sandbox Code Playgroud) 我正在bind9
Debian 上运行名称服务器。
我注意到有多个“命名”进程在运行,bind
启动时:
bind
实例(进程)?bind
进程的推荐用途是什么?我知道bind
就 CPU 和网络而言,这是一个相对较低的密集型应用程序。我在 Debian wheezy 中有一个 bind9 测试环境,我试图设置两条以固定顺序返回的 A 记录。在我的named.conf.options
文件中,我有以下配置:
options {
...
rrset-order { order fixed; };
};
Run Code Online (Sandbox Code Playgroud)
这是功能性的,因为我的记录总是以相同的顺序返回,但问题是 bind 选择按数字对它们进行排序(首先是最小的数字),而我正试图将它们按另一个方向排序。
基于此链接,我了解到fixed
关键字应该将响应设置为我在配置文件中获得的任何顺序。但是,我无法通过更改区域文件中记录的顺序来更改返回结果的顺序。
有谁知道如何以特定顺序返回一个 DNS 地址的多个 A 记录?
阅读有关 bind 的 ARM 中的 acl 语句发现以下内容:
本地网络:
“匹配系统具有接口的 IPv4 或 IPv6 网络上的任何主机。添加或删除地址时,localnets ACL 元素会更新以反映更改。”
“系统有一个接口” - 听起来像一个废话。我了解网络接口是什么,但不了解上述文字。
你能说出上面引用的意思,localhost和localnets有什么区别吗? 谢谢
我正在配置 BIND9 以从Let's Encrypt获取通配符证书。当我尝试根据此处的说明生成 TSIG 密钥时,出现以下错误:
# dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST keyname.
dnssec-keygen: fatal: unknown algorithm HMAC-SHA512
Run Code Online (Sandbox Code Playgroud)
然后我读的帮助和文档有关dnssec-keygen
,不存在所谓的算法HMAC-SHA512确实:
# dnssec-keygen -h
Usage:
dnssec-keygen [options] name
Version: 9.14.2
name: owner of the key
Options:
-K <directory>: write keys into directory
-a <algorithm>:
RSASHA1 | NSEC3RSASHA1 |
RSASHA256 | RSASHA512 |
ECDSAP256SHA256 | ECDSAP384SHA384 |
ED25519 | ED448 | DH
-3: use NSEC3-capable algorithm
-b <key size in bits>: …
Run Code Online (Sandbox Code Playgroud) 我在看 bind9-host
shirish@debian:"04 Jan 2020 15:48:02" ~$ aptitude show bind9-host=1:9.11.5.P4+dfsg-5.1+b1
Package: bind9-host
Version: 1:9.11.5.P4+dfsg-5.1+b1
State: installed
Automatically installed: no
Priority: standard
Section: net
Maintainer: Debian DNS Team <team+dns@tracker.debian.org>
Architecture: amd64
Uncompressed Size: 369 k
Compressed Size: 271 k
Filename: pool/main/b/bind9/bind9-host_9.11.5.P4+dfsg-5.1+b1_amd64.deb
Checksum-FileSize: 271156
MD5Sum: 8cd326a23a51acdb773df5b7dce76060
SHA256: 977287c7212e9d3e671b85fdd04734b4908fe86d4b3581e47fb86d8b27cfdb3b
Archive: testing
Depends: libbind9-161 (= 1:9.11.5.P4+dfsg-5.1+b1), libdns1104 (= 1:9.11.5.P4+dfsg-5.1+b1), libisc1100 (= 1:9.11.5.P4+dfsg-5.1+b1), libisccfg163 (= 1:9.11.5.P4+dfsg-5.1+b1), liblwres161 (= 1:9.11.5.P4+dfsg-5.1+b1), libc6 (>= 2.14), libcap2 (>= 1:2.10), libcom-err2 (>= 1.43.9), libfstrm0 (>= 0.2.0), libgeoip1, libgssapi-krb5-2 (>= 1.6.dfsg.2), …
Run Code Online (Sandbox Code Playgroud) 我正在 raspian 上使用 bind9 设置私有 DNS 服务器。我的反向区域文件收到此错误:
root@dns:/etc/bind# named-checkzone dthacker.org db.dthacker.org.inv
zone dthacker.org/IN: NS 'dns.dthacker.org' has no address records (A or AAAA)
Run Code Online (Sandbox Code Playgroud)
这是我的反向区域文件:
$TTL 604800
@ IN SOA dns.dthacker.org. root.dthacker.org. (
2015052003 ; Serial (NOTE: Needs to increment every time you restart BIND)
3600 ; Refresh [1h]
600 ; Retry [10m]
86400 ; Expire [1d]
600 ; Negative Cache TTL [1h]
)
IN NS dns.dthacker.org.
30.1 IN PTR dns.dthacker.org.
61.1 IN PTR vhost.dthacker.org.
Run Code Online (Sandbox Code Playgroud)
转发文件正在顺利通过。我看不出这个错误。
我现在正在为 DNS 使用 NSCD 服务。但有时我会看到 NSCD 自行消亡并且 DNS 解析没有正确进行。请告诉我如何避免 DNS 的 NSCD。如果我们绕过 NSCD 有什么缺点?