ウェブサイト検索

CentOS/RHEL 8/7 で dnsmasq を使用して DNS/DHCP サーバーをセットアップする方法


動的ホスト構成プロトコル (DHCP) サーバーは、ネットワーク上の各デバイスに IP アドレスとその他のネットワーク構成パラメータを動的に割り当てます。 LAN 上の DNS フォワーダーは、非ローカル ドメイン名の DNS クエリを上流の DNS サーバー (ネットワークの外部) に転送します。 DNS キャッシュ サーバーはクライアントからの再帰的なリクエストに応答するため、DNS クエリをより速く解決できるため、以前にアクセスしたサイトへの DNS ルックアップ速度が向上します。

dnsmasq は、軽量で構成が簡単な、小規模ネットワーク向けの DNS フォワーダー、DHCP サーバー ソフトウェア、ルーター アドバタイズメント サブシステムです。 Dnsmasq は、Android だけでなく Linux、*BSD、Mac OS X もサポートしています。

ネットワークにローカル DNS サーバーを提供するDNS サブシステムを備えており、すべてのクエリ タイプを上流の再帰 DNS サーバーに転送し、一般的なレコード タイプをキャッシュします。 DHCP サブシステムは、DHCPv4、DHCPv6、BOOTP、PXE、および TFTP サーバーをサポートします。また、ルーター アドバタイズメント サブシステムは、IPv6 ホストの基本的な自動構成をサポートします。

この記事では、CentOS/RHEL 8/7dnsmasq を使用して DNS/DHCP サーバーをインストールおよびセットアップする方法について説明します。 > 配布。

CentOS および RHEL Linux への dnsmasq のインストール

1. dnsmasq パッケージはデフォルトのリポジトリで入手でき、示されているように YUM パッケージ マネージャーを使用して簡単にインストールできます。

yum install dnsmasq

2. dnsmasq パッケージのインストールが完了したら、とりあえず dnsmasq サービスを開始し、システム起動時に自動的に開始されるようにする必要があります。さらに、次の systemctl コマンドを使用してステータスをチェックし、稼働していることを確認します。

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

CentOS および RHEL Linux での dnsmasq サーバーの構成

3. dnsmasq サーバーは、/etc/dnsmasq.conf ファイル (十分なコメントと説明が記載されたオプションが含まれています) を介して設定できます。 -定義された設定ファイルは、/etc/dnsmasq.d ディレクトリに追加することもできます。

DNS はデフォルトで有効になっているため、変更を加える前に必ず /etc/dnsmasq.conf ファイルのバックアップを作成してください。

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. 次に、お気に入りのテキストベースのエディタを使用して /etc/dnsmasq.conf ファイルを開き、次の推奨構成設定を行います。

vi /etc/dnsmasq.conf 

listen-address オプションは、dnsmasq がリッスンする IP アドレスを設定するために使用されます。 CentOS/RHEL サーバーを使用して LAN 上の DHCP および DNS リクエストをリッスンするには、listen-address オプションを LAN IP アドレスに指定します (127.0.0.1 を忘れずに含めてください)。サーバー IP は静的である必要があることに注意してください。

listen-address=::1,127.0.0.1,192.168.56.10

上記に関連して、インターフェイス オプションを使用して、dnsmasq がリッスンするインターフェイスを制限できます (複数のインターフェイスに対して行を追加します)。

interface=eth0

5. ドメイン (次のように設定できます) を hosts ファイル内の単純な名前に自動的に追加したい場合は、expand- hosts オプション。

expand-hosts

6. dnsmasq のドメインを設定します。つまり、DHCP クライアントは、設定されたドメインが一致する限り完全修飾ドメイン名を持ち、「ドメイン」を設定します。 」すべてのクライアントの DHCP オプション。

domain=tecmint.lan

7. 次に、次のように server オプション (server=dns_server_ip の形式) を使用して、非ローカル ドメインの上流 DNS サーバーも定義します。 。

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. 次に、図に示すように、アドレス オプションを使用して、ローカル ドメインを IP アドレスに強制できます。

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. ファイルを保存し、次のように構成ファイルの構文にエラーがないか確認します。

dnsmasq --test

/etc/resolv.conf ファイルを使用した dnsmasq の構成

10. この手順では、/etc/resolv.conf ファイルにローカルホスト アドレスを唯一のネームサーバーとして追加することで、すべてのクエリが dnsmasq に送信されるようにする必要があります。

vi /etc/resolv.conf

11. /etc/resolv.conf ファイルはローカル デーモン、特に NetworkManager によって維持されるため、ユーザーが行った変更はすべて上書きされます。これを防ぐには、図に示すように、chattr コマンドを使用して不変のファイル属性を設定し(ファイルへの書き込みアクセスを無効にする)、ファイルを書き込み保護します。

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

DNS ホストと名前の定義

12. Dnsmasq は、/etc/hosts ファイルからすべての DNS ホストと名前を読み取るため、DNS ホストの IP アドレスと名前のペアを追加します。示されているように。

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

重要: ローカル DNS 名は、DHCP サブシステムから名前をインポートすることによって、または幅広い便利なレコード タイプを構成することによって定義することもできます。

13. 上記の変更を適用するには、次のように dnsmasq サービスを再起動します。

systemctl restart dnsmasq

14. firewalld サービスを実行している場合は、ファイアウォール設定で DNS サービスと DHCP サービスを開く必要があります。 、LAN 上のホストからのリクエストが dnsmasq サーバーに渡されるようにします。

firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

ローカルDNSのテスト

15. ローカル DNS サーバーまたは転送が正常に動作しているかどうかをテストするには、DNS クエリを実行するための dig や nslookup などのツールを使用する必要があります。これらのツールは、bind-utils パッケージによって提供されます。このパッケージはCentOS/RHEL 8 にはプリインストールされていない場合がありますが、示されているようにインストールできます。

yum install bind-utils

16. インストールが完了したら、次のようにローカル ドメインで簡単なクエリを実行できます。

dig tecmint.lan
OR
nslookup tecmint.lan

17. いずれかのサーバーの FQDN をクエリしてみることもできます。

dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan

18. IP 逆引き参照をテストするには、同様のコマンドを実行します。

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

dnsmasq を使用して DHCP サーバーを有効にする

19. dhcp-range オプションのコメントを解除して DHCP サーバーを有効にし、リース可能なアドレスの範囲と、オプションでリース時間を指定できます。例: (複数のネットワークに対して繰り返します)。

dhcp-range=192.168.0.50,192.168.0.150,12h

20. 次のオプションは、DHCP サーバーがリース データベースを保存する場所を定義します。これにより、割り当てられた IP アドレスを簡単に確認できます。

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. DHCP サーバーを権限モードにするには、オプションのコメントを解除します。

dhcp-authoritative

22. ファイルを保存し、dnsmasq サービスを再起動して、最近の変更を適用します。

systemctl restart dnsmasq

これでこのガイドは終わりになります。このガイドに関するご質問やご意見がございましたら、以下のフィードバック フォームをご利用ください。