開発運用

Ubuntu DNS サーバー設定

Ubuntu サーバーにおける DNS(ドメインネームシステム)のインストールと設定について、完全かつ包括的な記事を日本語でご紹介します。DNS は、インターネット上でホスト名(例えば「www.example.com」)を IP アドレス(例えば「192.168.1.1」)に変換する重要なシステムです。Ubuntu サーバーに DNS サービスを設定することで、内部ネットワークやインターネットアクセスの効率を高めることができます。

1. DNS サーバーの役割と種類

DNS サーバーは、ドメイン名を IP アドレスに変換するだけでなく、さまざまな管理機能も提供します。主に以下の種類の DNS サーバーがあります:

  • 権威 DNS サーバー(Authoritative DNS Server):特定のドメイン名に対する最終的な解答を提供します。例えば、「example.com」のドメイン名の情報を管理するサーバーです。
  • リゾルバ DNS サーバー(Resolver DNS Server):クライアントからの DNS クエリを他の DNS サーバーに転送して応答を返します。
  • キャッシュ DNS サーバー(Caching DNS Server):リゾルバ DNS サーバーとして機能し、以前に解決されたドメイン名の情報を一時的に保持します。

2. Ubuntu での DNS サーバーのインストール準備

DNS サーバーとして使うソフトウェアの選択肢は複数ありますが、ここでは最も広く使われている BIND9 を例に挙げてインストール方法を説明します。

2.1 必要なパッケージのインストール

まずは、Ubuntu のパッケージリストを更新し、BIND9 と必要なパッケージをインストールします。以下のコマンドを使用します。

bash
sudo apt update sudo apt install bind9 bind9utils bind9-doc dnsutils

これにより、BIND9 サーバーのインストールが完了します。

2.2 BIND9 の設定ファイルの確認

BIND9 の設定ファイルは /etc/bind/named.conf にあります。これには、DNS ゾーンファイルのパスや、サーバーの設定情報が記述されています。

設定を変更する際は、named.conf.localnamed.conf.options など、複数の設定ファイルに分かれていることを理解しておきましょう。

3. DNS ゾーンの設定

DNS ゾーンは、特定のドメインに関連する DNS 情報を管理する場所です。例えば、example.com のゾーンには、www.example.commail.example.com のようなホスト名に対する IP アドレスが含まれます。

3.1 ゾーンファイルの作成

/etc/bind/ ディレクトリに移動し、ゾーンファイルを作成します。ここでは example.com のゾーンファイルを作成する例を示します。

bash
sudo nano /etc/bind/db.example.com

以下の内容をゾーンファイルに追加します:

text
$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.com. @ IN A 192.168.1.1 www IN A 192.168.1.2 mail IN A 192.168.1.3

この設定では、example.com ドメインに対する DNS レコードを設定しています。NS レコードで DNS サーバーを指定し、A レコードで IP アドレスを割り当てています。

3.2 ゾーン設定ファイルの登録

次に、BIND9 の設定ファイルにこのゾーンファイルを登録します。/etc/bind/named.conf.local を編集し、以下の内容を追加します。

bash
sudo nano /etc/bind/named.conf.local
text
zone "example.com" { type master; file "/etc/bind/db.example.com"; };

これで、example.com ドメインに関するゾーンが BIND9 に設定されました。

4. BIND9 サーバーの再起動

設定が完了したら、BIND9 サーバーを再起動して変更を反映させます。再起動は以下のコマンドで行います。

bash
sudo systemctl restart bind9

5. ファイアウォールの設定

DNS サーバーが適切に動作するためには、ファイアウォールの設定を確認して、DNS のポート(デフォルトではポート 53)が開放されていることを確認します。以下のコマンドでファイアウォールの設定を確認し、ポートを開放します。

bash
sudo ufw allow 53

6. DNS サーバーの動作確認

DNS サーバーが正しく設定されているかを確認するために、dig コマンドを使用してテストします。ローカルで設定した example.com ドメインが解決されるか確認します。

bash
dig @localhost example.com

正常に応答が返ってくる場合、DNS サーバーが正しく設定されていることになります。

7. クライアント側の設定

DNS サーバーを設定した後、クライアント(例えば他のコンピュータやサーバー)に対して、新しい DNS サーバーを使用するよう設定します。クライアントのネットワーク設定で、DNS サーバーとして自分の Ubuntu サーバーの IP アドレスを指定します。

例えば、Ubuntu のクライアントでは以下のコマンドで設定を変更できます。

bash
sudo nano /etc/netplan/00-installer-config.yaml

その後、nameservers セクションを追加し、Ubuntu サーバーの IP アドレスを指定します。

text
network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true nameservers: addresses: - 192.168.1.1

設定を適用するために以下のコマンドを実行します。

bash
sudo netplan apply

これで、クライアントが自分の Ubuntu サーバーを DNS サーバーとして使用するようになります。

8. まとめ

このガイドでは、Ubuntu サーバーにおける DNS サーバーのインストールから設定までの手順を説明しました。BIND9 を使用して DNS サーバーを構築することで、ネットワーク内でのドメイン名解決を効率的に管理できます。最終的に、サーバーの再起動、設定ファイルの編集、ファイアウォールの確認などの手順を通じて、安定した DNS サービスを提供することができます。

この設定を実施することで、インターネット接続の効率化やネットワークのセキュリティ強化に繋がるでしょう。

Back to top button