📄 一句话概括
DNS 服务器按【名字+类别+类型】三件套查记录表,完全匹配才作答——A 记录换 IP、MX 记录换邮件服务器,不匹配不乱猜。
📝 本节和前面几节的关系
1.2 节从应用程序视角看完了查询;本篇视角切到 DNS 服务器——收到查询后它怎么干活。
一、手里一张表
DNS 服务器登记着它负责的域的记录: A 记录=名字对 IP;MX 记录=域对邮件服务器(带优先级)。 同一个名字可以同时挂 A 和 MX,各问各的。
二、完全匹配才答
收到的三件套和某条记录完全一致才作答; 对不上的,按 1.3.3 的接力去问别人,而不是瞎猜一个。
三、动手 Demo:DNS 服务器查表原则
两类记录的登记与回答对照:
print('%-18s %-34s %s' % ('类型','登记的是','回答的是'))
print('%-18s %-34s %s' % ('A','www.lab.glb.com = 172.20.1.1','IP'))
print('%-18s %-34s %s' % ('MX','@lab.glb.com -> mail...(10)','邮件服务器'))
实跑输出:
--------------------------------------------------------------------
DNS 服务器查表原则
--------------------------------------------------------------------
DNS 服务器收到的三件套和它手里的表:
查到的记录(类型) 表里登记的是 回答的是
------------------------------------------------------------------------------------
A www.lab.glb.com = 172.20.1.1 IP
MX @lab.glb.com -> mail.lab.glb.com(10) 邮件服务器 + 优先级
------------------------------------------------------------------------------------
同一个名字可以同时挂 A 和 MX 两条记录——
查网页和寄邮件各问各的,互不干扰。
服务器怎么答,全看【名字 + 类别 + 类型】三件套
是否和某条记录完全匹配——不匹配不乱猜。
MX 括号里的 10 是优先级——同域多台邮件服务器时, 数字小的先试;这是教材后文邮件章的伏笔。
30 秒实验
- 用 nslookup -type=a 和 -type=mx 查同一个域,对比返回。
- 查一个不存在的子域,看 DNS 怎么答(NXDOMAIN)。
- 想想为什么 DNS 服务器【不猜】——猜错的代价由谁付?
常见误区
- 以为 DNS 会模糊匹配——必须三件套完全一致。
- 以为一个名字只能有一种记录——A、MX、CNAME 可并存。
自测三问(点开对答案)
1. DNS 服务器作答的匹配条件是什么? —— 名字、类别、类型三件套完全匹配。 2. MX 记录返回的额外信息是什么? —— 优先级(数字小的先试)。 3. 对不上的查询怎么办? —— 走接力去问别的服务器,不乱猜。- ☐ 下一节(1.3.2 域名的层次结构)
相关笔记
- 寻找相应的DNS服务器并获取IP地址 —— 对不上时的接力
- 使用DNS自动获取IP地址(资源记录、DNS解析模块、递归查询) —— 资源记录细讲
- 🔌 网络是怎样连接的 · 索引