AWS EC2 のインスタンスを立ち上げたとき、(AMI によるかもしれませんが)DHCP で付与された IP アドレスに基いて ip-10-11-12-13 のようにホスト名が設定されるのを見て、さすが AWS は不思議なチカラでよくわからんことをしよる、と思いました。
と、思ったら ISC DHCP でも普通にできました。
使用した dhcpd のバージョンは次の通りです。
CentOS 7.0.1406 / dhcp-4.2.5-27.el7.centos.x86_64
man dhcp-eval すると色々でてきます。
dhcpd.conf
log-facility daemon;
not authoritative;
ddns-updates on;
ddns-update-style interim;
ignore client-updates;
subnet 10.1.1.0 netmask 255.255.255.0 {
default-lease-time 21600;
max-lease-time 43200;
range dynamic-bootp 10.1.1.100 10.1.1.200;
option routers 10.1.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 10.1.1.10;
option domain-name "test";
option domain-search "test";
ddns-domainname "test";
ddns-ttl 3600;
zone test. {
primary 10.1.1.10;
}
zone 1.1.10.in-addr.arpa. {
primary 10.1.1.10;
}
if not exists host-name {
option host-name = concat("ip-" , binary-to-ascii(10, 8, "-", leased-address), ".", config-option domain-name);
ddns-hostname = concat("ip-" , binary-to-ascii(10, 8, "-", leased-address));
} else {
option host-name = concat(lcase(option host-name), ".", config-option domain-name);
}
}
上の設定では・・・
- クライアントがホスト名を送ってきている場合(仮に oreore とすると)
- oreore.test というホスト名をクライアントに返します
- クライアントがホスト名を送ってこない場合
- ip-10.11.12.13.test のようにリースした IP アドレスに基づいたホスト名を返します
となります。ついでに同じ名前で DDNS でネームサーバに更新もかけます。