FreeBSD 10.1または10.2で非バインドキャッシングDNSリゾルバーを設定する方法

前書き

ドメインネームサーバー(DNS)のシステムは、「+ www.digitalocean.com +」などのホスト名を検索し、それらを1つ以上のIPアドレスに変換するという単純だが重要なタスク専用のデータベースのグローバル階層です。 電子メールが送信されるか、ホストへの接続がその名前で開始されるたびに、DNSシステムが使用されます。 DigitalOceanコミュニティから入手できる優れたhttps://www.digitalocean.com/community/tutorials/an-introduction-to-dns-terminology-components-and-concepts[DNSシステムの紹介]があります。

このようなインターネットインフラストラクチャの不可欠で基本的なコンポーネントは、多くの用途に使用されます。 忙しいシステムが1秒あたり何百もの名前検索を行うことは珍しくありません。 サーバーで実行されているサービスが背後ですべての作業を実行する場合、セキュリティとパフォーマンスは、サービスがその操作を実行するために実行する名前ルックアップを独自のシステム内で検証およびキャッシュすることで恩恵を受ける可能性があります。

このチュートリアルでは、システム全体のキャッシュ内のすべてのDNSルックアップを記憶するようにFreeBSDサーバーをセットアップする方法を学びます。 情報はこのキャッシュから自動的に期限切れになり、検索された各ドメインの個別のポリシーが再確認されます。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • 1つのFreeBSD 10.1ドロップレット

ステップ1-非バインドの有効化

FreeBSD 10.1には、ベースシステムの一部として検証リゾルバーUnbound(バージョン1.4.22)が含まれています。 FreeBSD 10.2にはバージョン1.5.3が含まれています。 どちらも安全であり、実稼働で使用する準備ができていると見なされます。

SSHを介してサーバーにログインすると、FreeBSDに含まれるリゾルバーを有効にするには、次のコマンドを発行するだけです。

sudo sysrc local_unbound_enable=YES

これで、次回のシステムの再起動時にアンバウンドを開始するようにドロップレットが設定されました。

ステップ2-非バインドの開始

システムを完全に再起動することなく、すぐにリゾルバを起動できます。

リゾルバーを開始するには:

sudo service local_unbound start

Unboundが正常に起動すると、次のような出力が表示されます。

出力

Performing initial setup.
Extracting forwarders from /etc/resolv.conf.
/var/unbound/forward.conf created
/var/unbound/lan-zones.conf created
/var/unbound/unbound.conf created
/etc/resolvconf.conf created
original /etc/resolv.conf saved as /etc/resolv.conf.20150812.184225
Starting local_unbound.

これで、Unbound検証キャッシュ名リゾルバーを実行していますが、現在実行中のすべてのソフトウェアが変更に気づき、それを受け取ることが保証されているわけではありません。

手順3-液滴の復元によるこの設定の保持

バックアップイメージの復元や、新しいドロップレットのベースとしてスナップショットイメージを使用するなどのアクションは、通常、これまでに行った設定を無効にします。 これは、FreeBSD用のOpenStackドライバーの小さなバグによるものです。 幸いなことに、このバグは次のリリースで修正されています。 DigitalOceanのバックアップおよびスナップショット機能でUnboundが適切に動作するように、この特定のパッチを現在のリリースに個別に適用します。

BSD-CloudInitの公式リポジトリ(FreeBSD OpenStackドライバー)からパッチをダウンロードします。

fetch https://github.com/pellaeon/bsd-cloudinit/commit/a7ee246c23.diff

適切なファイルにパッチを適用します。

sudo patch -N -F3 /usr/local/bsd-cloudinit/cloudbaseinit/osutils/freebsd.py < a7ee246c23.diff

次で終わる出力が表示され、パッチが正常に適用されたことを示します。

出力

. . .
Patching file /usr/local/bsd-cloudinit/cloudbaseinit/osutils/freebsd.py using Plan A...
Hunk #1 succeeded at 4 with fuzz 2 (offset 1 line).
Hunk #2 succeeded at 83 with fuzz 3 (offset 4 lines).
done

パッチファイルは不要になり、削除できます。

rm a7ee246c23.diff

これで、システムは、システムのバックアップと復元を介して、またはまったく新しいサーバーに複製された後、Unboundを使用するように構成されました。

ステップ4-影響を受けるサービスの再起動

すべてのソフトウェアが新しいリゾルバを使用していることを確認する最も簡単な方法は、Dropletを完全に再起動することです。

ドロップレットが提供するサービスへの影響が最も小さくなるまで、これを遅らせることができます。 実行中のソフトウェアは、誤動作ではなく、古いリゾルバーまたは新しいリゾルバーのいずれかを使用します。その間に移行を開始できるソフトウェアは、正常に実行されます。 また、一時的に並んで使用される可能性があることによる悪影響はありません。

準備ができたら、ドロップレットを再起動します。

sudo shutdown -r now

それだけです!

結論

このチュートリアルでは、ホスト名とドメイン名のルックアップをシステムにキャッシュする方法と、その理由を学習しました。 FreeBSDのキャッシングリゾルバの詳細については、https://www.unbound.net/ [Unboundプロジェクトのホームページ]をご覧ください。