数据中心动态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地址。