MaraDNSは、小型で無料の軽量ドメインネームサーバーです。これは代替のオープンソースDNSサーバーであり、キャッシング、再帰、または信頼できるネームサーバーとして機能します。 LinuxおよびWindowsプラットフォームでは、構成が非常に簡単で利用できます。こちらからダウンロードできます。 DNS、再帰DNS、権限のあるDNSについて詳しくは、こちらをご覧ください。
以下は、MarDNSのいくつかの興味深い特徴です。
- インストールが簡単
- メモリ使用量が少ない(約5MBのRAMを使用)
- 権限のあるネームサーバーおよび再帰的なネームサーバーとして機能できます。
- お見逃しなく、MaraDNSWebサイトのドキュメントは非常に簡単に理解できます。
CentOS 7で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.11
sudo make
sudo make install
これでMaraDNSがインストールされました。 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 is secure Domain Name Server (DNS)
# probe: true
起動時に実行するように設定します:
chkconfig maradns.deadwood on
権限のあるDNSサーバーは、特定のドメインのURLからIPへのマッピングを「認識」しています。これらは、再帰DNSサーバーがブラウザー(Chrome、Firefox)などのWebクライアントに送信する情報のソースです。 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 ~
Start Of Authority(SOA)行から始めます。次に、権限のあるネームサーバーとその他のレコードを指定します。レコードは、ドメイン名、TTL(存続時間)、レコードタイプ、およびレコードの値で構成されます。
2つの注意点は、すべてのドメイン名がピリオドで終わることです。つまり、完全修飾ドメイン名である必要があります。すべてのレコードはチルダ文字(〜)で終わります。詳細については、ゾーンファイルの形式に関するドキュメントを確認してください。
もっと簡単にするために、example.netを127.0.0.1にポイントしてみましょう。これがあなたのやり方です:
example.net. 127.0.0.1 ~
次のようにサービスを再起動します:
sudo /etc/init.d/maradns restart
WebブラウザがDNSクエリを送信すると(ブラウザのキャッシュにマッピングがまだ保存されていない場合)、再帰DNSサーバーに送信されます。 DNS転送とも呼ばれます。デフォルトではポート127.0.0.2でリッスンし、コンマで区切ってIPを追加できます。例:-127.0.0.2、x.x.x.x。 / etc / dwood3rcファイルに以下の行を追加することにより、MaraDNSを再帰的なネームサーバーとして構成できます:
upstream_servers = {}
upstream_servers["."] = "8.8.8.8, 8.8.4.4" # Forwarding requests to Google DNS Servers
次のようにサービスを再起動します:
sudo /etc/init.d/maradns.deadwood restart
これで、MaraDNSサーバーのセットアップは完了です。 :)
ヒント-MaraDNSサーバーが外部DNSクエリに応答するようにする場合は、次のことを行う必要があります。
マシンのパブリックIPを両方の構成ファイル(/ etc/mararcと/etc/ dwood3rc)に追加し、次のように変更します。
/ etc / mararc:
ipv4_bind_addresses = "127.0.0.1, x.x.x.x" #Replace x.x.x.x with your machine's public address.
/ etc / dwood3rc:
bind_address="127.0.0.2, x.x.x.x" #Replace x.x.x.x with your machine's public address.
recursive_acl ="0.0.0.0/0"#どこからでも接続できるようにします。
これらのサンプルファイルはここから入手できます。もう一度サービスを再起動することを忘れないでください。
それだけです!