〔備忘録〕 家庭内LAN用 DHCP サーバ on Ubuntu 16.04LTS

こちら(http://d.hatena.ne.jp/grasso0210/20160512/1463035817)に続いて、
DHCPサーバの設定を行います。

DNSサーバの構築目的と同様、家庭内LAN内のPC間のアクセス管理を楽にすることなので、Dynamic DNSでホスト/IP対の登録も行います。

なお、参考にした先人の知恵は以下のとおり。

最初に、DHCP サーバをインストールします。

# apt-get install isc-dhcp-server

次に、Dynamic DNS 機能を除く DHCP 機能の設定を行います。
設定ファイルは /etc/dhcp/dhcpd.conf です。

ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.***.0 netmask 255.255.255.0 {
    range 192.168.***.128 192.168.***.143;
    option routers 192.168.***.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.***.100;
    option domain-name "local.******.mydns.jp";

    # static assign
    host sv {
        hardware ethernet XX.XX.XX.XX.XX.XX;
        fixed-address 192.168.***.100;
    }
}

上記のコメント "# static assign" 以降の行は、MAC アドレスによる静的割り当ての設定です。
サーバ類に対しては、固定アドレスを割り当てるためです。

設定ファイルの記載が完了したら、DHCP サーバを再起動し、自動割り当てが正常動作することを確認します。

# /etc/init.d/isc-dhcp-server restart

次に、Dynamic DNS の設定です。
まず、Bind の設定を修正します。
ローカルゾーンの設定ファイルに以下を追記(青字で記載)します。

key "secret-key" {
    algorithm hmac-md5;
    secret "XXXXXXXXXXXXXXXXXXXXX==";
};

zone "local.******.mydns.jp" {
    type master;
    forwarders {};
    file "/var/lib/bind/db.local.******.mydns.jp";
    allow-update { key secret-key; };
};
zone "***.168.192.in-addr.arpa" {
    type master;
    forwarders {};
    file "/var/lib/bind/db.192.168.***";
    allow-update { key secret-key; };
};

冒頭の "key" ブロックは dnssec-genkey コマンドで生成した共通鍵を転記しました。
keyブロックは include ディレクティブによる追加でも良さそうです。

次に、DHCP の設定を修正します。青字が追記/変更部分です。

ddns-update-style interim;
authoritative;
ddns-updates on;
key "secret-key" {
    algorithm hmac-md5;
    secret "XXXXXXXXXXXXXXXXXXXXX==";
};
zone local.grasso.mydns.jp. {
primary 192.168.***.100;
key secret-key;
}
zone 210.168.192.in-addr.arpa. {
primary 192.168.***.100;
key secret-key;
}

update-static-leases on;
use-host-decl-names on;

default-lease-time 600;
max-lease-time 7200;

subnet 192.168.***.0 netmask 255.255.255.0 {
    range 192.168.***.128 192.168.***.143;
    option routers 192.168.***.1;
    option subnet-mask 255.255.255.0;
    option domain-name-servers 192.168.***.100;
    option domain-name "local.******.mydns.jp";
    ddns-domainname "local.******.mydns.jp";
    ddns-rev-domainname "in-addr.arpa.";

    # static assign
    host sv {
        hardware ethernet XX.XX.XX.XX.XX.XX;
        fixed-address 192.168.***.100;
    }
}

keyブロックはDNSのそれと同じものを転記します。
include ディレクティブで代用しようとしたのですが、keyファイルに対する"Permission Denied"エラーが解決できなかったので give up してしまいました f(^^;;;
https://spin.atomicobject.com/2012/04/03/setting-up-bind9-and-dhcp3-on-ubuntu-with-dynamic-dns/を参考に記載したのですが、うまくいかなかった…

DHCP, DNS サーバをそれぞれ再起動して、DHCP による割り当てとともに、DNS Query ができることを確認したら終わりです。

# /etc/init.d/isc-dhcp-server restart
# /etc/init.d/bind9 restart