バインドを使用してDNSサーバーを設定する方法

バインドを使用してDNSサーバーを設定する方法

DNS(ドメインネームサーバー)は、ドメイン名とそれに対応する IP アドレスを変換するサーバーです。

ドメイン ネーム システム (DNS) は、ドメイン名をそのドメインに関連付けられた IP アドレスに変換するシステムです。 DNS を使用すると、ブラウザに IP アドレスを入力するのではなく、名前でお気に入りの Web サイトを検索できるようになります。このガイドでは、プライマリ DNS システムとクライアントを構成する方法を説明します。

この記事の例で使用されているシステムの詳細は次のとおりです。

dns01.fedora.local (192.168.1.160) - プライマリ DNS サーバー client.fedora.local (192.168.1.136) - クライアント

DNSサーバーの構成

sudo を使用して bind パッケージをインストールします。

$ sudo dnf インストールbind bind-utils -y

bind パッケージは、DNS サーバーを構成するための/etc/named.conf構成ファイルを提供します。

/etc/named.conf ファイルを編集します。

sudo vi /etc/named.conf

次の行を見つけます。

ポート53をリッスンします{127.0.0.1;};

プライマリ DNS サーバーの IP アドレスを次のように追加します。

リッスンポート53 { 127.0.0.1; 192.168.1.160; };

次の行を見つけます。

クエリを許可します { localhost; };

ローカル ネットワーク範囲を追加します。このサンプル システムでは、192.168.1.X の範囲の IP アドレスを使用します。次のように指定します。

クエリを許可します { localhost; 192.168.1.0/24; };

順方向ゾーンと逆方向ゾーンを指定します。ゾーン ファイルは、IP アドレスやホスト名など、システムの DNS 情報が含まれるテキスト ファイルです。フォワードゾーンファイルを使用すると、ホスト名を IP アドレスに変換できます。逆ゾーンファイルはその逆です。リモート システムが IP アドレスをホスト名に変換できるようになります。

/etc/named.confファイルの下部にある次の行を探します。

「/etc/named.rfc1912.zones」を含めます。

ここから、次のように、行のすぐ上のゾーン ファイル情報を指定します。

ゾーン "dns01.fedora.local" IN {
 タイプマスター;
 ファイル「forward.fedora.local」;
 更新を許可する {なし; };
};
ゾーン "1.168.192.in-addr.arpa" IN {
 タイプマスター;
 ファイル "reverse.fedora.local";
 更新を許可する {なし; };
};

forward.fedora.local 和reverse.fedora.localファイルは、作成されるゾーン ファイルの名前です。任意の名前にすることができます。

保存して終了します。

ゾーンファイルの作成

/etc/named.confファイルで指定した転送ゾーン ファイルと逆ゾーン ファイルを作成します。

$ sudo vi /var/named/forward.fedora.local

次の行を追加します。

$TTL 86400
@ SOA dns01.fedora.local. root.fedora.local. ( で
 2011071001 ;シリアル
 3600 ;更新
 1800 ;再試行
 604800 ;期限切れ
 86400 ;最小TTL
)
@ IN NS dns01.fedora.local。
@ 192.168.1.160 で
192.168.1.160 内の dns01
クライアント IN A 192.168.1.136

太字で表示されているものはすべて、ご使用の環境に固有のものです。ファイルを保存して終了します。次に、 reverse.fedora.localファイルを編集します。

$ sudo vi /var/named/reverse.fedora.local

次の行を追加します。

$TTL 86400
@ SOA dns01.fedora.local. root.fedora.local. ( で
 2011071001 ;シリアル
 3600 ;更新
 1800 ;再試行
 604800 ;期限切れ
 86400 ;最小TTL
)
@ IN NS dns01.fedora.local。
@ IN PTR fedora.local。
192.168.1.160 内の dns01
クライアント IN A 192.168.1.136
160 IN PTR dns01.fedora.local。
136 IN PTR client.fedora.local。

太字で表示されているものはすべて、ご使用の環境に固有のものです。ファイルを保存して終了します。

また、SELinux を構成し、構成ファイルに正しい所有権を追加する必要があります。

sudo chgrp 名前付き -R /var/名前付き
sudo chown -v root:named /etc/named.conf
sudo restorecon -rv /var/named
sudo 復元con /etc/named.conf

ファイアウォールを設定します。

sudo ファイアウォール-cmd --add-service=dns --perm
sudo ファイアウォール-cmd --reload

設定に構文エラーがないか確認してください

sudo 名前付きチェックconf /etc/named.conf

出力やエラーが返されない場合は、構成は有効です。

フォワードゾーンファイルとリバースゾーンファイルを確認します。

$ sudo named-checkzone forward.fedora.local /var/named/forward.fedora.local
$ sudo named-checkzone 逆.fedora.local /var/named/逆.fedora.local

