
如果您想在您拥有的域名下运行您自己的名称服务器 — 例如 ns1.yourdomain.com — 您会遇到经典的"先有鸡还是先有蛋"问题。要解析 yourdomain.com,解析器需要 ns1.yourdomain.com 的 IP。但 ns1.yourdomain.com 正好在要被解析的域名下。胶水记录的存在就是为了打破这种循环依赖。
什么是胶水记录?
胶水记录是存储在注册商或父级区域中的 A(或 AAAA)记录,而不是在域名的自有区域文件中。这样解析器可以在成功解析名称服务器所属的域名之前学习名称服务器的 IP 地址,从而打破循环依赖。
胶水记录有时也被称为"子名称服务器"记录或"域内 NS"记录,因为名称服务器子域位于同一域名内(在该域名的"范围内")。
为什么需要胶水记录?
假设您想让 yourdomain.com 使用名为 ns1.yourdomain.com 和 ns2.yourdomain.com 的名称服务器 — 无论是出于品牌考虑还是在您自己的 VPS 上自托管 DNS:
- 解析器向注册表询问哪些名称服务器服务
yourdomain.com - 注册表回答:
ns1.yourdomain.com和ns2.yourdomain.com - 解析器需要
ns1.yourdomain.com的 IP — 但该主机名位于yourdomain.com下,而它还无法解析! - 循环依赖 — 解析完全失败
胶水记录通过让注册表将 ns1 和 ns2 的 IP 地址直接存储在其自有数据库中来解决这个问题。当解析器询问名称服务器时,注册表同时返回主机名和 IP 地址。
如何设置胶水记录
步骤 1 — 在您的服务器上配置 DNS 服务器软件
首先,在您的 VPS 上安装 DNS 服务器软件,例如 BIND、PowerDNS 或 Knot DNS,并为您的域名配置区域文件。
步骤 2 — 在注册商处注册子名称服务器
登录到您的注册商(如 AsiaGB)的域名管理面板,找到"子名称服务器"或"主机记录"部分。输入:
- 主机名:
ns1(不带.yourdomain.com后缀) - IP 地址:您的服务器 IP,例如
203.0.113.10
使用不同的 IP 地址对 ns2 重复此操作。强烈建议至少有两个名称服务器以实现冗余。
步骤 3 — 将域名的 NS 指向 ns1.yourdomain.com
保存胶水记录后,更新域名的名称服务器为 ns1.yourdomain.com 和 ns2.yourdomain.com。等待 24–48 小时以实现完全 DNS 传播。
注意: 胶水记录仅在名称服务器主机名是所服务域名的子域(域内)时才需要。如果您使用来自其他提供商的名称服务器,例如 ns1.someotherprovider.com,则不需要胶水记录,因为 someotherprovider.com 可以独立解析。
胶水记录的真实用例
- 网络托管提供商 — 像 AsiaGB 这样的提供商使用胶水记录,以便客户可以将 NS 指向 ns1.asiagb.com 和 ns2.asiagb.com
- 白标 DNS — 希望拥有品牌名称服务器(如 ns1.yourbrand.com)的经销商
- 自托管 DNS — 在自己的 VPS 上运行 BIND 的开发人员或系统管理员
- 任播 DNS — 拥有全球分布式节点的大型 DNS 提供商
验证您的胶水记录
使用此命令确认胶水记录已正确注册:
dig +additional NS yourdomain.com @a.iana-servers.net
输出的 Additional 部分应显示 ns1 和 ns2 的 IP 地址以及 NS 记录。
胶水记录与 DNSSEC — 您需要了解的内容
如果您的域名使用 DNSSEC(域名系统安全扩展),在设置域内胶水记录时需要额外注意。DNSSEC 依赖从根区延伸到您域名的信任链。当您运行自己的名称服务器时,您将成为该链中的一环,必须正确管理。
将胶水记录与 DNSSEC 结合使用时的关键步骤:
- DS 记录(委派签名者) — 您必须将 DNSSEC 签名密钥的 DS 记录提交给注册商,以便父区域能够签署委派并完成信任链。
- 区域文件中的 DNSKEY — 您的名称服务器提供的区域必须包含与注册商处提交的 DS 记录匹配的 DNSKEY 记录。
- 密钥轮换时机 — 轮换 DNSSEC 密钥时,请在旧密钥到期前更新注册商处的 DS 记录。否则,启用 DNSSEC 验证的解析器将收到 SERVFAIL 错误。
如果您的使用场景不需要这种级别的安全管理,使用注册商或托管提供商的名称服务器(如 AsiaGB 的名称服务器)可自动处理 DNSSEC。
配置胶水记录的常见错误
尽管概念上比较直观,胶水记录仍然是常见的配置错误来源。以下是最常遇到的错误及如何避免:
| 错误 | 影响 | 解决方法 |
|---|---|---|
| 区域文件中缺少 A 记录 | 解析器获得胶水 IP 但无法连接到名称服务器 | 在区域文件中也为 ns1/ns2 添加 A 记录 |
| 胶水 IP 与实际 DNS 服务器不匹配 | 所有查询超时 | 每次迁移服务器时都要在注册商处更新胶水记录 |
| 只注册了一个名称服务器 | 任何故障都会导致域名完全无法访问 | 始终在不同 IP 或网络上注册至少两条 NS 记录 |
| 在胶水记录传播之前切换 NS | 域名在 24–48 小时内无法解析 | 先用 dig 验证胶水记录,再将域名的 NS 指向新服务器 |
胶水记录与 Anycast DNS — 高级架构
大型 DNS 运营商将胶水记录与 Anycast 路由相结合,从全球多个节点提供相同的名称服务器 IP。BGP 路由将每个查询引导至最近的可用节点,在不更改注册在胶水记录中的 IP 的情况下降低延迟。
简化的 Anycast DNS 拓扑示意:
- 曼谷、新加坡和东京的节点 — 全部宣告相同的 IP,例如
192.0.2.53 - 注册商处的胶水记录将
192.0.2.53记录为ns1.yourdomain.com - 泰国用户连接到曼谷节点 — 延迟低于 5ms
- 日本用户连接到东京节点 — 同样低延迟
当您需要全球 DNS 延迟低于 20ms 时,这种架构非常值得。对于一般网站,两条胶水记录指向位于不同数据中心的两台 VPS 实例,即可提供足够的冗余,而无需 Anycast 的复杂性。
How TTL Affects Glue Record Changes
Time To Live (TTL) determines how long resolvers cache a DNS response. When you need to change a Glue Record — for example, moving to a new server IP — TTL governs how long the old value will be served from caches around the world.
Best practices for managing TTL around Glue Record changes:
- Lower the TTL in advance — At least 48 hours before a planned IP change, reduce the existing record's TTL to 300 seconds (5 minutes). This shortens the propagation window once you make the actual change.
- Make the change, then wait — After updating the Glue IP at your registrar, wait one full original-TTL period before decommissioning the old server to serve any stragglers hitting the cached IP.
- Raise TTL again afterward — Once the change has fully propagated, raise the TTL back to 3600 or higher to reduce query load on your nameservers.
Note that Glue Record TTL is controlled by the registry, not your zone file. Check your registrar's documentation for the default TTL they apply, as it often ranges from 172800 seconds (48 hours) to 86400 seconds (24 hours).
Register a Domain with Custom Nameserver Support
AsiaGB supports Child Nameserver (Glue Record) configuration for all domains registered through us. Register a .com domain for just 500 THB/year.
Register a Domain