首页 > 其他分享 >dig 命令详解及使用示例

dig 命令详解及使用示例

时间:2024-07-02 18:08:34浏览次数:1  
标签:示例 root dig servers 详解 DNS net NS com

一、背景知识

CNAME

CNAME 是 Canonical Name 的缩写,它是 DNS(域名系统)记录的一种类型。CNAME 记录用于将一个域名映射(别名)到另一个域名。换句话说,当你访问一个设置了 CNAME 记录的域名时,你实际上被重定向到了另一个域名。

例如,假设你有一个域名 www.baidu.com,你想让用户通过 example.com 访问你的网站。你可以为 example.com 设置一个 CNAME 记录,将其映射到 www.baidu.com。这样,当用户访问 example.com 时,他们实际上访问的是 www.baidu.com

CNAME 记录在以下情况下非常有用:

  • 当你希望多个域名解析到同一个 IP 地址时。
  • 当你的域名托管在第三方服务(如 GitHub Pages 或 Heroku)并且该服务可能更改其 IP 地址时。

注意,CNAME 记录不能与任何其他数据共享同一个名称。也就是说,如果一个域名有 CNAME 记录,那么它不能有其他类型的记录(如 A 记录或 MX 记录)。

A 记录

A 记录是“地址记录”的缩写,它用于将域名映射到一个 IPv4 地址。当你在浏览器中输入一个网址时,浏览器首先会查找该网址对应的 A 记录,以获取网站的实际 IP 地址。例如,如果你有一个域名 example.com,并且你希望它指向你的服务器 IP 地址(如 192.0.2.1),你就需要为 example.com 设置一个 A 记录,指向 192.0.2.1。

AAAA 记录

AAAA 记录与 A 记录类似,但它用于将域名映射到 IPv6 地址,而不是 IPv4 地址。IPv6 是一个新的 IP 地址版本,提供了更多的可用地址。例如,如果你的服务器有一个 IPv6 地址(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334),并且你希望你的域名 example.com 指向这个地址,你就需要为 example.com 设置一个 AAAA 记录,指向这个 IPv6 地址。

MX 记录

MX 记录是“邮件交换记录”的缩写,它用于指定处理一个域名的邮件服务的服务器。例如,如果你有一个域名 example.com,并且你希望所有发送到 @example.com 的邮件都被送到一个特定的邮件服务器(如 mail.example.com),你就需要为 example.com 设置一个 MX 记录,指向 mail.example.com。

NS 记录

NS 记录是"Name Server 记录"的缩写,它指定了托管特定域名的 DNS 服务器。换句话说,NS 记录告诉互联网哪些 DNS 服务器被授权为特定域名的官方服务器。例如,如果你的域名是 example.com,并且你的 DNS 服务提供商是 dnsprovider.com,那么你的 NS 记录可能会指向 ns1.dnsprovider.com 和 ns2.dnsprovider.com。

二、DNS 解析过程

DNS(Domain Name System)解析过程是一个将域名解析为 IP 地址的过程。以下是 DNS 完整的解析过程:

(1)本地解析

用户在浏览器中输入一个 URL,如 <www.baidu.com> ,首先,计算机会在本地的 hosts 文件中查找是否有该域名与 IP 地址的映射关系,如果有,则直接访问对应的 IP 地址。

(2)浏览器缓存

如果本地 hosts 文件中没有找到,浏览器会查找自己的 DNS 缓存(浏览器会缓存一些 DNS 记录),看是否有对应的 DNS 记录。

(3)系统缓存

如果浏览器缓存中也没有找到,操作系统会查找自己的 DNS 缓存,看是否有对应的 DNS 记录。

(4)路由器缓存

如果系统缓存中也没有找到,计算机会向本地路由器发送一个 DNS 查询请求,看路由器是否有对应的 DNS 记录。

(5)ISP DNS 服务器

如果路由器中也没有找到,计算机会向 ISP 的 DNS 服务器发送一个 DNS 查询请求,看 ISP 的 DNS 服务器是否有对应的 DNS 记录。

(6)根域名服务器

如果 ISP 的 DNS 服务器中也没有找到,ISP 的 DNS 服务器会向根域名服务器发送一个 DNS 查询请求。

(7)顶级域名服务器

根域名服务器收到请求后,会返回一个顶级域名服务器(TLD)的地址。ISP 的 DNS 服务器收到这个地址后,会向 TLD 发送查询请求。

(8)权威 DNS 服务器