「OK」という応答が表示されます。

ゾーン forward.fedora.local/IN: シリアル 2011071001 がロードされました OK ゾーン river.fedora.local/IN: シリアル 2011071001 がロードされました OK

DNSサービスを有効にして開始する

$ sudo systemctl enable 名前付き
$ sudo systemctl start 名前付き

resolv.confファイルを設定する

/etc/resolv.confファイルを編集します。

$ sudo vi /etc/resolv.conf

現在のネームサーバー行を見つけます。サンプル システムでは、モデム/ルーターをネーム サーバーとして使用しているため、現在は次のようになっています。

ネームサーバー 192.168.1.1

これをプライマリ DNS サーバーの IP アドレスに変更する必要があります。

ネームサーバー 192.168.1.160

変更を保存して終了します。

残念ながら、注意すべき点が 1 つあります。システムが再起動されるか、ネットワークが再起動されると、NetworkManager は/etc/resolv.confファイルを上書きします。つまり、行った変更はすべて失われます。

これを防ぐには、 /etc/resolv.conf resolv.conf を不変にします。

$ sudo chattr +i /etc/resolv.conf

リセットしたい場合は、再度上書きを許可する必要があります。

$ sudo chattr -i /etc/resolv.conf

DNSサーバーのテスト

$ dig fedoramagazine.org
; <<>> DiG 9.11.13-RedHat-9.11.13-2.fc30 <<>> fedoramagazine.org
;; グローバルオプション: +cmd
;; 回答が得られました:
;; ->>HEADER<<- オペコード: QUERY、ステータス: NOERROR、ID: 8391
;; フラグ: qr rd ra; クエリ: 1、回答: 1、権限: 3、追加: 6
;; OPT擬似セクション:
 ; EDNS: バージョン: 0、フラグ:; udp: 4096
 ; クッキー: c7350d07f8efaa1286c670ab5e13482d600f82274871195a (良好)
 ;; 質問セクション:
 ;fedoramagazine.org. IN A
;; 回答セクション:
 fedoramagazine.org. 50 IN A 35.197.52.145
;; 権限セクション:
 fedoramagazine.org。86150 IN NS ns05.fedoraproject.org。
 fedoramagazine.org。86150 IN NS ns02.fedoraproject.org。
 fedoramagazine.org。86150 IN NS ns04.fedoraproject.org。
;; 追加セクション:
 ns02.fedoraproject.org. 86150 IN A 152.19.134.139
 ns04.fedoraproject.org. 86150 IN A 209.132.181.17
 ns05.fedoraproject.org. 86150 IN A 85.236.55.10
 ns02.fedoraproject.org. 86150 IN AAAA 2610:28:3090:3001:dead:beef:cafe:fed5
 ns05.fedoraproject.org. 86150 IN AAAA 2001:4178:2:1269:dead:beef:cafe:fed5
 ;; クエリ時間: 830 ミリ秒
 ;; サーバー: 192.168.1.160#53(192.168.1.160)
 ;; 日時: 2020 年 1 月 6 日月曜日 08:46:05 CST
 ;; 受信したメッセージサイズ: 266

DNS サーバーが正常に機能しているかどうかを確認するには、いくつかチェックすべき点があります。当然、結果を得ることは重要ですが、それ自体は DNS サーバーが実際に適切に動作していることを意味するものではありません。

上部の QUERY、ANSWER、AUTHORITY フィールドには次の例のように 0 以外の値が表示されます。

;; フラグ: qr rd ra; クエリ: 1、回答: 1、権限: 3、追加: 6

SERVER フィールドには DNS サーバーの IP アドレスを入力する必要があります。

;; サーバー: 192.168.1.160#53(192.168.1.160)

dig コマンドを初めて実行する場合は、クエリの完了に 830 ミリ秒かかることに注意してください。

;; クエリ時間: 830 ミリ秒

もう一度実行すると、クエリははるかに高速になります。

$ dig fedoramagazine.org
;; クエリ時間: 0 ミリ秒
;; サーバー: 192.168.1.160#53(192.168.1.160)

クライアント構成

クライアントの構成がはるかに簡単になります。

バインド プログラムをインストールします。

$ sudo dnf インストールbind-utils -y

/etc/resolv.confファイルを編集し、プライマリ DNS を唯一のネーム サーバーとして設定します。

$ sudo vi /etc/resolv.conf

次のようになります:

ネームサーバー 192.168.1.160

変更を保存して終了します。次に、/etc/resolv.conf ファイルを不変にして上書きされないようにし、デフォルト設定に戻します。

$ sudo chattr +i /etc/resolv.conf

クライアントのテスト

DNS サーバーの場合と同じ結果が得られるはずです。

