個人DNSサーバーをセットアップすることで、DNSについて学び、ローカルネットワークを制御する優れた方法が得られます。Raspberry Piは、その手頃な価格とアクセシビリティにより、このプロジェクトを驚くほど簡単にします。このガイドでは、このプロセスを順を追って説明し、ホームネットワークのDNSレコードを管理できるようにします。
目次
Raspberry Piへの静的IPアドレスの設定
DNSサーバーを構成する前に、Raspberry Piに静的IPアドレスを割り当てることが重要です。これにより、IPアドレスの変更によってDNS機能が中断されるのを防ぎます。Raspberry Pi Configuration Toolを使用します。
- 構成ツールのアクセス:Raspberry Pi(またはSSH経由)でターミナルを開き、以下を入力します。
- ネットワークオプション:「5 Interfacing Options」→「P5 Network Configuration」に移動します。
- 静的IPの設定:「Manual」構成を選択します。目的の静的IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバーアドレスを入力します(一時的にルータのDNSサーバーを使用します)。IPアドレスがネットワークの範囲内にあること、他のデバイスと競合しないことを確認してください。これらの設定を書き留めておきます。
- 保存と再起動:変更を保存し、以下を使用してRaspberry Piを再起動します。
- 検証:再起動後、以下を使用して静的IPを確認します。
sudo raspi-config
sudo reboot
ip addr show
DNSサーバー(Bind9)のセットアップ
信頼性が高く広く使用されているDNSサーバーであるBind9を使用します。
- パッケージの更新:Raspberry Piのパッケージリストを更新します。
- Bind9のインストール:Bind9とそのユーティリティをインストールします。
- Bind9の構成:主要な構成ファイルは`/etc/bind/named.conf.local`にあります。ドメインのエントリを追加します。例えば、`example.local`のレコードを提供するには、以下を追加します。
- データベースファイルの作成:以下のように`/etc/bind/db.example.local`を作成します(プレースホルダーを自分の情報に置き換えます)。
- Bind9の再起動:変更を適用するためにBind9を再起動します。
- ファイアウォール(オプション):ファイアウォール(例:`ufw`)を使用している場合は、DNSトラフィック(ポート53)を許可します。
sudo apt update
sudo apt install bind9 bind9utils
zone "example.local" {
type master;
file "/etc/bind/db.example.local";
};
$TTL 604800
@ IN SOA raspberrypi.example.local. admin.example.local. (
2023102702 ; Serial (変更するたびにこの番号を増やしてください)
86400 ; Refresh
7200 ; Retry
3600000 ; Expire
604800 ; Negative Cache TTL
)
@ IN NS raspberrypi.example.local.
raspberrypi IN A 192.168.1.100
www IN A 192.168.1.100
sudo systemctl restart bind9
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
DNSサーバーのテスト
- クライアントの設定:ネットワーク内のデバイスで、そのDNSサーバー設定をRaspberry Piの静的IPアドレスに変更します。
- 解決のテスト:`db.example.local`で定義されたホスト名(例:`raspberrypi.example.local`または`www.example.local`)にpingを送信するか、ブラウズします。正常に解決された場合は、DNSサーバーが動作していることを確認できます。そうでない場合は、構成ファイルを再確認してください。
プレースホルダーの値を実際のIPアドレスとドメイン名に置き換えてください。これは基本的な設定です。高度な構成については、Bind9のドキュメントを参照してください。変更を加える前に、常に構成ファイルをバックアップしてください。