介绍
域名服务器系统(DNS)是数据库的全球层次结构,致力于寻找www.digitalocean.com
等主机名称并将其变成一个或多个IP地址的简单但必不可少的任务。 每当发送电子邮件或通过其名称开始连接到主机时,使用DNS系统。
这样一个必不可少的和基本的互联网基础设施的组成部分得到大量的用途. 一个繁忙的系统,每秒做数百个名称搜索或更多是不寻常的. 如果服务运行在你的服务器上做很多工作在幕后,那么它很可能是安全性和性能将受益于验证和缓存在自己的系统内你的服务执行的名称搜索进行其操作。
在本教程中,您将学习如何设置一个 FreeBSD 服务器,以便在整个系统的缓存中记住所有 DNS 搜索。
<$>[注] 注: 截至 2022 年 7 月 1 日,DigitalOcean 不再支持通过控制面板或 API 创建新的 FreeBSD Droplets。
前提条件
为了遵循本教程,您将需要:
一个 FreeBSD 10.1 服务器
步骤 1 - 允许无约束
FreeBSD 10.1 包括验证缓存解析器 Unbound (版本 1.4.22) 作为基础系统的一部分; FreeBSD 10.2 包括版本 1.5.3。
一旦您通过 SSH 登录到您的服务器,启用 FreeBSD 包含的解析器就像发出以下命令一样简单:
1sudo sysrc local_unbound_enable=YES
您的服务器现在已配置为在下一次系统重新启动时启动 Unbound。
步骤2 - 开始不受约束
您可以立即启动解决方案,而无需执行完整的系统重新启动。
开始解决问题:
1sudo service local_unbound start
如果 Unbound 成功启动,您应该看到类似于以下的输出:
1[label Output]
2Performing initial setup.
3Extracting forwarders from /etc/resolv.conf.
4/var/unbound/forward.conf created
5/var/unbound/lan-zones.conf created
6/var/unbound/unbound.conf created
7/etc/resolvconf.conf created
8original /etc/resolv.conf saved as /etc/resolv.conf.20150812.184225
9Starting local_unbound.
您现在正在运行 Unbound 验证缓存名称解决方案,但目前运行的所有软件都不会注意到并接收更改。
步骤 3 — 通过服务器恢复来保存此设置
像恢复备份图像或使用快照图像作为新服务器的基础等操作通常会破坏我们迄今为止所做的配置,这是由于 FreeBSD 的 OpenStack 驱动程序中的一个小错误。
从 BSD-CloudInit 的官方存储库下载补丁(FreeBSD OpenStack 驱动程序):
1fetch https://github.com/pellaeon/bsd-cloudinit/commit/a7ee246c23.diff
将补丁应用于正确的文件:
1sudo patch -N -F3 /usr/local/bsd-cloudinit/cloudbaseinit/osutils/freebsd.py < a7ee246c23.diff
您应该看到结尾的输出,表示成功应用了补丁:
1[label Output]
2. . .
3Patching file /usr/local/bsd-cloudinit/cloudbaseinit/osutils/freebsd.py using Plan A...
4Hunk #1 succeeded at 4 with fuzz 2 (offset 1 line).
5Hunk #2 succeeded at 83 with fuzz 3 (offset 4 lines).
6done
您不再需要修补文件,您可以删除它:
1rm a7ee246c23.diff
您的系统现在已配置为通过系统备份和恢复使用Unbound,或者在被克隆到一个全新的服务器后。
步骤 4 – 重启受影响的服务
确保所有软件都使用新解析器的最简单的方法是完全重新启动服务器。
运行软件将使用旧解析器或新解析器,而不是故障;任何能够接收过渡的软件将在此期间优雅地做到这一点。
当你准备好了,重新启动你的服务器:
1sudo shutdown -r now
这就是它所拥有的全部!
结论
在本教程中,您了解如何在您的系统上缓存主机名和域名搜索,以及为什么您可能想这样做。