数据中心动态DNS+DHCP应用 应用案例: 有大批量主机需要安装上架,我们必然使用自动化无人值守安装,比如kickstart。使用kickstart可以使主机能按照既定的方式批量安装好系统,并设定主机名接入到管理平台等一些任务。但是主机的IP地址很难规划,因为当有大量IP使用的时候你根本无法很好的为每个主机手动分配IP地址并记录。这时可以用到DNS+DHCP的特性来自动更新主机IP地址和DNS记录。 DNS服务器配置: 首先使用rndc-confgen -r /dev/urandom -a命令生成秘钥 cat /etc/rndc.key key "rndc-key" { algorithm hmac-md5; secret "vLl6ba6LcIMe0jhRDC3WgQ=="; }; 编辑配置文件vi /etc/named.conf 把上面的内容复制到配置文件中。 controls { inet 127.0.0.1 allow { 127.0.0.1; } keys { rndc-key; }; }; #这是安全设置,只允许本机使用。 编辑zone文件/etc/named.rfc1912.zones zone "example.ex" IN { type master; file "example.zone"; allow-update {key rndc-key;}; #key需要和上面定义的key名称一致 }; zone "1.21.172.in-addr.arpa" IN { type master; file "example.arpa.zone"; allow-update {key rndc-key;}; }; 保存并重启named服务。 DHCP服务器配置: ddns-domainname "example.ex."; ddns-update-style interim; ddns-rev-domainname "in-addr.arpa."; ddns-updates on; authoritative; log-facility local7; subnet 172.21.1.0 netmask 255.255.255.0 { range 172.21.1.27 172.21.1.20; option routers 172.21.1.254; } key "rndc-key" { #这个Key需要和DNS中配置的一样 algorithm hmac-md5; secret "vLl6ba6LcIMe0jhRDC3WgQ=="; } zone example.ex. { primary 172.21.1.81; key rndc-key; } zone 1.21.172.in-addr.arpa. { primary 172.21.1.81; key rndc-key; } 保存并重启dhcp服务。 这样当客户端通过DHCP获取到IP地址以后会自动在DNS服务器中注册一个A记录地址。名称为主机名+域名。 主机名称需要提前在主机上进行设置,每个主机需要不同。可以在kickstart安装之后的执行脚本中进行定义。 验证: 服务器上可以通过/var/lib/dhcpd/dhcpd.leases日志文件查看内容 lease 172.21.1.20 { starts 3 2018/08/29 07:18:08; ends 3 2018/08/29 07:28:08; cltt 3 2018/08/29 07:18:08; binding state active; next binding state free; rewind binding state free; hardware ethernet 00:50:56:a0:18:6a; set ddns-rev-name = "20.1.21.172.in-addr.arpa."; set ddns-txt = "003caa5a2e3c106c28818615c571b857a6"; set ddns-fwd-name = "slave3.example.ex."; client-hostname "slave3"; } /var/log/boot.log日志文件 Aug 29 13:28:19 bootstart dhcpd: DHCPDISCOVER from 00:50:56:a0:18:6a via ens192 Aug 29 13:28:20 bootstart dhcpd: DHCPOFFER on 172.21.1.20 to 00:50:56:a0:18:6a (slave3) via ens192 Aug 29 13:28:20 bootstart dhcpd: DHCPREQUEST for 172.21.1.20 (172.21.1.81) from 00:50:56:a0:18:6a (slave3) via ens192 Aug 29 13:28:20 bootstart dhcpd: DHCPACK on 172.21.1.20 to 00:50:56:a0:18:6a (slave3) via ens192 Aug 29 13:28:20 bootstart dhcpd: Added new forward map from slave3.example.ex. to 172.21.1.20 Aug 29 13:28:20 bootstart dhcpd: Added reverse map from 20.1.21.172.in-addr.arpa. to slave3.example.ex. 在主机上使用nslookup slave3.example.ex看是否能得到正确的IP地址。