家のネットワーク用にプライベートな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; }; };
ローカルの設定は、また今度…