30 lines
1.5 KiB
Markdown
30 lines
1.5 KiB
Markdown
# DNS 声明与权威边界
|
|
|
|
`records.yml` 是 homelab DNS 的唯一声明清单,但不是 DNS 服务本身。不同视图仍由最适合
|
|
它们的后端提供:
|
|
|
|
| 视图 | 权威或递归服务 | 配置方式 |
|
|
|---|---|---|
|
|
| 公网 `ddupan.top` | Cloudflare | Terraform;尚待完整导入已有记录 |
|
|
| AD `ad.ddupan.top` | Samba internal DNS | `samba_dns_record` Ansible module |
|
|
| LAN split horizon | Blocky | 尚待从 inventory 渲染或校验 |
|
|
| Kubernetes Pod split horizon | CoreDNS | 尚待从 inventory 渲染或校验 |
|
|
|
|
## 安全边界
|
|
|
|
- Samba module 只管理 `homelab_dns.samba.records` 明确列出的 RRset,不遍历或清理 zone。
|
|
- `_ldap`、`_kerberos`、域控制器 locator 等由 Samba 自动维护的记录不进入 inventory。
|
|
- 一个受管 RRset 默认使用 `exact: true`:同名同类型的额外值会被删除,但其他名称和类型
|
|
不受影响。
|
|
- DHCP 切换不属于本阶段。Blocky 仍未成为 LAN 客户端的正式 resolver。
|
|
|
|
## 分阶段接管
|
|
|
|
1. 用 Samba module 接管现有静态 A RRset,首次 check mode 应为零变更。
|
|
2. 将 Cloudflare 已有 tunnel DNS 记录导入 Terraform state。
|
|
3. 让 Blocky 与 CoreDNS 从 `split_horizon.records` 生成配置或执行 CI 一致性检查。
|
|
4. 验证公网、LAN、Pod、AD 四个视图后,再单独修改 DHCP。
|
|
|
|
当前 inventory 已明确暴露一个既有差异:`obj.ddupan.top` 在 Blocky 中存在,但 CoreDNS
|
|
尚无对应覆盖。本阶段不会偷偷修复它;后续在两个 resolver 同时接管时统一修复。
|