Ubuntu DNS&DHCP設定
CG-HDC4EU3500用にWD10EADS-M2Bを4つ購入しました。
5400回転ですが静かで低消費電力なのでRAIDを組むのにはちょうどいいと思います。
今回は、UbuntuをインストールしたLS-XHLに対してDNSサーバとDHCPサーバを構築しました。少数のマシンしかないLANを導入するのは高コストですが、このBlogのように外向けのサービスを行っている場合には外側と内側で同じドメインを利用できるので便利です。設定も覚えてしまえば簡単なのでぜひ試してみてください。
1. DNSサーバ
参考 https://help.ubuntu.com/9.04/serverguide/C/dns.html
まずは、DNSサーバであるbind9をインストールします。
$ sudo aptitude install bind9
/etc/bind以下に設定ファイルができるので、ここを編集します。以下の例では設定するドメイン名はchimaki.infoです。適宜変更してください。また192.168.1.0/24のネットワークについて設定をしています。
A. ゾーンの設定
/etc/bind/named.conf.local
zone "chimaki.info" {
type master;
file "/etc/bind/db.chimaki.info";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
};
B. 正引き(Name => IP)の設定
db.localhostをコピーして編集します。
設定ファイルのSerialは変更の度に増やす必要があります。そのため日時を入力することが推奨されています。下記の例では、dns.chimaki.info. => 192.168.1.254という対応を作り、www.chimaki.info. = dns.chimaki.info.という別名を設定しています。
/etc/bind/db.chimaki.info
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.chimaki.info. root.chimaki.info. (
5171400 ; Serial <= mmddHHMMの形式とした。
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dns.chimaki.info.
@ IN A 127.0.0.1
@ IN AAAA ::1
; 名前 => アドレスを定義する。
; IN A
dns IN A 192.168.1.254
linux IN A 192.168.1.10
; 名前の別名を定義する。
; IN CNAME
www IN CNAME dns
C. 逆引き(IP => Name)の設定
db.127をコピーして作成します。
下記の例では、192.168.1.254 => dns.chimaki.info.という対応を設定しています。
同様に他の固定IPのマシンの名前を付けることができます。(例ではlinux.chimaki.infoを定義している。)
/etc/bind/db.192.168.1
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA dns.chimaki.info. root.chimaki.info. (
5171401 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns.
; アドレス => 名前を定義する。
;
IN PTR
254 IN PTR dns.chimaki.info.
10 IN PTR linux.chimaki.info.
D. オプション
192.168.1.0/24に限定するように設定します。
また名前を引けなかったときに、プロバイダのDNSにforwardすることでLANのDNSの記述を一つにできます。
/etc/bind/named.conf.options
options {
directory "/var/cache/bind";
allow-query {
192.168.1.0/24;
localhost;
};
allow-recursion {
192.168.1.0/24;
localhost;
};
allow-transfer {
none;
};
forwarders {
# プロバイダのDNSを書く
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
E. サービスの起動
サービスを再起動します。
$ sudo /etc/init.d/bind9 restart
F. テスト
digコマンドで引けるようになっているか確認します。
ANSWER SECTIONがあれば動作しています。
動かない場合は、/var/log/daemon.logなどのログを便りに修正します。
$ dig @192.168.1.254 dns.chimaki.info ; <<>> DiG 9.5.1-P2 <<>> @192.168.1.254 dns.chimaki.info ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50716 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;dns.chimaki.info. IN A ;; ANSWER SECTION: dns.chimaki.info. 604800 IN A 192.168.1.254 ;; AUTHORITY SECTION: chimaki.info. 604800 IN NS dns.chimaki.info. ;; Query time: 19 msec ;; SERVER: 192.168.1.254#53(192.168.1.254) ;; WHEN: Tue May 19 00:35:16 2009 ;; MSG SIZE rcvd: 64
2. DHCPサーバ
DHCPサーバを次のようにしてインストールします。
$ sudo aptitude install dhcp3-server
/etc/dhcp3/dhcpd.confを以下のように編集します。
例では192.168.1.50から192.168.1.60をDHCPアドレスとして配布します。
#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#
ddns-update-style none;
# DNSサーバを作成したらauthoritativeを有効にする。
authoritative;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.60;
option domain-name "chimaki.info";
option domain-name-servers 192.168.1.254;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 21600;
max-lease-time 43200;
}
サービスを再起動します。
$ sudo /etc/init.d/dhcp3-server restart
ルータなど他の機器でDHCPを起動していないことを確認して、DHCPでIPアドレスを取得してみます。
DHCPの更新などを行うとうまくとれるはずです。
次のようにしてサーバのログを監視すると動作状況が分かります。
$ sudo tail -f /var/log/messages
3. DNSとDHCPの連携
固定IPならば/etc/bind/db.chimaki.infoなどに記述すれば名前を登録することができます。
DHCPでIPを取得したマシンについても名前を登録することができます。(しかも動的にです。)
上記のDNSの設定と、DHCPの設定が完了し動作していると仮定します。
allow-updateを追加します。
/etc/bind/named.conf.local
zone "chimaki.info" {
type master;
file "/etc/bind/db.chimaki.info";
allow-update {
127.0.0.1;
192.168.1.0/24;
};
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.1";
allow-update {
127.0.0.1;
192.168.1.0/24;
};
};
/etc/dhcp3/dhcpd.conf # noneからinterimに変更 ddns-update-style interim;
また/etc/bindにbindユーザが書き込めるように権限を変更します。
$ sudo chown bind:bind /etc/bind
最後にサービスをそれぞれ再起動して設定は終了です。
$ sudo /etc/init.d/bind9 restart $ sudo /etc/init.d/dhcp3-server restart
ログを見ながらDHCPでアドレスを取得させると登録される状況が分かります。
登録されると設定ファイル(例では/etc/bind/db.chimaki.info)に名前が追加されます。
LANのマシンには/etc/resolv.confを
search chimaki.info nameserver 192.168.1.254
のようにドメインサーチとDNSサーバを追加します。
searchはxxx.chimaki.infoのようにすべて入力しないでもxxxで引けるようにするためのものです。