顶级域名服务器收到请求后,会返回对应的权威 DNS 服务器的地址。ISP 的 DNS 服务器收到这个地址后,会向权威 DNS 服务器发送查询请求。

(9)获取 IP 地址

权威 DNS 服务器收到请求后,会返回对应的 IP 地址。ISP 的 DNS 服务器收到这个 IP 地址后,会将其返回给计算机,计算机就可以通过这个 IP 地址访问目标网站。

(10)缓存 IP 地址

在这个过程中,每个参与 DNS 查询的 DNS 服务器,都会将查询结果缓存一段时间。这样,下次查询同一个域名时,就可以直接返回结果,加快解析速度。

三、dig 命令

功能简介

用于查询 DNS 名称服务器以获取有关网络主机的信息。

配置参数

dig(选项)(参数)

@<服务器地址>:指定进行域名解析的域名服务器;
-b<ip 地址>:当主机具有多个 IP 地址,指定使用本机的哪个 IP 地址向域名服务器发送域名查询请求;
-f<文件名称>:指定 dig 以批处理的方式运行,指定的文件中保存着需要批处理查询的 DNS 任务信息;
-P:指定域名服务器所使用端口号;
-t<类型>:指定要查询的 DNS 数据类型,含 A、MX 记录。
-x<IP 地址>:执行逆向域名查询;
-4:使用 IPv4;
-6:使用 IPv6;
-h:显示指令帮助信息。

常见用法

(1)常规用法,不加任何参数

dig www.baidu.com

(2)+noall+answer:这两个选项通常一起使用,用于只显示查询的答案部分,不显示其他信息。

dig www.baidu.com +noall +answer

(3)+trace:这个选项用于显示查询的详细过程,可以用来跟踪 DNS 解析的路径。

dig www.baidu.com +trace

结果详解

(1)常规查询

root@41:/home/chow# dig www.baidu.com

; <<>> DiG 9.16.1-Ubuntu <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16579 
;; flags: qr rd ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		0	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	0	IN	A	110.242.68.3
www.a.shifen.com.	0	IN	A	110.242.68.4

;; Query time: 0 msec
;; SERVER: 172.21.96.1#53(172.21.96.1)
;; WHEN: Mon Jul 01 20:14:48 CST 2024
;; MSG SIZE  rcvd: 122

结果说明:

  1. HEADER 部分opcode: QUERY表示这是一个查询操作,status: NOERROR表示查询没有出错,id: 16579是这个查询的唯一标识。

  2. flags 部分qr表示这是一个查询响应,rd表示请求递归查询,ad表示在响应中包含了验证数据。QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0表示这个查询请求了 1 个问题,得到了 3 个答案,没有权威记录和额外记录。

  3. WARNING 部分:这部分表示尽管请求了递归查询,但是服务器并没有提供递归查询。

  4. QUESTION 部分:这部分显示了查询的问题,这里是查询www.baidu.com的 A 记录。

  5. ANSWER 部分:这部分显示了查询的答案。www.baidu.com的 CNAME 记录是www.a.shifen.com,然后www.a.shifen.com的 A 记录是110.242.68.3110.242.68.4

  6. Query time 部分:这部分显示了查询的时间,这里是 0 毫秒。

  7. SERVER 部分:这部分显示了进行查询的 DNS 服务器的地址,这里是172.21.96.1#53

  8. WHEN 部分:这部分显示了查询操作的时间,这里是 2024 年 7 月 1 日 20:14:48。

  9. MSG SIZE 部分:这部分显示了接收到的消息大小,这里是 122 字节。

总的来说,这个查询的结果表示www.baidu.com实际上是www.a.shifen.com,其 IP 地址是110.242.68.3110.242.68.4

(2)trace 路径追踪

root@chow:/home/chow# dig www.baidu.com +trace

