$TTL 86400
@ IN SOA ns.example.com. hostmaster.example.com. (
2024080900;serial
3600,refresh
1800;retry
604800;expire
86400 );minimum
@ IN NS ns.example.com.
ns IN A 192.168.10.10
server1 IN A 192.168.10.20
server2 IN A 192.168.10.21
example.com IN A 192.168.10.10
example.com IN MX mail.example.com.
mail IN A 192.168.10.30
CNAME:
wkshop IN CNAME server1.example.com.
dev IN CNAME server2.example.com.
$ORIGIN example.com.
$TTL 3600
@ IN SOA (
2024080900;
Serial
7200,Refresh
3600;Retry
1209600;Expire
3600 );Minimum
@ IN NS ns.example.com.
ns IN A 192 .168 .10 .10
server1 IN A 192 .168 .10 .20
server2 IN A 192 .168 .10 .21
www IN CNAME server1.
mail IN A 192 .168 .10 .30
`
bash
# 重启 BIND9
sudo systemctl restart bind9
`
痛点:- **DNS 未同步**:若 DNS 区域未及时更新,新添加的主机会出现“找不到服务器”的错误。- **CNAME 嵌套过深**:过度使用 CNAME 会导致解析链变长,增加响应延迟。
② 应用服务报错 “Could not resolve host”:确认对应服务所需的 FQDN 在 DNS 或 hosts 文件中已存在;其实,避免使用无效短名前缀。
③ 网络监控工具报 “Name resolution failure”:先跑 `dig @dns-server example.com` 检查响应;若无结果,则需要检查 zone 文件语法或 ACL 权限。
④ 多租户环境下同 IP 被多次分配:建议使用 DHCP‑DDNS 或静态分配表,以免产生冲突;老实说,定期核对 `/var/lib/dhcp/dhcpd.leases` 与 DNS 区域文件一致性。
⑤ SSL/TLS 握手失败:“certificate does not match host name”:确保证书 Subject Alternative Name 包含所有 FQDN,而且 `ServerName` 与 `ServerAlias` 配置一致。
* 快速诊断脚本片段 *
# 检测指定主机是否能被解析为期望 IP
check_host {
local host=$1 target_ip=$2
resolved=$
if ];n
echo " $host resolves to $resolved">&2
else
echo " $host resolves to $resolved。expected $target_ip">&2
fi
}
check_host server1.example.com "192\.168\.10\.20"
$TTL 86400
@ IN SOA ns.example.com. hostmaster.example.com. (
2024080900;serial
3600,refresh
1800;retry
604800;expire
86400 );minimum
@ IN NS ns.example.com.
ns IN A 192.168.10.10
server1 IN A 192.168.10.20
server2 IN A 192.168.10.21
example.com IN A 192.168.10.10
example.com IN MX mail.example.com.
mail IN A 192.168.10.30
CNAME:
wkshop IN CNAME server1.example.com.
dev IN CNAME server2.example.com.
$ORIGIN example.com.
$TTL 3600
@ IN SOA (
2024080900;
Serial
7200,Refresh
3600;Retry
1209600;Expire
3600 );Minimum
@ IN NS ns.example.com.
ns IN A 192 .168 .10 .10
server1 IN A 192 .168 .10 .20
server2 IN A 192 .168 .10 .21
www IN CNAME server1.
mail IN A 192 .168 .10 .30
`
bash
# 重启 BIND9
sudo systemctl restart bind9
`
痛点:- **DNS 未同步**:若 DNS 区域未及时更新,新添加的主机会出现“找不到服务器”的错误。- **CNAME 嵌套过深**:过度使用 CNAME 会导致解析链变长,增加响应延迟。
② 应用服务报错 “Could not resolve host”:确认对应服务所需的 FQDN 在 DNS 或 hosts 文件中已存在;其实,避免使用无效短名前缀。
③ 网络监控工具报 “Name resolution failure”:先跑 `dig @dns-server example.com` 检查响应;若无结果,则需要检查 zone 文件语法或 ACL 权限。
④ 多租户环境下同 IP 被多次分配:建议使用 DHCP‑DDNS 或静态分配表,以免产生冲突;老实说,定期核对 `/var/lib/dhcp/dhcpd.leases` 与 DNS 区域文件一致性。
⑤ SSL/TLS 握手失败:“certificate does not match host name”:确保证书 Subject Alternative Name 包含所有 FQDN,而且 `ServerName` 与 `ServerAlias` 配置一致。
* 快速诊断脚本片段 *
# 检测指定主机是否能被解析为期望 IP
check_host {
local host=$1 target_ip=$2
resolved=$
if ];n
echo " $host resolves to $resolved">&2
else
echo " $host resolves to $resolved。expected $target_ip">&2
fi
}
check_host server1.example.com "192\.168\.10\.20"