SUSE Linux で Dynamic DNS(DDNS) を作る

タイトルずばりのビデオがありましたのでご紹介します。openSUSE 11 > YaST で GUI そのままなので、このビデオで理解できる方は読まない方がよいかもしれません。

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 ボタンを押します。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_15525945.jpg


次に "File Name" 横の Browse ボタンを押して先ほど generate した intra.key を選び Add ボタンを押します。TSIGキーリストに表示されます。

次に DNS ゾーンを選びリストから edit ボタンを押します。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_15585463.jpg


Allow Dynamic Update と Automatically generate from のチェックボックスをチェックします。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_1604784.jpg


これをゾーンリストすべてに繰り返します。なお 逆引きゾーンは編集できないよう 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 を開きます。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_1682175.jpg


File Name 横の Browse ボタンから 先ほど Generate した intra.key を選びます。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_16113355.jpg


これでリストアップされます。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_1614767.jpg



もとの画面に戻ったら subnet を選び Edit します。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_16164596.jpg


Allow Dynamic DNS をチェックします。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_16212338.jpg



元の画面から Dynamic DNS のボタンを押します。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_16223620.jpg



Enable Dynamic DNS subnet, Use Update Dynamic DNS をチェックして、それぞれのゾーンを保持するゾーン名、DNSサーバを設定します。
SUSE Linux で Dynamic DNS(DDNS) を作る_a0056607_1625716.jpg


※ここで逆引きゾーンを指定しないとエラーになります。ということで事前に逆引きゾーンを作る必要があります。

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 で苦労したか.....

SUSE Linux DNS の動作チェック、ゾーンのメンテナンス
https://islandcnt.exblog.jp/239758333/

-Keyword-

SUSE Linux SLES11 DNS DHCP Dynamic DNS DDNS ダイナミックDNS

islandcenter.jp

by islandcenter | 2012-07-06 16:54 | SUSE | Comments(0)