DNS基础:通过dig命令理解DNS域名解析中的A记录,AAAA记录,CNAME记录,MX记录,NS记录,/etc/hosts本地域名IP映射

news2024/12/23 22:11:06

参考博文:https://blog.csdn.net/zxl1990_ok/article/details/125432123

目录

  • 参考资料
  • DNS简介
  • /etc/hosts本地域名IP映射
  • 查询过程举例
  • 直接显示DNS寻址结果
  • 向特定DNS服务器寻址
  • 查询A记录
  • 查询AAAA记录
  • CNAME记录
  • MX记录
  • NS记录
  • PTR记录
  • SOA记录
  • 查看DNS服务器的主从关系

参考资料

http://ruanyifeng.com/blog/2016/06/dns.html

https://blog.csdn.net/a583929112/article/details/66499771

https://www.jianshu.com/p/813918846788

DNS简介

DNS(Domain Name System) 即域名系统。 作用就是根据域名查出 IP 地址。

/etc/hosts本地域名IP映射

所谓本地域名IP映射,是指在本地建立域名和IP之间的映射关系,无需通过域名解析服务器,直接在本地进行域名解析。在linux系统中,是通过文件/etc/hosts描述域名到IP映射的。

linux系统中,域名到IP映射描述在文件/etc/hosts书写,格式如下:

IP地址 域名[ 域名别称]

例如,我们知道码云的IP为212.64.62.174,就可以将码云域名IP映射写在文件/etc/hosts中,即使域名解析服务器故障,也无碍我们访问assets.gitee.com和gitee.com这两个域名,示例如下:

127.0.0.1       localhost
127.0.1.1       xia-pc

# 新加入码云域名IP映射
212.64.62.174   assets.gitee.com gitee.com

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

查询过程举例

我们使用dig(Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具)来显示wwww.baidu.com DNS的查询过程。

dig www.baidu.com

上面的命令会输出六段信息:

在这里插入图片描述
第一段是查询参数和统计:

; <<>> DiG 9.10.6 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17163
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 7

其中

; <<>> DiG 9.10.6 <<>> www.baidu.com 
;; global options: +cmd

是 dig版本(version 9.10.6)及输入参数信息
剩下的就是 DNS一些头部信息, status值为NOERROR代表本次查询成功


第二段是查询内容:

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

上面结果表示,查询域名www.baidu.com的A记录,A是address的缩写
IN 是固定关键字。


第三段是DNS服务器的答复:

;; ANSWER SECTION:
www.baidu.com.          600     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       600     IN      A       14.215.177.38
www.a.shifen.com.       600     IN      A       14.215.177.39

上面结果显示,www.baidu.com有一个CNAME记录, CNAME 表示查询 www.baidu.com 的信息其实是 www.a.shifen.com 返回的 A 记录; 有两个A记录,即两个IP地址。600是TTL值(Time to live 的缩写),表示缓存时间,即600秒之内不用重新查询


第四段是显示www.baidu.com的NS记录(Name Server的缩写),即哪些服务器负责管理www.baidu.com的DNS记录:

;; AUTHORITY SECTION:
a.shifen.com.           714     IN      NS      ns1.a.shifen.com.
a.shifen.com.           714     IN      NS      ns5.a.shifen.com.
a.shifen.com.           714     IN      NS      ns2.a.shifen.com.
a.shifen.com.           714     IN      NS      ns4.a.shifen.com.
a.shifen.com.           714     IN      NS      ns3.a.shifen.com.

上面结果显示www.baidu.com共有5条NS记录,即5个域名服务器,向其中任一台查询就能知道www.baidu.com的IP地址是什么。

NS指的是服务器主机名,在AUTHORITY SECTION里面的服务器主机名,都会在ADDITIONAL SECTION里给出该主机的IP地址。


第五段是上面5个域名服务器的IP地址,这是随着前一段一起返回的:

;; ADDITIONAL SECTION:
ns1.a.shifen.com.       165     IN      A       110.242.68.42
ns2.a.shifen.com.       162     IN      A       220.181.33.32
ns3.a.shifen.com.       396     IN      A       112.80.255.253
ns4.a.shifen.com.       101     IN      A       14.215.177.229
ns5.a.shifen.com.       589     IN      A       180.76.76.95
ns5.a.shifen.com.       119     IN      AAAA    240e:940:603:a:0:ff:b08d:239d
ns5.a.shifen.com.       119     IN      AAAA    240e:bf:b801:1006:0:ff:b04f:346b

A (Address) 记录是用来指定域名对应的IP地址记录,同时也可以设置域名的子域名,A记录目标地址只能使用IP地址。
AAAA 用来指定主机名(或域名)对应的 IPv6 地址记录


第六段是DNS服务器的一些传输信息:

;; Query time: 5 msec
;; SERVER: 202.103.24.68#53(202.103.24.68)
;; WHEN: Thu Jun 23 10:48:49 CST 2022
;; MSG SIZE  rcvd: 316

上面结果显示,查询耗时5ms,本机的DNS服务器是202.103.24.68,查询端口是53(DNS服务器的默认端口),在2022-06-23 10:48:49时间进行的查询,以及回应长度是316字节

直接显示DNS寻址结果

使用+short参数 , 这样控制台直接返回该域名对应的 IP 地址

dig +short www.baidu.com
www.a.shifen.com.
14.215.177.39
14.215.177.38

上面命令只返回www.baidu.com对应的1个cname别名, 2个IP地址(即A记录)

向特定DNS服务器寻址

本机只向自己的DNS服务器查询,dig命令有一个@参数,显示向其他DNS服务器查询的结果, 我们使用Google的8.8.8.8公网的DNS服务器寻找 www.baidu.com 域名的 DNS 解析结果:

dig @8.8.8.8 www.baidu.com

执行结果(部分)如下:

;; ANSWER SECTION:
www.baidu.com.          14      IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       197     IN      CNAME   www.wshifen.com.
www.wshifen.com.        197     IN      A       103.235.46.40

从返回结果可以看到,当我们向 8.8.8.8 DNS 服务器寻址时,其返回了 2 个 CNAME, 1个 IP 地址。跟我们向本地 DNS 服务器寻址时返回结果不一样。这说明了不同 DNS 服务器所存储的解析记录不同,并不说某个 DNS 服务器是错误的。

如果只想显示 “ANSWER SECTION” 的内容, 可以使用 +noall +answer

查询A记录

A (Address) 记录是用来指定域名对应的IPv4 地址记录,同时也可以设置域名的子域名,A记录目标地址只能使用IP地址。
当相同域名有多个A记录时,表示轮循,可以达到负载均衡的目的。

dig a www.baidu.com

执行结果(部分)如下:

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

;; ANSWER SECTION:
www.baidu.com.          600     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       600     IN      A       14.215.177.39
www.a.shifen.com.       600     IN      A       14.215.177.38

可以看到, 一个CNAME, 两个IP地址

查询AAAA记录

AAAA记录是用来将域名解析到IPv6地址的DNS记录,其它方面同A记录。

dig aaaa ns5.a.shifen.com.

执行结果(部分)如下:

; <<>> DiG 9.10.6 <<>> aaaa ns5.a.shifen.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28220
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 6

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns5.a.shifen.com.		IN	AAAA

;; ANSWER SECTION:
ns5.a.shifen.com.	600	IN	AAAA	240e:940:603:a:0:ff:b08d:239d
ns5.a.shifen.com.	600	IN	AAAA	240e:bf:b801:1006:0:ff:b04f:346b

可以看到ns5.a.shifen.com.有两个AAAA记录

CNAME记录

CNAME记录用于将一个域名映射到另外一个域名,DNS遇到CNAME记录会以映射到的目标重新开始查询,CNAME记录的目标地址只能使用域名,不能使用IP地址,A记录优先于CNAME记录,如果一个域名同时存在A记录和CNAME记录,则CNAME记录不生效。

dig cname www.baidu.com

执行结果(部分)如下:

;; ANSWER SECTION:
www.baidu.com.          600     IN      CNAME   www.a.shifen.com.

可以看出CNAME 为 www.a.shifen.com.
也就是说,用户查询 www.baidu.com 的时候,实际上返回的是 www.a.shifen.com 的IP地址。这样的好处是,变更服务器IP地址的时候,只要修改 www.a.shifen.com 这个域名就可以了,用户的 www.baidu.com 域名不用修改

由于CNAME记录就是一个替换,所以域名一旦设置CNAME记录以后,就不能再设置其他记录了(比如A记录和MX记录),这是为了防止产生冲突。举例来说,foo.com指向bar.com,而两个域名各有自己的MX记录,如果两者不一致,就会产生问题。由于顶级域名通常要设置MX记录,所以一般不允许用户对顶级域名设置CNAME记录。

MX记录

MX记录用于指定负责处理发往收件人域名的邮件服务器,MX记录允许设置一个优先级,越小的数字代表越高的优先次序,当多个邮件服务器可用时,会根据该值决定投递邮件的服务器。MX记录的目标地址可以使用域名或IP地址。

MX记录中的域名必须能够映射到一个或者多个DNS中类型为A或者AAAA的地址记录, 且根据RFC2181,原则上禁止指向CNAME记录。

dig mx www.baidu.com

执行结果(部分)如下:

;; ANSWER SECTION:
www.baidu.com.		350	IN	CNAME	www.a.shifen.com.

;; AUTHORITY SECTION:
a.shifen.com.		600	IN	SOA	ns1.a.shifen.com. baidu_dns_master.baidu.com. 2206230007 5 5 2592000 3600

可以看到其返回了一条类型为 SOA 的记录,这表明 www.baidu.com 的 MX 记录不存在。

NS记录

NS记录用来指定域名由哪个服务器来解析,NS记录的目标地址可以使用域名或IP地址。

dig ns baidu.com

执行结果(部分)如下:

;; ANSWER SECTION:
baidu.com.		86400	IN	NS	ns7.baidu.com.
baidu.com.		86400	IN	NS	ns4.baidu.com.
baidu.com.		86400	IN	NS	ns2.baidu.com.
baidu.com.		86400	IN	NS	ns3.baidu.com.
baidu.com.		86400	IN	NS	dns.baidu.com.

可以看到 baidu.com 一共有 5 个 NS 解析结果,分别是:ns7.baidu.com, ns4.baidu.com, ns2.baidu.com, ns3.baidu.com, dns.baidu.com。

注意: 输入 dig ns www.baidu.com 是查询不出 NS 任何记录的,原因在于只有一级域名(或者顶级域名)才有 NS 记录

PTR记录

PTR记录用于从IP地址反查域名。dig命令的-x参数用于查询PTR记录

dig -x 192.30.252.153

执行结果(部分)如下:

;; ANSWER SECTION:
153.252.30.192.in-addr.arpa. 3315 IN	PTR	lb-192-30-252-153-iad.github.com.

上面我们查询 192.30.252.153 对应的域名,其查询结果表明该 IP 对应的域名为:lb-192-30-252-153-iad.github.com.,其是一个 github 的二级域名

SOA记录

SOA(start of authority)授权机构记录,记录ns中哪个是主服务器
在之前的NS查询里,展示了5个可以解析baidu.com下子域名的服务器。通过SOA可以查询哪个是授权机构的主服务器。

dig soa baidu.com  

执行结果(部分)如下:

;; ANSWER SECTION:
baidu.com.		7200	IN	SOA	dns.baidu.com. sa.baidu.com. 2012145453 300 300 2592000 7200

查看DNS服务器的主从关系

在上面的dig命令我们可以看到,在解析一个域名的时候,往往会发现有多个DNS服务器提供解析服务,这是因为DNS服务器要求一般至少有两个,以防止服务器宕机无法提供域名解析的情况。那么多个服务器,谁来响应这个DNS请求呢?这就要看服务器管理者怎么设置各个服务器的主从关系(Master-Slave)了,通过dig命令也可以查看DNS服务器的主从关系

