BIND9で内向きDNS構築 on Ubuntu
はじめに
現在の我が家のネットワーク構成はこんな感じです。
固定IPアドレスが記述してあるホストに対してドメイン名でアクセスできるようにしたいなと考えました。
で、UbuntuにDNSサーバを立ててやることにします。出来上がりイメージはこちら。
機器名 | 機器の主な用途 | ホスト名 | ローカルIPアドレス | 別名 |
---|---|---|---|---|
WZR-HP-G450H | ルータ | tartan.mnb | 192.168.24.1 | router.mnb |
CG-NSC2100GT | NAS | glen.mnb | 192.168.24.3 | nas01.mnb |
MSI-Wind | 各種サーバ | argyle.mnb | 192.168.24.93 | ns.mnb |
ホスト名はいろいろ考えたんですがチェック柄の種類にしました。最近アーガイル柄のカーディガンをさがしてたので。まぁ買ってないんですけどね。で、ルートドメイン名は苗字から母音を抜いた"mnb"という文字列にしました。若竹さんなら"wktk"、川崎さんなら"kwsk"なんて具合になりますね。
BIND9の設定
設定ファイルを見てみます。
/etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named. // // Please read /usr/share/doc/bind9/README.Debian.gz for information on the // structure of BIND configuration files in Debian, *BEFORE* you customize // this configuration file. // // If you are just adding zones, please do that in /etc/bind/named.conf.local include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones";
3つの設定ファイルをインクルードしているだけのようです。
各々の用途の設定ファイルを書き換えていきます。
まずはこのDNSサーバに対して問い合わせ可能なのは自分自身および同じネットワークからのリクエストのみとします。
/etc/bind/named.conf.options
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. // forwarders { // 0.0.0.0; // }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; // 以下を追加 allow-query { // 自分自身( localhost ) 127.0.0.1; // 192.168.24.* ( Subnet 255.255.255.0 ) 192.168.24.0/24; }; };
次にどんなリクエストに対して応答するか、またその応答に関する設定ファイルをどこに置くかを定義します。
今回は、「mnb」というルートドメイン名を含むドメイン名でのリクエストか192.168.24.* というIPアドレスでのリクエストに対しての応答を受けることとしました。
/etc/bind/named.conf.local
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; // mnb の正引きの設定 zone "mnb" { // Master DNS Serverであることを明示 type master; // 設定ファイル名 file "/etc/bind/db.mnb"; }; // 192.168.24.* の逆引きの設定 zone "24.168.192.in-addr.arpa" { // Master DNS Serverであることを明示 type master; // 設定ファイル名 file "/etc/bind/db.24.168.192"; };
次に各々の設定ファイルの中身を記述していきます。
まずは正引きの設定ファイルのほう。
/etc/bind/db.mnb
; BIND reverse data file for empty rfc1918 zone ; $TTL 1D ; @ IN SOA mnb. root.mnb ( 2011102401 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1D ) ; Minimum IN NS argyle.mnb. ; tartan IN A 192.168.24.1 ; glen IN A 192.168.24.3 ; argyle IN A 192.168.24.93 ; router IN CNAME tartan ; nas01 IN CNAME glen ; ns IN CNAME argyle ;
引き続き逆引きの設定も
/etc/bind/db.24.168.192
; BIND reverse data file for empty rfc1918 zone ; $TTL 1D ; @ IN SOA ns.mnb. root.ns.mnb ( 2011102301 ; Serial 3H ; Refresh 1H ; Retry 1W ; Expire 1D ) ; Minimum IN NS ns.mnb. ; Name Server を指定 IN PTR mnb. ; 解決するドメイン IN A 255.255.255.0 ; サブネットマスク 1 IN PTR tartan ; 192.168.24.1 の逆引き 3 IN PTR glen ; 192.168.24.3 の逆引き 93 IN PTR argyle ; 192.168.24.93 の逆引き
設定は以上。
BIND9をリスタートしてみます。
$ sudo service bind9 restart
* Stopping domain name service... bind9
...done.
* Starting domain name service... bind9
...done.
問題なく起動できたようです。
DHCPサーバの設定
次にDHCPサーバがIP供給している端末たちにネームサーバの所在を教えてあげるように設定します。
ルータにDHCPサーバが備わっているのでWebの設定画面から設定してやります。
使用しているルータ(WZR-HP-G450H)のWeb設定画面にログインして Internet/LAN > LAN の画面で「DHCPサーバ設定[拡張設定]」の拡張設定を表示するをチェックします。
すると設定画面がスルスルッと出てきます。
ここで「DNSサーバーの通知」で「指定したIPアドレス」を選択してプライマリに先ほどBIND9を設置したマシンのIPアドレスを記入します。セカンダリーにはルータ自身(DHCPサーバ自身?)のIPアドレスを、とのことが参考にしたサイトなどに書いてあったのでそうしておきます。その有用性についてはまた機会があれば調べておく、ということで。
MacBook Proにてネットワーク構成からDHCPリースを更新してみました。
ルータで設定した値がDNSサーバとして採用されています。
ではちゃんとひけるのかテストォ!
確認
mac$ nslookup > argyle.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 Name: argyle.mnb Address: 192.168.24.93 > tartan.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 Name: tartan.mnb Address: 192.168.24.1 > glen.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 Name: glen.mnb Address: 192.168.24.3 > ns.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 ns.mnb canonical name = argyle.mnb. Name: argyle.mnb Address: 192.168.24.93 > nas01.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 nas01.mnb canonical name = glen.mnb. Name: glen.mnb Address: 192.168.24.3 > router.mnb Server: 192.168.24.93 Address: 192.168.24.93#53 router.mnb canonical name = tartan.mnb. Name: tartan.mnb Address: 192.168.24.1 > 192.168.24.1 Server: 192.168.24.93 Address: 192.168.24.93#53 1.24.168.192.in-addr.arpa name = tartan.24.168.192.in-addr.arpa. > 192.168.24.3 Server: 192.168.24.93 Address: 192.168.24.93#53 3.24.168.192.in-addr.arpa name = glen.24.168.192.in-addr.arpa. > 192.168.24.93 Server: 192.168.24.93 Address: 192.168.24.93#53 93.24.168.192.in-addr.arpa name = argyle.24.168.192.in-addr.arpa.
正引きも逆引きもできてます。別名でのアクセスも大丈夫そうです。
よかったよかった。
冒頭のネットワーク構成図にホスト名も加えておきます。
次はVPN越しにもホスト名でアクセスできるように設定してみるつもりです。