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 编码规则