dig -t soa www.baidu.com

执行结果如下:

在这里插入图片描述
SOA(start of authority)提供了DNS主服务器的相关信息,在soa之后我们可以看到7个参数,依次是:

  • DNS主服务器名;
  • 管理员的E-mail,这里是baidu.dns.master@baidu.com,由于@在数据库文件里有特殊作用,所以这里是用.代替的;
  • 更新序号。表示数据库文件的新旧,一般是用时间来表示,这里2206230007表示的是2022年6月23日进行了一次更新,当天更新编号0007;
  • 更新频率。 表示每5秒,slave服务器就要向master服务器索取更新信息;
  • 失败重试时间,当某些原因导致Slave服务器无法向master服务器索取信息时,会隔5秒就重试一次;
  • 失效时间。如果一直重试失败,当重试时间累积达到2592000秒时,不再向主服务器索取信息;
  • 缓存时间。默认的TTL缓存时间

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/466272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

博途PID1200/1500PLC编程应用(SCL状态机编程)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

【Linux】第八讲:Linux进程信号详解(一)_ 认识信号 | 产生信号

「前言」文章是关于Linux进程信号方面的知识&#xff0c;本文的内容是Linux进程信号第一讲&#xff0c;讲解会比较细&#xff0c;下面开始&#xff01; 「归属专栏」Linux系统编程 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 人生天…

【Ambari】开启HDFS 的HA架构

之前搭建的Ambari可以查看之前的博客 接下来我们来看下HDFS 开启HA 开启HDFS 的HA架构 选择启动NN的HA 因为之前是3节点的所以一开始安装的时候 Ambari架构选择了让安装一个NameNode和一个SecendryNameNode。 点击启动NameNode HA 后跳出个界面 填写集群名 类似于之前第…

六大排序算法:插入排序、希尔排序、选择排序、冒泡排序、堆排序、快速排序

文章目录&#xff1a; 1. 插入排序2.希尔排序3.选择排序4.冒泡排序5.堆排序6.快速排序5.1 hoare版本(左右指针法)5.2 挖坑法5.2.1 递归5.2.2 非递归 5.3 前后指针法 1. 插入排序 步骤&#xff1a; 1.从第一个元素开始&#xff0c;该元素可以认为已经被排序 2.取下一个元素tem…

【社区图书馆】Spring Boot 3核心技术与最佳实践

文章目录 前言什么是Spring BootSpring Boot特性Spring Boot优缺点Spring Boot核心功能 记录和随想 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 什么是Spring Boot 使用Sprin…

Java基础(二十):泛型

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(待更新)

SWAT水文模型建立及应用&#xff1a; 气象数据的准备 1 简介2 气象数据的准备&#xff08;传统气象站&#xff09;2.1 天气发生器各参数的计算2.2 降水及气温输入数据的准备 3 气象数据的准备&#xff08;中国区域高精度同化气象站CMADS&#xff09;参考 本博客主要介绍气象数据…

Git命令与在IDEA中配置Git

目录 Git常用命令 全局设置 1.设置用户信息 2.查看配置信息 3.获取Git仓库 工作区, 暂存区, 版本库的概念 本地仓库操作 远程仓库操作 分支操作 标签操作 IDEA配置Git 本地仓库操作 远程仓库操作 分支操作 Git常用命令 全局设置 1.设置用户信息 git config --g…

ESP32设备驱动-VEML7700光照度传感器驱动

VEML7700光照度传感器驱动 1、VEML7700介绍 文章目录 VEML7700光照度传感器驱动1、VEML7700介绍2、硬件准备3、软件准备4、驱动实现VEML7700 是一款高精度环境光数字 16 位分辨率传感器。 它包括一个高灵敏度光电二极管、一个低噪声放大器、一个 16 位 A/D 转换器,并支持一个…

Coursera—Andrew Ng机器学习—课程笔记 Lecture 1_Introduction and Basic Concepts 介绍和基本概念

