悟夕导航

【TCP/IP 教程·第六弹】《DNS:电话簿、指路牌和骗子广告的三体世界》

59 0 0
上回宿管阿姨 DHCP 刚发完房卡,今天聊“电话簿”DNS。
它能把 www.bilibili.com 翻译成 120.92.78.97,也能把你骗去“澳门皇家赌场”。
根域、顶级域、缓存、投毒、CDN 调度……比三体还黑暗森林。

1. 人类友好 vs 路由友好

人脑:www.bilibili.com
路由:120.92.78.97
DNS 就是实时翻译官,1 秒查 100 次,全年无休。
没有它,你得背 3000 个 IP 才能冲浪,堪比背圆周率后 1000 位。


2. 域名结构:从右往左读,宇宙级树状图

.(根)
└── com.(顶级域 TLD)
    └── bilibili.(二级域)
        └── www.(主机名)
注意最后的小黑点“.”,平时被浏览器省略,
但抓包里能看见,它是“宇宙尽头”——根域。

3. 递归 vs 迭代:谁帮谁跑腿

  • 递归(客户端→本地 DNS)
    “老哥,给我 www.bilibili.com 的 A 记录,别的你别管!”
  • 迭代(本地 DNS→根→顶级→权威)
    根:“去问 com.”
    com:“去问 bilibili.”
    bilibili:“www 是 120.92.78.97,拿好。”
本地 DNS 像包工头,跑断腿帮你一站式拿 IP;
客户端只发 1 次请求,就能躺平。

4. 一次完整查询的 7 张明信片

  1. 客户端 → 本地 DNS:递归查询 www.bilibili.com
  2. 本地 DNS → 根(.):“com 去哪?”
  3. 根 → 本地 DNS:“com 在 192.12.36.4”
  4. 本地 DNS → com 服务器:“bilibili 呢?”
  5. com → 本地 DNS:“ns1.bilibili.net 119.29.29.29”
  6. 本地 DNS → 权威 DNS:“www 的 A 记录?”
  7. 权威 → 本地 DNS:“120.92.78.97”
    本地 DNS 回给客户端,并缓存 300 秒。

    全程 UDP 53 端口,丢包就重传,比外卖简单。

5. 缓存 = 本地小黑板

  • 浏览器缓存 1 min(Chrome 看 chrome://net-internals/#dns)
  • OS 缓存 5 min(Windows ipconfig /displaydns
  • 本地 DNS 缓存 5 min–24 h(TTL 决定)
TTL 越短,实时性越高,老板钱包越瘪(CDN 流量费)。
所以刷票软件把 TTL 改成 30 秒,权威服务器当场哭。

6. 记录类型:电话簿里的便利贴

类型作用示例
A域名→IPv4www → 120.92.78.97
AAAA域名→IPv6www → 2400:89c0:1::
CNAME域名别名img.bilibili → ali.cdn.com
MX邮件交换@bilibili → mx1.qq.com
TXT文本验证用于 SPF、DKIM、Google 验证
NS权威服务器bilibili → ns1.bilibili.net
PTRIP→域名97.78.92.120 → www.bilibili.com

7. CDN 调度:DNS 的“地图导航”

同样的 www.baidu.com,
北京用户拿到 61.135.169.121,
广州用户拿到 14.215.177.38。

权威 DNS 根据本地 DNS 的源 IP(EDNS Client Subnet)判断用户位置,
返回最近节点,实现“就近上厕所”。

8. 投毒与劫持:电话簿被撕页

  • 本地 hosts 篡改
    360 全家桶把 www.2345.com 指向 127.0.0.1,假装“屏蔽”。
  • ISP 缓存污染
    你输 www.google.com,返回 203.98.7.65(澳门赌场)。
  • Kaminsky 攻击
    伪造迭代应答,把 *.com 全部指到黑客服务器。

    2008 年 Kaminsky 公布漏洞,全球根服务器连夜打补丁。

9. 安全加固 4 件套

技术说明
DNSSEC给记录加数字签名,防篡改
DoT/DoHDNS over TLS/HTTPS,防中间人
本地 DNS 白名单企业禁止访问未知域名
加密 SNI/ESNI隐藏访问的域名,防审查
浏览器开 DoH 后, Wireshark 再也看不到明文网址,
抓包党当场失业,只能回去看 ARP。

10. 排查口诀

能 QQ 不能网页?先怼 DNS。
nslookup 看返回,dig 追迭代。
TTL 太长等缓存,TTL 太短炸权威。
hosts 先查,再查缓存,最后看迭代。
EDNS 不带客户端 IP?CDN 把你扔北京。

下集预告

第七弹《Ping & Traceroute:网络界的“雷达”与“高德”》

  • Ping 怎么算丢包?
  • Traceroute 用 ICMP 还是 UDP?
  • 为什么第 3 跳 *,第 4 跳又出现?
  • “海底光缆断了, traceroute 会显示什么?”

关注不迷路,下回继续发射探测脉冲!

0
快来点个赞吧

发表评论

隐私评论

评论列表

来写一个评论吧