FreeBSDでDNSサーバーを構成する

画像



多くの場合、取得したDNS名に対する外部ユーザーのリクエストに対応できるだけでなく、ローカルネットワーク上のユーザーリクエストにも対応できる独自のDNSサーバーを導入するという疑問が生じます。 このようなタスクは、FreeBSD OSを使用して比較的簡単に解決できます。



チャレンジ:



FreeBSDを実行しているバインドDNSサーバーを設定して、内部ネットワーク上のクライアント要求を処理し、セカンダリDNSサーバーに転送する機能を使用して、直接および逆DNSゾーンを処理します。 サーバー上のすべてのゾーンのタイプはマスターです。つまり、このサーバーはすべてのゾーンに対して信頼できる回答を提供します。



与えられた:



1. DNSサーバーの内部IPアドレスは192.168.0.1/24です

2. DNSサーバーの外部IPアドレスは10.10.10.1/24です。

3.セカンダリサーバーのIPアドレスは10.10.10.2/24です。

4.直接DNSゾーン-test.dom

5.逆引きDNSゾーン-10.10.10.in-addr.arpa



解決策:



1. /etc/rc.confファイルに、システム起動時にDNSサーバーの開始を登録します



named_enable=”YES”







2.構成ファイル/etc/namedb/named.confを次の形式にします。



acl ACCESS { 127.0.0.1; 192.168.0.0/24; 10.10.10.0/24; };



options {

directory "/etc/namedb";

pid-file "/var/run/named/pid";

dump-file "/var/dump/named_dump.db";

statistics-file "/var/stats/named.stats";

listen-on { 127.0.0.1; 10.10.10.1; };

allow-recursion { ACCESS; };

allow-transfer { 10.10.10.2; };

transfer-source 10.10.10.1;

version "Bind DNS Server";

};



logging {

category lame-servers { null; };

};



zone "." {

type hint;

file "named.root";

};



zone "localhost" {

type master;

file "master/localhost";

};



zone "0.0.127.in-addr.arpa" {

type master;

file "master/0.0.127.in-addr.arpa";

};



zone "test.dom" {

type master;

file "master/test.dom";

allow-query { any; };

};



zone "10.10.10.in-addr.arpa" {

type master;

file "master/10.10.10.in-addr.arpa";

allow-query { any; };

};








どこで:



acl -ACCESSという名前のアクセスリストと、DNSサーバーの使用が許可されているネットワークの説明。

ディレクトリ -作業ディレクトリのバインド

pid-file -PIDファイルの配置

dump-file -DUMPファイルの配置

statistics- file-統計ファイルの配置

listen-on -Bindがリクエストを「リッスン」するインターフェースのIPアドレスを指定します

allow-recursion-再帰的なサーバー要求が許可されるアクセスリストを指定します

allow-transfer-ゾーンの転送先のセカンダリDNSサーバーのIPアドレスを指定します

transfer- source-ゾーン転送を許可するIPインターフェースを指定します

version -DNSサーバーのバージョンを指定します

logging-ロギング制限を指定します

ゾーン「。」 -ルートDNSサーバーを記述するゾーンは、操作に必要です。 /etc/namedb/named.rootに保存されます

ゾーン「localhost」 -ローカルサーバーを記述する直接ゾーンが操作に必要です。 / etc / namedb / master / localhostに保存

zone "0.0.127.in-addr.arpa" -ローカルサーバーを記述する逆ゾーンは、操作に必要です。 /etc/namedb/master/0.0.127.in-addr.arpaに保存されます

zone "test.dom" -直接ゾーン。 これは/etc/namedb/master/test.domファイルに保存されます。ゾーンのマスターコピーはallow-queryを使用してサーバーに保存されるため、全員がポーリングできるようにします。

ゾーン「10.10.10.in-addr.arpa」は逆ゾーンです。 ファイル/etc/namedb/master/10.10.10.in-addr.arpaに保存されます。 ゾーンのマスターコピーはallow-queryを使用してサーバーに保存されるため、誰もがポーリングできるようにします。



3.ゾーンファイルを構成する



3.1。 ゾーン「。」 -デフォルトで残す



3.2。 ゾーン「localhost」 。 構成ファイル/ etc / namedb / master / localhostは 、次の形式に縮小されます。



$TTL 3600



@ IN SOA localhost. root.localhost. (

2009070601 ; Serial

3600 ; Refresh

600 ; Retry

2419200 ; Expire

86400 ) ; Minimum



IN NS localhost.



IN A 127.0.0.1








3.3。 ゾーン「0.0.127.in-addr.arpa」 構成ファイル/etc/namedb/master/0.0.127.in-addr.arpaは 、次の形式に縮小されます。