1. 1欢迎 1.2 机器学习是什么 参考视频: 1 - 2 - What is Machine Learning_ (7 min).mkv 1.2.1 机器学习定义 • Arthur Samuel (1959). Machine Learning: Field of study that gives computers the ability to learn without being explicitly programmed. 机器学习…

基于COM组件实现C#调用C++类对象过程中的注意事项

目录 一、基于COM的调用原理二、注意事项如何在C ATL中有效添加方法与属性如何让C#调用C中的属性&#xff08;.idl中声明属性&#xff09;如何对变量类型进行转换C#如何获取C类中的参数变量 一、基于COM的调用原理 调用原理&#xff1a;首先基于C ATL模板类&#xff0c;实现需…

29次-CCF-第一题-田地丈量

1 题目链接 进去后点&#xff0c;模拟考试就可以看到题目了 AC证明&#xff1a; 2 分析 前言&#xff1a; 离谱&#xff0c;这个题考试的时候做了30min才写出来&#xff0c;但是代码还贼简单。 你说它难吧&#xff0c;代码这么简单&#xff0c;你说不难吧&#xff0c;我在这…

CSS布局之圣杯布局/双飞翼布局

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;HTMLCSS &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; 文章目录 圣杯布局HTML代码步骤CSS代码 双飞翼布局HTML代码步骤CSS代码 小结 圣杯布局 HTM…

延长无线传感器网络网络寿命的异构节点智能部署策略(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 无线传感器网络是通过大量分布的传感器节点作为终端来协同感知和自主地监测外部世界,以多跳、自组织或协作的方式进行通信和信息…

Android系统架构

Application层&#xff0c;也就是应用层&#xff0c;不仅包括通话短信联系人这种系统级的应用&#xff0c;还包括用户自己安装的一些第三方应用Framework层&#xff0c;这一层大部分用Java写的&#xff0c;包括系统服务和四大组件Library层&#xff0c;这一层大部分都是C/C写的…

C++调用matlab编译动态库方法及相关问题解决

目录 参考链接&#xff1a;1、C调用matlab代码的方法1.1、Library Compiler 方法1.1.1、功能1.1.2、参考链接 1.2、mex -setup方法1.2.1、功能参考链接&#xff1a; 1.3、coder 方法功能 1.4、Matlab engine 2、C 使用matlab编译动态库的传参方法3、matlab运行时 参考链接&…

《AI嵌入式系统技术与实践-基于树莓派RP2040和MicroPython》书籍介绍

图书封面及出版信息 该书由本博主编著&#xff0c;全书总字数约50万字&#xff0c;本书于2023年4月出版。 内容简介 本书基于以RP2040 MCU芯片为核心的树莓派Pico开发板硬件扩展接口&#xff0c;利用Pico硬件扩展接口和面包板设计典型硬件电路&#xff0c;并结合当今流行的微…

网络编程(TCP与UDP协议)

文章目录 1. 网络编程1.1 软件架构1.2 网络基础 2. 网络通信要素2.1 如何实现网络中的主机互相通信2.2 通信要素一&#xff1a;IP地址和域名2.2.1 IP地址2.2.2 域名 2.3 通信要素二&#xff1a;端口号2.4 通信要素三&#xff1a;网络通信协议 3. 传输层协议&#xff1a;TCP与UD…

如何快速查询Git的config配置文件的本地路径

如何快速查询Git的config配置文件的本地路径 命令作用git config --local --list --show-origin查看仓库级别 git 配置信息&#xff0c;并打印配置文件本地路径最高优先级&#xff08;仓库下&#xff09;git config --global --list --show-origin查看全局级别 git 配置信息&a…

2022年全国职业院校技能大赛网络系统管理赛项模块B:Windows部署(样题1)

2022年全国职业院校技能大赛 网络系统管理赛项 模块B&#xff1a;Windows部署 &#xff08;样题1&#xff09; 目录 一、 初始化环境 &#xff08;一&#xff09;默认账号及默认密码 二、项目任务描述 &#xff08;一&#xff09;基本配置 &#xff08;二&#xff09;拓…