家のネットワーク用にプライベートなDNSサーバを立てました。
Debain/Ubuntuでは、パッケージを入れてローカルネットワークを定義し外部のDNSを設定するだけです。
BINDパッケージのインストール
パッケージをインストールします。
$ sudo apt-get install bind9 $
パッケージを入れたところでルートサーバは、引けるようになっています。
$ dig @localhost A.ROOT-SERVERS.NET ; <<>> DiG 9.5.1-P3 <<>> @localhost A.ROOT-SERVERS.NET ; (2 servers found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1020 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 0 ;; QUESTION SECTION: ;A.ROOT-SERVERS.NET. IN A ;; ANSWER SECTION: A.ROOT-SERVERS.NET. 604756 IN A 198.41.0.4 ;; AUTHORITY SECTION: 139169 IN NS K.ROOT-SERVERS.NET. 139169 IN NS M.ROOT-SERVERS.NET. 139169 IN NS I.ROOT-SERVERS.NET. 139169 IN NS D.ROOT-SERVERS.NET. 139169 IN NS F.ROOT-SERVERS.NET. 139169 IN NS C.ROOT-SERVERS.NET. 139169 IN NS A.ROOT-SERVERS.NET. 139169 IN NS E.ROOT-SERVERS.NET. 139169 IN NS J.ROOT-SERVERS.NET. 139169 IN NS H.ROOT-SERVERS.NET. 139169 IN NS G.ROOT-SERVERS.NET. 139169 IN NS B.ROOT-SERVERS.NET. 139169 IN NS L.ROOT-SERVERS.NET. ;; Query time: 101 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Oct 30 07:46:04 2009 ;; MSG SIZE rcvd: 245 $
ローカルネットワークとフォアードを定義
localnetにローカルのネットワークアドレスを設定します。
この範囲のアドレスを、このDNSサーバで管理することになります。
forwardersに外部の名前を解決するDNSサーバのIPアドレスを設定します。(プロバイダのDNSサーバなど)
$ hg diff -r 68:71 /etc/bind/named.conf.options
diff -r 2a6b93634c9a -r e3177f9ee71e bind/named.conf.options
--- a/bind/named.conf.options Sun Oct 25 16:31:13 2009 +0900
+++ b/bind/named.conf.options Sun Oct 25 22:27:50 2009 +0900
@@ -1,5 +1,12 @@
+acl localnet {
+ 192.168.100.0/8;
+ 127.0.0.1;
+};
+
options {
directory "/var/cache/bind";
+ version "DNS Server";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
@@ -14,6 +21,15 @@
// 0.0.0.0;
// };
+ allow-query { localnet; };
+ allow-recursion { localnet; };
+ allow-transfer { none; };
+ forward first;
+ forwarders {
+ プロバイダのDNSサーバのIPアドレス;
+ };
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
ローカルの設定は、また今度…