インターネットサービスを運営するうえで欠かせないDNSサーバー。今回は、自宅に設置したサーバーで、Rocky Linux 8.8を使ってDNSサーバーを構築する手順を詳しく解説します。グローバルIPアドレスを活用し、契約した独自ドメインを用いることで、自宅サーバーから外部へ安定した名前解決サービスを提供できます。初心者でも実践しやすいよう、各ステップを丁寧に説明しています。
DNS(Domain Name System)は、ドメイン名とIPアドレスを紐づける役割を果たします。例えば「example.com」を「192.168.1.100」に変換することで、ブラウザでのアクセスを可能にします。自宅でDNSサーバーを構築することで、独自のネットワーク内サービスや、パブリックなWebサービスの提供が可能になります。
DNSサーバー構築を始める前に、以下を準備しましょう。
まず、サーバーの基本設定を行います。
sudo dnf update -y
sudo dnf install bind bind-utils -y
192.168.1.100
)nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
nmcli con mod eth0 ipv4.gateway 192.168.1.1
nmcli con mod eth0 ipv4.dns 8.8.8.8
nmcli con mod eth0 ipv4.method manual
nmcli con up eth0
BIND(Berkeley Internet Name Domain)を設定します。
sudo vi /etc/named.conf
以下の内容を修正します:
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; # ローカルIPを指定
allow-query { any; }; # 外部からの問い合わせを許可
sudo vi /var/named/example.com.zone
記入例:
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2024021601 ; シリアル番号
3600 ; リフレッシュ
1800 ; リトライ
604800 ; 有効期限
86400 ) ; 最小TTL
;
@ IN NS ns1.example.com.
@ IN A 123.45.67.89 ; グローバルIP
ns1 IN A 123.45.67.89
www IN A 123.45.67.89
sudo chown named:named /var/named/example.com.zone
sudo systemctl enable named
sudo systemctl start named
DNSサーバーを外部に公開するために、ルーターの管理画面にアクセスし、以下を設定します:
以下のコマンドでDNS動作を確認します:
bashコピーする編集するdig @192.168.1.100 example.com
dig @192.168.1.100 www.example.com
正しくIPアドレスが返ってくれば成功です。
sudo firewall-cmd --add-service=dns --permanent
sudo firewall-cmd --reload
DNSには複数のレコードタイプがあります:
まとめ
本記事では、Rocky Linux 8.8を使って自宅にDNSサーバーを構築する手順を解説しました。グローバルIPアドレスと契約したドメインを活用することで、外部向けのサービス提供が可能になります。セキュリティを意識した設定を忘れずに行い、安定した運用を目指しましょう。