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 でネームサーバに更新もかけます。