$TTL 3600



@ IN SOA localhost. root.localhost. (

2009070601 ; Serial

3600 ; Refresh

600 ; Retry

2419200 ; Expire

86400 ) ; Minimum



IN NS localhost.



1 IN PTR localhost.








3.4。 ゾーン「test.dom」 。 構成ファイル/etc/namedb/master/test.domは 、次の形式に縮小されます。



$TTL 3600

@ IN SOA ns1.test.dom. hostmaster.test.dom. (

2009082801 ; Serial

3600 ; Refresh

600 ; Retry

2419200 ; Expire

86400 ) ; Minimum



IN NS ns1.test.dom.

IN NS ns2.test.dom.



@ IN A 10.10.10.1



ns1 IN A 10.10.10.1

ns2 IN A 10.10.10.2








3.5。 ゾーン「10.10.10.in-addr.arpa」 構成ファイル/etc/namedb/master/10.10.10.in-addr.arpaは 、次の形式に縮小されます。



$TTL 3600

@ IN SOA ns1.test.dom. hostmaster.test.dom. (

2009082801 ; Serial

3600 ; Refresh

600 ; Retry

2419200 ; Expire

86400 ) ; Minimum



IN NS ns1.test.dom.

IN NS ns2.test.dom.



1 IN PTR ns1.test.dom.

2 IN PTR ns2.test.dom.








たとえば、test.domゾーンの上から下の場合:



-秒単位の期間を示す時間、レコードをキャッシュに保存する期間。

-@-ゾーン名-置換文字、IN-レコードクラスインターネット-デフォルト値、SOA-ゾーンのグローバル変数の説明、ns1.test.dom。 このゾーンのDNSサーバーの名前、hostmaster.test.domです。 -このゾーンのDNSサーバー管理者の住所。 @記号の代わりに、「。」記号が区切り文字として使用されます

-レコード変更のシリアル番号。 セカンダリサーバーによってゾーンを再読み取りするには、変更するたびに、最後の数字を1増やす必要があります。

-セカンダリDNSサーバーがゾーンの読み取りを試行するまでの時間

-リフレッシュで指定された期間中にセカンダリサーバーがプライマリDNSサーバーに接続できなかった場合に、セカンダリサーバーがゾーンの再読み取りを試みるまでの時間

-これらのゾーンがこのサーバーに対して権限を失った時間を示します。 セカンダリサーバーによって使用されます。

-キャッシュにゾーンデータを保存する有効期間を示す古い属性。

-このゾーンのプライマリDNSサーバーのDNSの表示

-このゾーンのセカンダリDNSサーバーの表示

-このゾーンのノードの説明



4.次のコマンドを使用してDNSサーバーを管理します。



freebsd# /etc/rc.d/named start | stop | restart | status







オプション:



最も一般的に使用されるDNSレコードのタイプ:



A-ネットワーク内のノードのIPアドレスへの書き込み

NS -DNSサーバー上の記録

CNAME-ノードの正規名の記録

PTR-逆ゾーンで使用されるドメイン名へのポインタを記録

MX-メールルーティングを決定するためのレコード



パフォーマンスをテストするには、 dignslookupなどのツールを使用できます



掘り出しの使用例:



freebsd# dig @localhost test.dom ANY







コマンドの意味-localhostサーバーを使用して、test.domゾーンにANYタイプのエントリを表示する



; <<>> DiG 9.4.3-P2 <<>> @localhost test.dom ANY

; (2 servers found)

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35560

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 10, AUTHORITY: 0, ADDITIONAL: 2



;; QUESTION SECTION:

;test.dom. IN ANY



;; ANSWER SECTION:

test.dom. 3600 IN A 10.10.10.1

test.dom. 3600 IN SOA ns1.test.dom. hostmaster.test.dom. 2009082801 3600 600 2419200 86400

test.dom. 3600 IN NS ns1.test.dom.

test.dom. 3600 IN NS ns2.test.dom.



;; ADDITIONAL SECTION:

ns1.test.dom. 3600 IN A 10.10.10.1

ns2.test.dom. 54886 IN A 10.10.10.2



;; Query time: 1 msec

;; SERVER: 127.0.0.1#53(127.0.0.1)

;; WHEN: Sun Aug 30 23:04:41 2009

;; MSG SIZE rcvd: 330








nslookupの使用例:



freebsd# nslookup

> test.dom

Server: 127.0.0.1

Address: 127.0.0.1#53



Name: test.dom

Address: 10.10.10.1

>








私の意見では、診断にdigを使用する方がより柔軟ですが、nslookupの使用方法を完全に知っている人は同じことを言うでしょう。 DNSを設定するための素晴らしいガイドもお勧めします



All Articles