在 CentOS 上配置 DHCP 服务以实现动态 DNS(DDNS)更新,通常需要以下几个步骤:
-
安装并配置 DHCP 服务器: 首先,确保你的 CentOS 系统上已经安装了 DHCP 服务器。如果没有安装,可以使用以下命令进行安装:
sudo yum install dhcpd
-
配置 DHCP 服务器: 编辑 DHCP 服务器的配置文件
/etc/dhcp/dhcpd.conf
,添加一个范围和一个选项文件来指定 DNS 服务器。例如:subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.10 192.168.1.100; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name "example.com"; option domain-search "example.com"; option tftp-server-name "tftp.example.com"; option time-offset 0; option leap-seconds 0; option netbios-name-servers 8.8.8.8, 8.8.4.4; }
-
配置 DNS 更新: 为了实现动态 DNS 更新,你需要一个支持 DDNS 的 DNS 服务器,例如 Bind。在 CentOS 上安装 Bind:
sudo yum install bind bind-utils
-
配置 Bind 作为 DNS 服务器: 编辑 Bind 的配置文件
/etc/named.conf
,添加一个区域文件来指定 DHCP 客户端的动态更新。例如:include "/etc/named.conf.default-zones"; zone "example.com" { type master; file "/etc/named.db.example.com"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/named.db.192.168.1"; };
-
创建区域文件: 创建
example.com
区域文件/etc/named.db.example.com
:$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS ns1.example.com. ns1 IN A 192.168.1.1 host1 IN A 192.168.1.10
创建反向区域文件
/etc/named.db.192.168.1
:$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS ns1.example.com. 10 IN PTR host1.example.com.
-
启动并启用 Bind 服务: 启动 Bind 服务并设置为开机自启动:
sudo systemctl start named sudo systemctl enable named
-
配置 DHCP 服务器以发送 DDNS 更新: 编辑 DHCP 服务器的配置文件
/etc/dhcp/dhcpd.conf
,添加以下行来启用 DDNS 更新:option domain-name-servers 8.8.8.8, 8.8.4.4; option ddns-update-on-lease-renewal on; option ddns-update-on-lease-expiry on; option ddns-update-on-rebind on;
-
重启 DHCP 服务: 重启 DHCP 服务以应用更改:
sudo systemctl restart dhcpd
完成以上步骤后,你的 CentOS DHCP 服务器将能够实现动态 DNS 更新。当 DHCP 客户端获取或更新其租约时,它将自动向配置的 DNS 服务器发送更新。