
多くの場合、取得した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-メールルーティングを決定するためのレコード
パフォーマンスをテストするには、 digやnslookupなどのツールを使用できます
掘り出しの使用例:
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を設定するための素晴らしいガイドもお勧めします 。