CoreDNS Deep Dive
summary
Tests use CoreDNS with the erratic plugin inside Docker to truncate every third UDP reply and a small Go client to run net.LookupHost; glibc retries truncated answers over TCP and honors EDNS0 buffer increases, Go also falls back to TCP, while musl ignores TCP and stays stuck on UDP so AAAA lookups can fail. Using Kubernetes resolv.conf with ndots=5 causes many extra queries (up to 6×); CoreDNS autopath reduces that. Recommendation: prefer Debian-slim or static Go binaries and use fully qualified names with a trailing dot.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 1:44Stub-resolver basics
- 3:06Testing stub-resolvers with CoreDNS
- 6:37RFC TCP requirements
- 8:44resolv.conf format
- 11:56libc implementations comparison
- 14:00ndots impact on Kubernetes DNS
- 17:16FQDN importance
- 19:00OS choice for Docker
- 21:24DNS dot handling issues
- 22:48DNSSEC and local caching
- 24:16CoreDNS Go migration
- 25:41Go DNS socket usage
- 26:44Linux race conditions in DNS








