2012年 07月 06日
SUSE Linux で Dynamic DNS(DDNS) を作る
Dynamic-DNS with openSUSE 11.2
また SLES10 時代に書いた記事も合わせてご参考ください。 イントラネット用DNSを SLES10でインストールから、設定まで、一応記述したものです。それほどやり方は変わりません。
SUSE Linux 10 : YaST で イントラネットDNS サーバを設定
-DDNS の設定-
YaST > DNS server > TSIG Keys を選び、Key ID 値に任意の名前(ここでは intra) を付け /etc/name.d/ に intra.key と名前をつけて Generate ボタンを押します。
次に "File Name" 横の Browse ボタンを押して先ほど generate した intra.key を選び Add ボタンを押します。TSIGキーリストに表示されます。
次に DNS ゾーンを選びリストから edit ボタンを押します。
Allow Dynamic Update と Automatically generate from のチェックボックスをチェックします。
これをゾーンリストすべてに繰り返します。なお 逆引きゾーンは編集できないよう Records タブは開けません。
※はまりどころ - このチェックをした状態ではゾーンファイルはアップデートされません。もし固定IPのデバイスを追加したい場合は、この Allow Dynamic update の check をはずして一応 named を再起動します。、次に追加したいデバイスを Zone Filre Record の Add/Edit で行います。いったん SAVE & Restart した上で、 Allow Dynamic DNS をチェックして再起動する必要があるようです。おそらく、DDNS と固定 IP とを混在させないための Safty 対策なんでしょうが、ちょっと面倒です。
Alloow Dynamic DNS をチェックして YaST を終了すると /var/lib/named/master/MYZONE が /var/lib/named/dyn に移動します。 YaST を使う上でのハマリどころです。
Finish で終了します。
DNSの設定はここまでです。
-DHCP-
YaST > DHCP を検索して開きます。
Configure Declarations から DHCP リストを選び Advanced ボタンを押して TSIG Key Management を開きます。
File Name 横の Browse ボタンから 先ほど Generate した intra.key を選びます。
これでリストアップされます。
もとの画面に戻ったら subnet を選び Edit します。
Allow Dynamic DNS をチェックします。
元の画面から Dynamic DNS のボタンを押します。
Enable Dynamic DNS subnet, Use Update Dynamic DNS をチェックして、それぞれのゾーンを保持するゾーン名、DNSサーバを設定します。
SUSE で 作る DNS サーバ(逆引きゾーン)
これで、設定は終了します。 OK > Finish で完了します。
設定内容は /var/lib/named/dyn に保管されます。
dns2:/var/lib/named/dyn # ls -al
total 20
drwxr-xr-x 2 named named 4096 Jul 6 16:03 .
drwxr-xr-x 10 root root 4096 Jul 5 16:10 ..
-rw-r--r-- 1 named named 331 Jul 6 16:03 1.1.168.192.in-addr.arpa
-rw-r--r-- 1 named named 702 Jul 6 16:02 1.1.168.192.in-addr.arpa.jnl
-rw-r--r-- 1 root root 657 Jul 6 04:52 intra
dns2:/var/lib/named/dyn #
dns2:/var/lib/named/dyn # cat 1.1.168.192.in-addr.arpa
$ORIGIN .
$TTL 172800 ; 2 days
1.1.168.192.in-addr.arpa IN SOA dns2.intra. root.dns2.intra. (
2012070601 ; serial
10800 ; refresh (3 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns2.1.1.168.192.in-addr.arpa.
NS dns3.1.1.168.192.in-addr.arpa.
dns2:/var/lib/named/dyn #
このような感じです。
/etc/named.conf はこのようになりました。(コメントは削除しています)
dns2:/etc # cat named.conf
options {
directory "/var/lib/named";
dump-file "/var/log/named_dump.db";
statistics-file "/var/log/named.stats";
listen-on-v6 { any; };
notify yes;
include "/etc/named.d/forwarders.conf";
};
zone "." in {
type hint;
file "root.hint";
};
zone "localhost" in {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "127.0.0.zone";
};
include "/etc/named.conf.include";
logging {
category default { log_syslog; };
channel log_syslog { syslog; };
};
zone "intra" in {
allow-transfer { any; };
file "dyn/intra";
type master;
allow-update { key intra; };
};
zone "1.1.168.192.in-addr.arpa" in {
allow-update { key intra; };
allow-transfer { any; };
file "dyn/1.1.168.192.in-addr.arpa";
type master;
};
dns2:/etc #
DHCP の設定ファイルは /var/lib/dhcp に作成されます。
dns2:/var/lib/dhcp # ls -al
total 28
drwxr-xr-x 8 root root 4096 May 3 14:19 .
drwxr-xr-x 46 root root 4096 May 3 14:15 ..
drwxr-xr-x 2 dhcpd root 4096 Jul 6 16:39 db
drwxr-xr-x 2 root root 4096 Jul 6 16:39 dev
drwxr-xr-x 5 root root 4096 Jul 6 03:57 etc
drwxr-xr-x 2 root root 4096 Jul 6 16:39 lib64
dr-xr-xr-x 104 root root 0 Jul 6 07:37 proc
drwxr-xr-x 3 root root 4096 May 3 13:49 var
dns2:/var/lib/dhcp # ls db -l
total 16
-rw-r--r-- 1 root root 5783 Jul 6 16:39 dhcpd.leases
-rw-r--r-- 1 root root 5783 Jul 6 16:27 dhcpd.leases~
dns2:/var/lib/dhcp #
dns2:/var/lib/dhcp # ls etc -l
total 40
-rw-r--r-- 1 root root 570 Jul 6 16:27 dhcpd.conf
-rw-r--r-- 1 root root 3045 Jan 14 00:52 gai.conf
-rw-r--r-- 1 root root 370 Jan 14 02:30 host.conf
-rw-r--r-- 1 root root 744 Jul 5 20:13 hosts
-rw-r--r-- 1 root root 331 Oct 26 2011 localtime
drwxr-xr-x 2 root root 4096 Jul 6 03:42 named.d
-rw-r--r-- 1 root root 1192 Jan 14 00:52 nsswitch.conf
drwxr-xr-x 2 root root 4096 May 3 14:19 openldap
-rw-r--r-- 1 root root 871 Jul 6 03:39 resolv.conf
drwxr-xr-x 3 root root 4096 May 3 14:19 ssl
dns2:/var/lib/dhcp # cat dhcp/dhcpd.conf
cat: dhcp/dhcpd.conf: No such file or directory
dns2:/var/lib/dhcp # cat etc/dhcpd.conf
option domain-name "intra";
option domain-name-servers 192.168.1.2, 192.168.1.3;
option routers 192.168.1.1;
option ntp-servers 192.168.1.239;
default-lease-time 14400;
include "/etc/named.d/intra.key";
include "/etc/named.d/intra.key";
ddns-update-style interim;
ignore client-updates;
ddns-updates on;
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.30 192.168.1.49;
default-lease-time 14400;
max-lease-time 172800;
zone intra. { primary 192.168.1.2; key intra; }
zone 1.1.168.192.in-addr.arpa. { primary 192.168.1.2; key intra; }
}
dns2:/var/lib/dhcp #
db/dhcpd.leases に最新のマシン名、MAC アドレス、IP アドレスが記録されます。
dns2:/var/lib/dhcp/db # cat dhcpd.leases | grep lease | sort
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.3-P2
lease 192.168.1.30 {
lease 192.168.1.31 {
lease 192.168.1.32 {
lease 192.168.1.33 {
|
中略
|
lease 192.168.1.48 {
lease 192.168.1.49 {
lease 192.168.1.49 {
dns2:/var/lib/dhcp/db #
一応、再起動してみましょう。
dns2:~ # /etc/init.d/named restart
Shutting down name server BIND waiting for named to shut down (28s) done
Starting name server BIND done
dns2:~ # /etc/init.d/dhcpd restart
Shutting down ISC DHCPv4 4.x Server done
Starting ISC DHCPv4 4.x Server [chroot] done
DNS と DHCP は同じシステムで作った方が楽です。ただし、DHCP は基本的にサブネットに1台しか設定できない(冗長化するのはかなり特殊な方法があるそうですが)ので、仮想化して、定期的に cron でシャットダウン、バックアップ、あるいは、実際に構築している最中にイメージをスナップショットコピーを行っておくことをお勧めします。
どれだけ DNS で苦労したか.....
-Keyword-
SUSE Linux SLES11 DNS DHCP Dynamic DNS DDNS ダイナミックDNS
islandcenter.jp