1、DNS的概念
一个用于将人类可读的“域名”(例如 www.taohui.pub)与服务器的IP地 址(例如 116.62.160.193)进行映射的数据库 • 递归查询 • 根域名服务器 • 权威服务器DNS域名结构
递归查询
DNS报文:查询与响应
• query:查询域名 • response:返回 IP 地址dig 工具查询
linux服务器下安装dig:
yum -y install bind-utils
dig image.baidu.com ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> image.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25563 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;image.baidu.com. IN A ;; ANSWER SECTION: image.baidu.com. 1041 IN CNAME image.n.shifen.com. image.n.shifen.com. 23 IN A 112.80.248.122 ;; Query time: 0 msec ;; SERVER: 100.100.2.136#53(100.100.2.136) ;; WHEN: Thu Mar 10 23:43:29 CST 2022 ;; MSG SIZE rcvd: 81
DNS报文
Questions 格式
QNAME 编码规则: • 以.分隔为多段,每段以字节数打头 • 单字节,前 2 比特必须为 00,只能表示2^6-1=63 字节 • 在 ASCII 编码每段字符 • 以 0 结尾 • QTYPE 常用类型
Answer 格式
• NAME:前 2 位为 11,接引用 QNAME 偏移 • 在 DNS 头部的字符偏移数 • TTL:Time To Live • RDLENGTH:指明 RDATA 的长度 • RDATA:查询值,如 IP 地址,或者别名 • 别名遵循 QNAME 编码规则



