我知道 A,AAAA 记录将被递归解析器和存根解析器缓存。当一个人搜索一个子域/域时,如果搜索的是 CNAME 记录,Resolver 会获取相应的域名(因为 CNAME 记录值也将是 domain )并将其传递给客户端。现在解析器是否重复整个搜索以查找域名(根、TLD 和权威名称服务器)的 IP 地址,或者既然它已经从权威名称服务器获得响应,它会直接去它吗?在这种情况下,我们可以说权威名称服务器将被缓存,直到我们没有在我们的 DNS 记录中提及任何 NS 记录的 TTL 时间?
我已经BIND
在我的 centOS 8 服务器上安装了recursion yes;
配置服务。我注意到每小时从我的服务器发送非常大的流量(约 8 GB),我无法检测到此流量的来源。然后我更改了命名配置并禁用了递归:recursion no;
禁用递归并测量流量后,我可以看到发送流量已急剧下降到 200 MB 以下。现在我的问题是,这种递归如何导致如此大的发送流量?!
我不确定当它的缓存包含部分答案时递归解析的行为如何。具体来说,假设我首先运行了这个查找请求:
dig example.com @8.8.8.8
根据我的理解,在解析过程之后,以下记录将缓存在这个公共解析器(8.8.8.8)
example.com. 17834 IN NS a.iana-servers.net.
example.com. 17834 IN NS b.iana-servers.net.
example.com. 18662 IN A 93.184.216.34
其次,假设我运行了另一个查找请求如下(在上述记录的 TTL 到期之前):
dig sub.example.com @8.8.8.8
现在,由于解析顶点域所需的 NS 记录已经在缓存中,递归解析器是否使用此缓存信息直接查询这些 NS 记录之一以获取 (sub.example.com) 的 A 记录?如果是,它如何知道如何分解请求?
我知道解析器如何从层次结构的顶部开始,即如果它在缓存中没有答案,则为根 (.)。但是,我发现令人困惑的是,如果缓存有部分答案(在本例中是顶点域的 NS 记录),解析器如何使用这些缓存的答案?
- 它会分解查询(sub.example.com)并识别顶点域(example.com),然后在缓存中找到(example.com)的NS记录的命中吗?
- 或者,它会从根目录开始递归解析 (sub.example.com) 并完全忽略 (example.com) 的任何先前缓存吗?
我不小心在 ubuntu AWS 服务器上运行了 chmod -R 600 / 。试图阻止它,但没有发生。有没有一种方法可以至少备份服务器中存在的数据。谢谢。
如何保护我的 DNS 服务器 (dnsmasq)?根据一个测试站点,我的 DNS 服务器可以被利用
基本上我想做一个 'ls -l' 递归地显示那些名为 web 的目录。我将如何做到这一点?
我的 DNS 有一个非常奇怪的问题。我的域名 ( strugee.net
) 无法从某些网络解析,但可以从其他网络解析。
例如,在我的家庭网络(服务器所在的同一网络)上:
% dig strugee.net
; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net. IN A
;; ANSWER SECTION:
strugee.net. 1800 IN A 216.160.72.225
;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE rcvd: 56
但是,如果我登录到 Digital Ocean 上的服务器,则域无法解析:
% dig strugee.net
; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net. IN A
;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE rcvd: 40
但是,直接访问权威域名服务器就可以了:
% dig @dns1.registrar-servers.com strugee.net
; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net. IN A
;; ANSWER SECTION:
strugee.net. 1800 IN A 216.160.72.225
;; AUTHORITY SECTION:
strugee.net. 1800 IN NS dns3.registrar-servers.com.
strugee.net. 1800 IN NS dns4.registrar-servers.com.
strugee.net. 1800 IN NS dns2.registrar-servers.com.
strugee.net. 1800 IN NS dns1.registrar-servers.com.
strugee.net. 1800 IN NS dns5.registrar-servers.com.
;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE rcvd: 172
很明显,某个大型网络存在问题,无法解析我的域,但我似乎无法弄清楚在哪里。我浏览了手册dig
页以寻找可能有帮助的选项,但没有发现任何特别有用的东西。
我在 Namecheap 上既是域名注册商,也是 DNS 托管商。我打开了 DNSSEC 选项。我最近没有对我的 DNS 设置进行任何更改。
如何调试此问题并找到有问题的名称服务器?
这里有人能够启动/停止/重新加载/...在 systemctl 上使用通配符或类似方法指定的单元列表吗?
我尝试做类似的事情:systemctl restart openstack-nova-*.services
或systemctl restart openstack-nova-?.services
但这是一条死胡同,我在 systemctl 的手册中没有发现任何有用的东西。
我可以使用 for 循环,但在此之前我必须systemctl -t service --failed
为列出的单位创建一个然后 grep ......有点无聊不是吗?
所以,如果有人知道是否有可能做这样的事情,我会很高兴听到它。
如果不是,我想我会将这个想法推送到 systemctl 开发人员列表中,或者如果我有时间的话,可能会做补丁^^
我想在我位于 example.com 的自托管服务器上维护一个 DNS 隧道。我还有一个 DNS 服务器,它为 example.com 提供一切服务。我目前在域 tunnel.example.com 上使用dns2tcp进行 DNS 隧道传输。 NSD3用于为权威区域提供服务,因为它既简单又安全。
但是,我只有一个公共 IPv4 地址,这意味着 NSD 和 dns2tcp 不能监听同一个 IP/端口。
所以我目前正在使用PowerDNS Recursor使用这样的forward-zones
参数:
forward-zones-recurse=tunnel.example.com=1.2.3.4:5354
forward-zones=example.com=1.2.3.4:5353
这使得对权威区域的请求能够被请求到正确的服务器,以及隧道请求。NSD 监听 5353 端口,dns2tcp 监听 5354 端口。
然而,这很糟糕,因为递归需要打开。它实际上回答了任何递归查询。
你有什么解决办法吗?我真的更喜欢不涉及设置 BIND 的解决方案,但如果您有心情说服我,请毫不犹豫地这样做;)
编辑:我将标题更改为更清楚。