Linux命令:dig
dig命令,其中 ip 代表 IP地址; address 代表 域名
- -x
ip
# 用于查询PTR
记录 (Pointer Record, A记录的逆向记录),PTR
记录用于从IP地址反查域名; - mx|ns|a
address
# 单独查看每一级域名的NS记录 A记录 MX记录; - +short
address
# 显示简化的结果; - +trace
address
# 显示DNS的整个分级查询过程; - @4.2.2.2
address
# 指定向DNS服务器4.2.2.2
查询;
域名知识:DNS 记录类型 DNS RECORD TYPES:
Following is a list of some dns record types.
MX – The mail exchange record contains some mail exchange servers for a domain.
CNAME – The canonical name type is used to connect new subdomains to primary domain’s records.
SOA – State of Authority (SOA) record keeps information like version of the data file and when a domain was updated etc.
NS – The name severs record have the name server details against a domain name.
SRV – The service record type has TCP service information.
PTR – The pointer record handles ipv4 address and maps it to the CNAME.
A – The DNS A record indicates the IP address of a domain.
AAAA – The record handles IPV6 address.
记录类型:
- A记录:对应记录值必须是ip地址;
- CNAME:域名解析到域名,不能是ip地址,可以理解为转发;
- MX:邮箱服务器,具体服务商,比如腾讯会告诉你,类似与NS;
- NS:DNS服务器解析地址,通常由域名服务方提供;也可以自己加;
- AAA:对应ipv6地址,功能同A记录;
- SOA:用于在众多NS记录中,选择哪一台作为主域名解析服务器
- TTL(存活次数/跳跃次数):经过路由器跳转,通常会消耗不到一秒的时间,但规定,经过一次路由,扣除一秒,所以通过TTL能判断多个DNS,哪个离你最近;如果在到达你之前扣到0,数据包就会被取消;服务器IP地址不常动,设置TTL较长好;经常变动,比如测试的时候,设置TTL较短好;通常设置默认的一小时,就够了;
主机记录(也叫 host):
- www:解析后为 www.example.com
- @:直接解析主域名 example.com
- *:泛解析,匹配其他所有域名 *.example.com
- mail:解析后为 email.example.com
- 手机网站:例如m.example.com 填写 m
- 二级域名:例如abc.example.com 填写 abc
域名的树状结构
- 根域名 (“
.
”, 所有域名都是相同的,所以就省略不写了): 根域名服务器全世界一共有13台(都是服务器集群) IP 地址不变集成在操作系统里 - 顶级域名 (“
TLD
”, top-level domain): 分成两种:通用顶级域名 (gTLD)、国别顶级域名 (ccTLD) - 一级域名: 域名商处购买
- 二级域名: 域名拥有者可自行设置, 无需许可
- 树状结构
只有上级域名,才知道下一级域名的 IP 地址,需要逐级查询
每一级域名都有自己的 DNS 服务器,存放下级域名的 IP 地址
逐步查询可使用
dig @dns_ip_address subdomain.domain.com
命令进行实验
- 递归 DNS 服务器
上面的每层服务器只能查询下一级域名的 IP 地址, 而存在8.8.8.8 这样的DNS服务器可以查询过程自动化, 一次性得到结果. 被称为递归 DNS 服务器 (recursive DNS server)