$ dig fedoramagazine.org
; <<>> DiG 9.11.13-RedHat-9.11.13-2.fc30 <<>> fedoramagazine.org
;; グローバルオプション: +cmd
;; 回答が得られました:
;; ->>HEADER<<- オペコード: QUERY、ステータス: NOERROR、ID: 8391
;; フラグ: qr rd ra; クエリ: 1、回答: 1、権限: 3、追加: 6
;; OPT擬似セクション:
 ; EDNS: バージョン: 0、フラグ:; udp: 4096
 ; クッキー: c7350d07f8efaa1286c670ab5e13482d600f82274871195a (良好)
 ;; 質問セクション:
 ;fedoramagazine.org. IN A
;; 回答セクション:
 fedoramagazine.org. 50 IN A 35.197.52.145
;; 権限セクション:
 fedoramagazine.org。86150 IN NS ns05.fedoraproject.org。
 fedoramagazine.org。86150 IN NS ns02.fedoraproject.org。
 fedoramagazine.org。86150 IN NS ns04.fedoraproject.org。
;; 追加セクション:
 ns02.fedoraproject.org. 86150 IN A 152.19.134.139
 ns04.fedoraproject.org. 86150 IN A 209.132.181.17
 ns05.fedoraproject.org. 86150 IN A 85.236.55.10
 ns02.fedoraproject.org. 86150 IN AAAA 2610:28:3090:3001:dead:beef:cafe:fed5
 ns05.fedoraproject.org. 86150 IN AAAA 2001:4178:2:1269:dead:beef:cafe:fed5
 ;; クエリ時間: 1 ミリ秒
 ;; サーバー: 192.168.1.160#53(192.168.1.160)
 ;; 日時: 2020 年 1 月 6 日月曜日 08:46:05 CST
 ;; 受信したメッセージサイズ: 266

SERVER が DNS サーバーの IP アドレスを出力していることを確認します。

DNS サーバーの設定が完了しました。これで、クライアントからのすべてのリクエストが DNS サーバーを経由するようになります。

なぜシンプルな DNS サーバーを構築するのでしょうか?

(1)ストームゲートで起こったように外部DNSがクラッシュした場合、緊急対応のために独自のDNSを使用できる

(2)イントラネットウェブサイトの内部IPアドレス解決を提供するか、または二重回線解決を実装する

(3)ISPがセカンダリドメイン名や高度な管理機能を制限している場合は、ニーズを満たすために独自のDNSサーバーを構築する必要があります。

(4)DNSハイジャックを避ける

(5)他のソリューションとの統合

要約する

これで、bind を使用して DNS サーバーを設定する方法に関するこの記事は終了です。bind dns サーバーに関するその他の関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  MySQL 8.0.18 インストール構成の最適化チュートリアル

>>:  MySQL 挿入時間の 8 時間の違いの問題の解決方法

推薦する

VMware ESXi 5.5 の展開および構成図のプロセス

目次1. インストール要件2. OSイメージのダウンロード3. VMware Workstation...

MySQL ステートメントの配置と概要の紹介

SQL (Structured Query Language) ステートメント、つまり構造化クエリ言...

JavaScript における Arguments オブジェクトの使用に関する詳細な説明

目次序文議論の基本概念議論の役割実パラメータと仮パラメータの数を取得する実際のパラメータ値を変更する...

MySQL を使用して Excel でデータ生成を完了する方法

Excel は、データ分析に最もよく使用されるツールです。この記事では、MySQL と Excel ...

SQLデータベースの14の事例の紹介

データシート /* Navicat SQLite データ転送 ソースサーバー: school ソース...

JS はランダム点呼システムを実装します

参考までに、JSを使用してランダム点呼システムを実装します。具体的な内容は次のとおりです。毎回の授業...

MySQL で固定されていない位置から文字列要素を抽出する方法

序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...

燃える炎効果の英語フォント16種類をシェアする

私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...

MySQLのGROUP BYステートメントを最適化する方法

MySQL で、id、a、b の 3 つのフィールドを持つ新しいテーブルを作成します。次のように、同...

MongoDB データベースの状態を監視する Zabbix3.4 メソッド

Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...

MySQLデータ移行の概要

目次序文: 1. データ移行について2. 移行計画と留意点要約:序文:日常業務では、テーブル、データ...

MySQLでよく使われる演算子と関数の概要

まずデータ テーブルを作成しましょう。 使用テスト; テーブル「従業員」を作成します( emp_no...

MySQLクエリのパフォーマンスを分析する方法

目次スロークエリの基礎: データ取得の最適化データベースから不要なデータが要求されていないか確認する...

Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)

イメージの構築は、DevOps プロセスにおいて非常に重要なプロセスです。一般的に、イメージの構築と...

HTML、CSS、JSコメントの標準的な使用法の概要

必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...