AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 41937
Accepted
Dave Forgac
Dave Forgac
Asked: 2009-07-17 17:30:38 +0800 CST2009-07-17 17:30:38 +0800 CST 2009-07-17 17:30:38 +0800 CST

配置仅在短时间内缓存的本地 DNS 解析器

  • 772

我正在开发一个应用程序,该应用程序将用于验证新域在设置托管时是否正确配置。这部分检查 SPF、DomainKey、DKIM 记录等的有效性。

我目前对大多数这些记录使用一小时的默认 TTL。有时会在其中一个记录中发现错误,因此需要对其进行更新。目前,如果我刚刚测试了域,我必须等待系统解析器的缓存记录过期,然后才能验证我的应用程序是否正确。(是的,我可以手动检查,但我编写了应用程序,所以我不必这样做)。

我想在系统上设置一个 DNS 服务器作为一个普通的缓存解析器,除了它会在最长的设定时间内(例如五分钟)过期记录,或者根本不缓存。并非所有域都在我的普通名称服务器上托管 DNS,因此该系统必须查询权威名称服务器的域,而不是使用上游解析器(只会使用它们的缓存记录)。

这台机器目前没有运行任何类型的 DNS,所以我可以安装 BIND 或 djbdns(如果有好的建议,也可以安装其他东西。

domain-name-system bind djbdns
  • 4 4 个回答
  • 21487 Views

4 个回答

  • Voted
  1. Best Answer
    Dave Forgac
    2009-07-18T19:10:43+08:002009-07-18T19:10:43+08:00

    谢谢大家的意见和建议。他们指导我采用以下解决方案:

    • 安装bind9。
    • 编辑/etc/bind/named.conf.options使转发器为空白(因此服务器不使用另一个缓存服务器的缓存记录)。
    • 将max-cache-ttl和max-ncache-ttl选项设置为 300 秒。(参考)
    • 更改listen-on-v6 { any; };为listen-on-v6 { localhost; };使服务器不被其他系统使用。(参考)
    • 编辑系统/etc/resolv.conf以仅包含nameserver 127.0.0.1,以便服务器上的应用程序使用新的本地服务器。

    我重新启动了 bind9 并验证它正在工作:

    dev:~# dig serverfault.com
    
    ; <<>> DiG 9.5.1-P2 <<>> serverfault.com
    ;; global options:  printcmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63591
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0
    
    ;; QUESTION SECTION:
    ;serverfault.com.               IN      A
    
    ;; ANSWER SECTION:
    serverfault.com.        300     IN      A       69.59.196.212
    
    ;; AUTHORITY SECTION:
    serverfault.com.        300     IN      NS      ns21.domaincontrol.com.
    serverfault.com.        300     IN      NS      ns22.domaincontrol.com.
    
    ;; Query time: 190 msec
    ;; SERVER: 127.0.0.1#53(127.0.0.1)
    ;; WHEN: Sat Jul 18 03:06:24 2009
    ;; MSG SIZE  rcvd: 101
    

    即使 serverfault.com 的记录发布的 TTL 为 3600,TTL 仍显示为 300。

    • 11
  2. Robert Eachus
    2021-04-02T17:18:52+08:002021-04-02T17:18:52+08:00

    只需拨打“挖掘”电话就可以使用 +trace 很多...

    Dig 将像 DNS 服务器一样进行完全递归,无需兑现,无需提前了解 NS 服务器,如果存在委托问题,您也会发现。

    如果它是一个 Windows 程序,您可以从这里下载 Bind https://www.isc.org/download/并且它包含一个 dig.exe,Linux 通常有一个 BIND 工具或可能包含 dig 的命名工具包。

    安装一个完整的 DNS 服务器只是为了进行查找......太疯狂了!

    $ dig www.google.com +trace +nodnssec -4
    
    ; <<>> DiG 9.11.9 <<>> www.google.com +trace +nodnssec -4
    ;; global options: +cmd
    ...
    
    ...
    
    google.com.             172800  IN      NS      ns4.google.com.
    ;; Received 291 bytes from 192.48.79.30#53(j.gtld-servers.net) in 22 ms
    
    www.google.com.         300     IN      A       172.217.10.228
    ;; Received 59 bytes from 216.239.32.10#53(ns1.google.com) in 30 ms
    
    • 1
  3. chris
    2009-07-17T17:58:52+08:002009-07-17T17:58:52+08:00

    为什么不只使用 dnscache(来自 djbdns 套件)并每 5 分钟杀死一次呢?

    对于那些没有使用过 djbdns 尤其是 dnscache 的人来说——它是一个递归解析器,根本不会在磁盘上保留任何东西。此外,djb 制作了一套工具来自动监控程序,如果它死了,监控程序将自动(并立即)重新启动它。

    每 5 分钟杀死一次,鲍勃就是你的叔叔……

    • 0
  4. Cedric Knight
    2015-08-11T03:15:42+08:002015-08-11T03:15:42+08:00

    正如您所说,您可以在 BIND 选项子句或仅适用于您的开发服务器的视图中使用max-cache-ttland限制最长的 TTL。max-ncache-ttl

    但是,这会影响所有查找的 TTL,因此会增加生产服务器上的网络/负载并降低 DNS 弹性。

    对于 BIND 9.3 及更高版本,如果您只想清除一个域的缓存,您可以这样做

    rndc flushname <domain>
    

    这会刷新确切域的所有记录,而不是子域。查看 的输出rndc。

    当然,如果你想以任何理由延长TTL,那就是另一个问题了。

    • 0

相关问题

  • Linux 绑定服务器为 DHCP Windows 客户端提供地址,但不为 DHCP Linux 客户端提供地址

  • 如何使用 Windows Server 解析 http 域名

  • 动态更新 /etc/resolv.conf 中列出的解析器

  • 内部名称解析

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve