IETF 108 与 110 的技术深度探讨揭示了 DNS 协议中多个长期存在的认知偏差,核心在于协议早期文档假设的共享知识与现代大规模部署之间的落差,导致 TXT 记录滥用、RRset 语义误解等问题频发。
协议演进与“DNS 骆驼”效应
DNS 诞生于 30 多年前的小圈子协作环境,早期 RFC 文档细节疏松、默认读者具备共同背景。随着新 RFC 爆发式增长(社区称“DNS 骆驼”,意指压垮骆驼的最后一根稻草),原本像国际象棋般规则简单却衍生复杂的系统,暴露出大量未被明确定义的边界条件,野卡处理等章节即是典型。
TXT 记录滥用与 RRset 不可分割性
众多技术受 IETF 文档影响,将 TXT 记录作为通用数据载体。DNS 不限制同一名称下的 TXT 记录数量,任意应用均可追加自定义格式的 TXT 记录。但协议定义 Resource Record Set(RRset)为同类型记录的不可分割集合:查询某名称下的 TXT 记录时,权威服务器必须返回该名称下的全部 TXT 记录,客户端需自行过滤无关条目,由此带来响应体积膨胀与解析延迟。
“万物入 DNS”的规模化代价
DNS 的普遍部署与看似无限的扩展性,诱导开发者将部署障碍通过“塞进 DNS”绕过。当多个独立应用共享同一域名的 TXT RRset 时,查询响应包含所有应用的记录,导致带宽浪费、解析器缓存污染、客户端解析逻辑复杂化。原文未给出具体量化数据,但机制上已埋下性能与安全隐患。
对运维与网络工程师而言,理解 RRset 原子性与 TXT 记录的非隔离性,是避免误用 DNS 作为通用键值存储的前提。新增记录类型或采用专用子域名分离业务,比在同一 RRset 持续堆叠 TXT 更符合协议设计初衷,也能降低递归解析压力与故障域半径。
原文: APNIC Blog(2021-03-11)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog