Solutions Architect Intern · Technical Fundamentals

Amazon SA Intern:什么是 DNS?缓存、权威服务器与故障怎么讲?

按一次查询解释DNS分层解析,区分名称解析、网络连接和服务切换。

题目重点:按一次查询解释DNS分层解析,区分名称解析、网络连接和服务切换。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 题目只问什么是DNS,追问内容未公开;本文讲公共DNS基础,私有split-horizon与具体云产品配置另核。
  • 示例域名example.com为教学,不假定网站实际记录或DNS供应商;协议参考RFC1034。

解题路线

  1. DNS是分布式分层名称数据库,常用于名字到地址解析,也有MX/TXT/NS等记录;不要只说“URL转IP”,URL还包含scheme/path而DNS主要处理名称。
  2. 客户端stub交给recursive resolver,resolver利用缓存或按委派找根/TLD/权威服务器。权威答案与递归服务是不同角色,浏览器/OS缓存也会影响观察到的结果。
  3. A与AAAA分别是IPv4/IPv6地址记录,CNAME提供别名,NS参与委派。具体记录冲突/zone apex政策需按协议与供应商合同,不能随便在所有名字都放同样CNAME。
  4. TTL控制缓存寿命而非全网同步开关;切IP后旧缓存可能直到其寿命结束,客户端连接也可能继续用旧地址。NXDOMAIN的负缓存和SERVFAIL故障需分清,DNS成功并不证明目标网络/HTTP正常。
  5. 排错按输入名字/解析器/权威答案/TTL与缓存/返回地址分层,再查路由、端口、TLS/SNI与HTTP。不要因为应用打不开就直接改DNS,也不要ping失败当DNS失败。
  6. RFC基础参考https://datatracker.ietf.org/doc/html/rfc1034;后续DNSSEC/加密传输是额外主题,DNSSEC验证来源/完整性不等同隐藏查询内容。

手动走一遍

假设地址记录TTL300秒,一个resolver在t=0缓存旧地址,t=100权威改新地址;在无其他策略的训练模型下,它可继续到t=300用旧缓存。切换前降TTL还要等旧高TTL缓存过期,不能在切换瞬间改TTL就保证即时生效。

规模与取舍

查询次数随缓存命中与委派深度,端到端时延包含网络与失败重试;不把查询算法说成固定O(1)真实响应。缓存空间随名称/类型/TTL记录增长。

易错点与追问

容易失分的边界

  • DNS处理整个URL。
  • 权威与recursive同义。
  • TTL改了全网马上生效。
  • DNS解析成功等于服务可用。
  • DNSSEC等于传输加密。

继续深挖

  • NXDOMAIN与SERVFAIL怎样区分?
  • 为何同名不同网络返回不同地址?
  • 旧DNS缓存与旧TCP连接怎么分别排查?
  • A与AAAA都存在时客户端怎么选择?

技术参考

  • RFC1034 DNS:公开概念/机制参考,本文容量与故障案例自拟;不代表原面试系统。
✓已复制微信号!