
1/14/2026 · Sebastiaan Neuteboom
What this post added
This post details a critical incident where a memory optimization in the 1.1.1.1 cache implementation led to a change in CNAME record ordering within DNS responses. This change, which moved CNAME records to appear after A/AAAA records, broke specific DNS client implementations that expected CNAMEs to precede other records in the answer section. The post explains the technical details of the code change, the mechanism by which CNAME chains are resolved and cached, and the specific parsing logic in affected clients (glibc's getaddrinfo and Cisco's DNSC) that caused resolution failures and reboot loops. It also delves into the ambiguity of RFC 1034 regarding the order of records in DNS messages, contrasting it with the concept of RRsets where order is explicitly stated as insignificant. The post highlights the lack of specific tests for this ordering behavior and the challenges in defining a universally correct DNS response format.