; <<>> DiG 9.16.1-Ubuntu <<>> www.baidu.com +trace
;; global options: +cmd
.			0	IN	NS	l.root-servers.net.
.			0	IN	NS	b.root-servers.net.
.			0	IN	NS	d.root-servers.net.
.			0	IN	NS	j.root-servers.net.
.			0	IN	NS	k.root-servers.net.
.			0	IN	NS	i.root-servers.net.
.			0	IN	NS	f.root-servers.net.
.			0	IN	NS	e.root-servers.net.
.			0	IN	NS	a.root-servers.net.
.			0	IN	NS	g.root-servers.net.
.			0	IN	NS	c.root-servers.net.
.			0	IN	NS	h.root-servers.net.
.			0	IN	NS	m.root-servers.net.
l.root-servers.net.	0	IN	A	199.7.83.42
l.root-servers.net.	0	IN	AAAA	2001:500:9f::42
b.root-servers.net.	0	IN	A	170.247.170.2
b.root-servers.net.	0	IN	AAAA	2801:1b8:10::b
d.root-servers.net.	0	IN	A	199.7.91.13
d.root-servers.net.	0	IN	AAAA	2001:500:2d::d
j.root-servers.net.	0	IN	A	192.58.128.30
j.root-servers.net.	0	IN	AAAA	2001:503:c27::2:30
k.root-servers.net.	0	IN	A	193.0.14.129
k.root-servers.net.	0	IN	AAAA	2001:7fd::1
i.root-servers.net.	0	IN	A	192.36.148.17
i.root-servers.net.	0	IN	AAAA	2001:7fe::53
;; Received 804 bytes from 172.21.96.1#53(172.21.96.1) in 10 ms

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
com.			86400	IN	DS	19718 13 2 8ACBB0CD28F41250A80A491389424D341522D946B0DA0C0291F2D3D7 71D7805A
com.			86400	IN	RRSIG	DS 8 1 86400 20240715050000 20240702040000 20038 . GnDoxEAaH770WTMRpN/KvmhPbqrO2DLCffgsixXh24ooBvKSmQqc1FMd KX45wku8TaXZkfp4k+Yy/I8IDddQbbhV32aMd/oAJ5EqJPVZnEX50fTY iDAadzEEEdMv4tVh0C25SowAcHlqONWlFIi2udDCZjskkUDP/LZH0V+w WA7xjE1sRzEze+olN0P+zBfxfecVo5csOVa85G6UMyEYsvEjfHSygb64 v7TOmHpLt/YEUHDNwvQTsJ0yOXVCq1PIQusPkY4Lk7/a7xt9BcHs6t1+ WTK2CyXrA++HqJNs9oMnWYCqc7j25/QnQTAbUzfQnX7LLEXi0sXkR0aq efxPtA==
;; Received 1173 bytes from 192.58.128.30#53(j.root-servers.net) in 0 ms

baidu.com.		172800	IN	NS	ns2.baidu.com.
baidu.com.		172800	IN	NS	ns3.baidu.com.
baidu.com.		172800	IN	NS	ns4.baidu.com.
baidu.com.		172800	IN	NS	ns1.baidu.com.
baidu.com.		172800	IN	NS	ns7.baidu.com.
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 - CK0Q2D6NI4I7EQH8NA30NS61O48UL8G5 NS SOA RRSIG DNSKEY NSEC3PARAM
CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 13 2 86400 20240707002457 20240629231457 956 com. fUqDTwkfdL3McvJaDUQI8nJAOwYVk7quI5jYU4rLvVQofgJEZ7GJjNZL 7BY4hkQh/xmIjp1M5Ec+n5vVLxAt7A==
HPVV1UNKTCF9TD77I2AUR73709T975GH.com. 86400 IN NSEC3 1 1 0 - HPVVP23QUO0FP9R0A04URSICJPESKO9J NS DS RRSIG
HPVV1UNKTCF9TD77I2AUR73709T975GH.com. 86400 IN RRSIG NSEC3 13 2 86400 20240706005132 20240628234132 956 com. 1MtU07lj/BUIRTop6izDQ2p/7o6qoWR+OGxt1jP0SJjR0eBx2ArpmVEg d3+UJBi4vx3sX/DFnSoJLxi32PHwFA==
;; Received 657 bytes from 192.55.83.30#53(m.gtld-servers.net) in 219 ms

www.baidu.com.		1200	IN	CNAME	www.a.shifen.com.
;; Received 100 bytes from 180.76.76.92#53(ns7.baidu.com) in 10 ms

以上结果说明了 <www.baidu.com> 域名的 DNS 解析完整路径。首先从根 DNS 服务器(.root-servers.net)开始,然后到顶级域名服务器(.gtld-servers.net),再去权威 DNS 服务器查询(ns*.baidu.com)具体 IP 地址。www.baidu.com 是一个别名(CNAME),实际上它指向的是 <www.a.shifen.com> 。

其中 172800、86400 表示 TTL 时间。

四、其他说明

1. VS nslookup

dig 和 nslookup 都是用于查询 DNS 服务器的工具。dig 提供更详细的输出,更多的选项和灵活性,并且在处理错误时通常会提供更多的信息。nslookup 的输出相对较少,选项和灵活性也较少。虽然 nslookup 在许多系统上仍可用,但许多组织(包括 ISC 和微软)都推荐使用 dig 来代替 nslookup。

