DHCP 选项集是什么
VPC 内的实例默认通过 DHCP 从平台拿到内网 DNS 地址,因此内网域名解析天然可用。如果业务要用自建 DNS(AD 域控、内部权威服务器、自建递归解析),就需要创建 DHCP 选项集并绑定 VPC:把下发给实例的 DNS 地址替换成自定义地址,实例续租后统一生效。它的价值在于「集中下发」——不用逐台改 /etc/resolv.conf,也不用担心重装系统后配置丢失。
基本信息
| 作用 | 把实例通过 DHCP 获得的 DNS 地址替换为自建 DNS 地址 |
|---|---|
| 绑定层级 | 选项集绑定到 VPC,对 VPC 内启用 DHCP 的实例生效 |
| 生效方式 | 实例续租 DHCP,或重启网络/实例后生效 |
| 前提条件 | 自建 DNS 与实例内网互通,并放行 53/UDP 与 53/TCP |
| 不生效的情况 | 实例里手工静态写死的 DNS 不会被覆盖 |
| 支持范围 | 通常一个 VPC 关联一个选项集,按产品支持情况确定 |
典型使用场景
- 接入 AD 域控:域内主机需要把域名查询交给域控完成
- 统一使用自建递归 DNS,便于集中日志审计与流量分析
- 迁移期灰度:部分 VPC 先切换到自建 DNS,验证后再推广
- 多 VPC 统一解析策略,避免各环境 DNS 配置漂移
- 内网域名与公网域名混合解析,借助自建 DNS 做分流
生效与排查
| 检查项 | 正常表现 | 异常表现 |
|---|---|---|
| 选项集绑定 | VPC 已关联选项集 | 未绑定,实例仍拿平台 DNS |
| 实际解析配置 | 实例内看到的 DNS 为自定义地址 | 仍是平台内网 DNS,说明未续租或未生效 |
| 网络连通 | 到自建 DNS 的 53 端口可通 | 解析超时,应用启动慢 |
| 解析结果 | 内网域名解析正确 | 解析到公网地址或返回失败 |
| 重装验证 | 新实例自动获得自定义 DNS | 重装后回退到默认 DNS,说明只做了本地改动 |
验证是否生效
验证是否生效
cat /etc/resolv.conf # 应看到自定义 DNS 地址
sudo dhclient -r eth0 && sudo dhclient eth0 # 手动续租(可选)
dig @10.0.0.53 internal.example.com +short # 直连自建 DNS 解析内网域名
nc -vzu 10.0.0.53 53 # UDP 53 连通性
nc -vz 10.0.0.53 53 # TCP 53 连通性
# Windows 侧:ipconfig /all 看 DNS 服务器,ipconfig /renew 重新获取切换 DNS 前先确认自建 DNS 能完整转发公网域名,否则会引发大范围解析失败:内网域名通了,公网域名却全挂,业务影响面比预期大得多。
排查「为什么改了没生效」时先看两件事:实例是否重新获取过 DHCP 租约,以及实例内的 DNS 是不是被手工固定过(部分镜像或编排模板会写死)。只改实例不配选项集,重建实例后配置就会丢失。