DNSサーバー · 1 min read · Oct 02, 2025
CentOS 7に軽量で高速なDNSサーバーMaraDNSをインストールする方法
MaraDNSは小さく、無料で軽量なドメインネームサーバーです。これはキャッシング、再帰的、または権威あるネームサーバーとして機能するオープンソースのDNSサーバーの代替です。設定が非常に簡単で、LinuxおよびWindowsプラットフォームで利用可能です。ここからダウンロードできます。DNS、再帰的DNS、権威あるDNSについては、こちらで詳しく読むことができます。
以下はMaraDNSのいくつかの興味深い特徴です:
- インストールが簡単
- 低メモリ使用量(約5MBのRAMを使用)
- 権威あるネームサーバーおよび再帰的ネームサーバーとして機能できます。
- 見逃せないのは、MaraDNSのウェブサイトのドキュメントが非常に理解しやすいことです。
それでは、CentOS 7でMaraDNSを始めましょう。以下の手順がMaraDNSのインストールと設定について案内します:
MaraDNSのインストール
現在、CentOS 7用のMaraDNSのRPMは利用できないため、ソースからインストールおよびコンパイルします。
gccをインストールします:
sudo yum install gcc最新のソースアーカイブをここからダウンロードします。次のように行えます:
wget http://maradns.samiam.org/download/2.0/2.0.11/maradns-2.0.11.tar.bz2アーカイブの内容を抽出します:
tar -xjf maradns-2.0.11.tar.bz2抽出したMaraDNSディレクトリに移動し、プログラムをコンパイルしてインストールします:
cd maradns-2.0.11sudo makesudo make installMaraDNSがインストールされました。MaraDNSサービスは/etc/init.d/maradnsにインストールされています。サービスを開始するには、次のようにします:
sudo /etc/init.d/maradns start再帰的デーモンを開始するには、次のように実行します:
sudo /etc/init.d/maradns.deadwood startデフォルトでは、権威あるネームサーバーはポート127.0.0.1でリッスンし、再帰的なものはポート127.0.0.2でリッスンします。
MaraDNSを起動時に開始するように設定しましょう:
chkconfig maradns on再帰的DNSサーバーのinitスクリプトは、起動時に実行できるようにchkconfigと互換性を持たせる必要があります。/etc/init.d/maradns.deadwoodファイルの先頭に以下の内容を追加します:
# chkconfig: - 55 45
# description: MaraDNSは安全なドメインネームサーバー(DNS)です
# probe: true起動時に実行されるように設定します:
chkconfig maradns.deadwood onMaraDNSを権威あるネームサーバーとして設定する
権威あるDNSサーバーは、特定のドメインのURLとIPのマッピングを「知っています」。それらは、再帰的DNSサーバーがブラウザ(Chrome、Firefoxなど)などのウェブクライアントに送信する情報のソースです。MaraDNSを権威あるネームサーバーとして設定するには、次のようにします:
MaraDNSの設定ファイル(/etc/mararc)を編集します:
ipv4_bind_addresses = "127.0.0.1"
chroot_dir = "/etc/maradns"
csv2 = {}
csv2["example.net."] = "db.example.net"最初の行はMaraDNSにIP-127.0.0.1でリッスンするように指示します。カンマで区切ってさらにIPを追加できます。例えば- 127.0.0.1, x.x.x.x
2行目のchroot_dirは、すべてのゾーンファイルが保持されるディレクトリを指定します。
3行目はcsv2ハッシュをcsv2 = {}コマンドで初期化します。
4行目は、ドメイン名example.netのゾーンファイルdb.example.netを指定します。
以下は、ドメイン名example.netのゾーンファイルdb.example.netで、自己説明的です:
example.net. +14400 soa ns1.example.net. [email protected]. 2012010117 14400 3600 604800 14400 ~
example.net. +14400 ns ns1.example.net. ~
example.net. +14400 ns ns2.example.net. ~
ns1.example.net. +14400 a 127.0.0.1 ~
ns2.example.net. +14400 a 127.0.0.1 ~
example.net. +14400 a 127.0.0.1 ~
www.example.net. +14400 a 127.0.0.1 ~
example.net. +14400 mx 10 mail.example.net. ~
mail.example.net. +14400 a 127.0.0.1 ~あなたは権威あるネームサーバーと他のレコードを指定する前に、権威あるネームサーバーの最初の行(SOA行)から始めます。Aレコードは、ドメイン名、TTL(生存時間)、レコードタイプ、およびレコードの値で構成されます。
注意すべき2つのことは、すべてのドメイン名はピリオドで終わる必要があり、すべてのレコードはチルダ文字(~)で終わる必要があることです。詳細については、ゾーンファイルの形式に関するドキュメントを確認してください。
より簡単にするために、example.netを127.0.0.1にポイントするだけにしましょう。これがその方法です:
example.net. 127.0.0.1 ~サービスを再起動します:
sudo /etc/init.d/maradns restartMaraDNSを再帰的ネームサーバーとして設定する
ウェブブラウザがDNSクエリを送信するとき—ブラウザがすでにキャッシュにマッピングを持っていない場合—それは再帰的DNSサーバーに送信されます。これはDNSフォワーディングとも呼ばれます。デフォルトではポート127.0.0.2でリッスンし、カンマで区切ってさらにIPを追加できます。例えば- 127.0.0.2, x.x.x.x。MaraDNSを再帰的ネームサーバーとして設定するには、/etc/dwood3rcファイルに以下の行を追加します:
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Google DNSサーバーにリクエストを転送サービスを再起動します:
sudo /etc/init.d/maradns.deadwood restartMaraDNSサーバーの設定が完了しました! :)
ヒント - 外部DNSクエリに応答するMaraDNSサーバーを希望する場合、次のことを行う必要があります:
マシンのパブリックIPを両方の設定ファイル(/etc/mararcおよび/etc/dwood3rc)に追加し、次のように修正します:
/etc/mararc:
ipv4_bind_addresses = "127.0.0.1, x.x.x.x" # x.x.x.xをマシンのパブリックアドレスに置き換えます。/etc/dwood3rc:
bind_address="127.0.0.2, x.x.x.x" # x.x.x.xをマシンのパブリックアドレスに置き換えます。recursive_acl = “0.0.0.0/0” # どこからでも接続を許可するため。
これらのサンプルファイルをここから取得できます。サービスを再起動するのを忘れないでください。
以上です!
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。