标签:示例,root,dig,servers,详解,DNS,net,NS,com
From: https://www.cnblogs.com/zengzuo613/p/18280338

相关文章

  • iperf详解与实践
    iperf详解与实践目录iperf详解与实践1、iperf介绍1.1简介1.2iperf的主要特点包括:1.3iperf主要测试什么1.4iperf和iperf3区别2、iperf的主要参数说明2.1客户端2.2服务端2.3公共使用3、iperf安装配置示例3.1下载win的iperf版本3.2linux客户端测3.2.1源码编译安装ipe......
  • 红队工具Finger 安装具体以步骤-示例centos
    1.gitclonehttps://github.com/EASY233/Finger.git如果没有yuminstallgit2.pip3install-rrequirements.txt找到finger所在的文件夹可以用find-name"Finger"进入文件中配置命令前提要安装pythonyuminstallpython-pip33.python3Finger.py-h......
  • Next Terminal 一款简单开源轻量级堡垒机,Next Terminal使用详解-(值得收藏)
    1.安装部署:NextTerminal一款简单开源轻量级堡垒机,宝塔Docker安装部署教程一、NextTerminal介绍前沿:NextTerminal是一款开源的轻量级堡垒机与交互审计系统,旨在提供一个集中的、安全的远程访问解决方案,适用于管理不同协议下的服务器与设备。它通过一个统一的Web界......
  • 学习笔记484—Word加载项是灰色怎么解决 Word加载项是灰色的解决方法【详解】
    Word加载项是灰色怎么解决?在Word2016拥有一个加载项的功能,加载项其实就是Word插件,可以实现很多Word自己无法实现的功能,近期有用户发现自己电脑上的Word加载项是灰色的无法使用,这该怎么解决呢?下面我们来看看吧。具体操作如下:1、首先我们打开Word。具体查看图片哦。我这个......
  • 从零到一 Instagram自动运营脚本源码搭建/配置详解
    对于希望在Instagram上实现高效自动运营的用户而言,搭建一套个性化脚本至关重要。本文将从源码层面出发,详解如何从零到一构建并配置Instagram自动运营脚本。一、项目规划明确自动化目标:如提升曝光、增加粉丝、维护用户关系等。设计脚本框架:包括登录模块、任务调度模块、执行模......
  • 纳米体育数据电竞数据接口:基础数据包接口文档API示例③
    纳米体育数据的数据接口通过JSON拉流方式获取200多个国家的体育赛事实时数据或历史数据的编程接口,无请求次数限制,可按需购买,接口稳定高效;覆盖项目包括足球、篮球、网球、电子竞技、奥运等专题、数据内容。纳米数据API2.0版本包含http协议以及websocket协议,主要通过http获取数......
  • Python创建异步任务队列库之Huey使用详解
    概要Huey是一个简单的Python库,用于创建异步任务队列。它的设计目标是简单易用,同时具备强大的功能。Huey可以轻松地将任务添加到队列中,然后在后台线程中处理这些任务,从而避免阻塞主线程。这使得Huey非常适合处理I/O密集型或长时间运行的任务。此外,Huey还支持任务的......
  • 详解C++中的容器,其特点与常用方法
    1.容器的定义在C++中,容器的概念是指一种对象类型,它可以持有其他对象或指向其他对象的指针。这种对象类型在数据存储上提供了一种有效的方式来管理一组元素。容器在C++中通常是模板类的形式。一般来说,容器内的元素都是相同类型的。即如果该容器内存放的是int类型的数据,那么......
  • Python层次密度聚类算法库之HDBSCAN使用详解
      概要HDBSCAN是一种层次密度聚类算法,它通过密度连接性来构建聚类层次结构。与传统的K-Means算法相比,HDBSCAN具有以下几个显著特点:自动确定聚类数量:HDBSCAN能够根据数据自动确定聚类数量,不需要预先指定。适应噪声和异常点:HDBSCAN在聚类过程中能够很好地处理......
  • ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别
    ONNXRuntime简介ONNXRuntime是一个跨平台的推理和训练机器学习加速器。ONNX运行时推理可以实现更快的客户体验和更低的成本,支持来自深度学习框架(如PyTorch和TensorFlow/Keras)以及经典机器学习库(如scikit-learn、LightGBM、XGBoost等)的模型。ONNX运行时与不同的硬件、......