DNS 杂谈

一、定义

DNS(Domain Name System),域名系统,该系统记录域名和Ip地址的相互映射关系。用户访问互联网时,通过域名地址得到对应的IP地址,这个过程称为域名解析。DNS运行于UDP协议之上,使用的端口为53。

递归查询:客户端只发出一次请求,直到服务器响应该请求,并返回结果到客户端。客户端向本地域名服务器的查询一般是递归查询。

迭代查询:服务器发出多次请求,层层请求后知道查询到结果并返回。本地域名服务器向域名系统中各级域名服务器的请求查询是迭代查询。

若上级DNS服务器并不能直接提供该DNS的解析结果,则该上级DNS服务器会告知本地域名服务器另对一个可能查询到该DNS解析结果的DNS服务器IP,本地域名服务器再次向这个DNS服务器发起解析请求,层层问询,直到查询到应的结果为止。

1、常见的记录类型

A(Address Mapping records)指示了对应名称的IPv4地址, A记录用来将域名转换为ip地址。

AAAA:指示对应名称的IPv6地址。

SOA(Start Of Authority): 起始授权记录,一个区域解析库有且仅能有一个SOA记录,而且必须为解析库的第一条记录。

NS(Name Server):记录当前区域中的某个DNS服务器的名字,一个区域可有多个NS记录。

PTR(Reverse-lookup Pointer records):反向查找记录,是一种 DNS 记录类型,用于将 IP 地址映射到对应的主机名。这与 A 记录和 AAAA 记录的作用相反,后者是将主机名映射到 IP 地址

CNAME(Canonical Name):域名的别名记录,用于记录某个主机域名的别名。

NAME                    TYPE   VALUE
--------------------------------------------------
bar.example.com.        CNAME  foo.example.com.
foo.example.com.        A      192.0.2.23

当用户查询 bar.example.com 的时候,DNS Server 实际返回的是 foo.example.com 的 IP 地址。

MX(Mail Exchanger records):为某个DNS域名指定邮件交换的服务器。

TXT(text records):包含任意非格式化的文本信息。

二、常用linux命令

1、ping

最常用的通常用于检查网络连通性,但也会执行 DNS 解析以获取目标主机的 IP 地址。

ping example.com

2、 nslookup

一个用于查询 DNS 记录的命令行工具

查询主机名的 IP 地址:nslookup example.com

指定 DNS 服务器进行查询:nslookup example.com 8.8.8.8

3、 dig

DNS 查询工具,提供更多的查询选项和详细信息,下面列举一个最常见的 dig www.baidu.com

参考:

   反演 百度DNS解析规则 | ESON

DNS 服务器在响应查询时,需要查询自己的数据库,数据库中的条目被称为 资源记录(Resource Record,RR) 。RR 提供了主机名到 IP 地址的映射。RR 是一个包含了Name, Value, Type, TTL四个字段的四元组。dig结果的每一行解释

//dig 的版本信息和查询的域名。

; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.baidu.com

//表示全局选项和命令行参数
;; global options: +cmd

//表明收到了响应。
;; Got answer:

//这是响应头信息,opcode: QUERY:表示这是一个查询操作

//status: NOERROR:表示查询成功,无错误

//id: 46143:查询的 ID
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39913

//标志和计数。
//qr:查询响应;rd:递归查询已请求;ra:递归查询已可用。
//QUERY: 查询问题部分的计数;ANSWER: 回答部分的计数;AUTHORITY: 权威部分的计数; ADDITIONAL: 附加部分的计数。
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512

//查询问题部分,显示了所请求的信息,查询类型是 A 记录
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

//回答部分,显示了查询的结果

;; ANSWER SECTION:
www.baidu.com.          492     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       21      IN      CNAME   www.wshifen.com.
www.wshifen.com.        261     IN      A       45.113.192.102
www.wshifen.com.        261     IN      A       45.113.192.101

//查询耗时 50 毫秒

;; Query time: 1 msec
//使用的 DNS 服务器是 127.0.0.1,端口号为 53
;; SERVER: 127.0.0.1#53(127.0.0.1)

//查询时间
;; WHEN: Tue Jul 09 16:37:56 CST 2024

//接收的消息大小为 127字节
;; MSG SIZE  rcvd: 127

三、DNS服务器方式

1、BGP + Anycast

        Anycast是一种网络通信方法,其中同一个 IP 地址被分配给多个地理位置不同的服务器节点。用户的请求会自动路由到距离最近或者最有效的服务器节点,这样可以减少延迟,提高访问速度和可靠性。

        分配相同的 IP 地址给多个服务器节点并通过 Anycast 实现请求的路由,主要是通过配置网络路由协议,特别是边界网关协议(BGP)。

参考:千亿级HttpDNS服务是怎样炼成的-腾讯云开发者社区-腾讯云

2、Localdns + dnsmasp+DPDK

        /etc/resolv.conf 文件是系统DNS解析的关键配置文件,它指定了系统在进行域名解析时应该使用的DNS服务器。正确配置这个文件对于确保系统的网络连接和互联网访问至关重要。

        dnsmasq支持解决DNS,DHCP和router等多方面问题,一个常见的认知dnsmasq是一个本地dns(/etc/resolv.conf)的加强版

参考:

DPDK开发之基于UDP的DNS服务器_dpdk千万级流量并发的dns处理 csdn-CSDN博客

3、Nacos-DNS

服务提供者将自己的服务实例信息(如IP地址、端口号、健康状态等)注册到Nacos注册中心。

当服务消费者(Consumer)需要调用某个服务时,会通过服务的名称发送DNS查询请求到Nacos DNS服务器。

Nacos DNS服务器接收到DNS查询请求后,会向Nacos注册中心查询该服务名称对应的所有可用的IP地址列表。

参考:

微服务架构中基于DNS的服务注册与发现

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

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

相关文章

手撸俄罗斯方块(一)——简单介绍

手撸俄罗斯方块 简单介绍 《俄罗斯方块》&#xff08;俄语&#xff1a;Тетрис&#xff0c;英语&#xff1a;Tetris&#xff09;&#xff0c;是1980年末期至1990年代初期风靡全世界的电脑游戏&#xff0c;是落下型益智游戏的始祖&#xff0c;电子游戏领域的代表作之一&a…

【代码随想录】【算法训练营】【第64天】 [卡码117]软件构建 [卡码47]参加科学大会

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 64&#xff0c;周三&#xff0c;继续ding~ 题目详情 [卡码117] 软件构建 题目描述 卡码117 软件构建 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 [卡码…

算法的复杂度

文章目录 一、算法的效率1、复杂度的概念2、复杂度的重要性 二、时间复杂度三、空间复杂度四、大O的渐进表示发五、计算复杂度案例1、计算Func1函数的复杂度2、计算Fun2的时间复杂度3、计算Func3的时间复杂度4、计算Func4的时间复杂度5、计算strchr的时间复杂度6、计算Func5的时…

MySQL空间索引

空间类型是建立在空间类型字段上的。 空间类型 MySQL的空间类型很多&#xff0c;我就不逐一介绍了。重要分四大类&#xff1a; GeometryCurveSurfaceGeometryCollection 前三种&#xff0c;地理、曲线、曲面都是不可实例化的。Geometry有一个子类Point, Curve有一个直接子类L…

电脑误删除的文件怎么恢复免费 电脑误删文件导致无法开机怎么办

在使用电脑的时候&#xff0c;有时候可能会因为一些错误的操作&#xff0c;导致删除一些文件&#xff0c;如果是普通的文件&#xff0c;最坏的情况也就是文件找回来&#xff0c;如果删除的是系统文件&#xff0c;那么很有可能导致电脑开不了机。下面就给大家详细讲解&#xff0…

什么牌子充电宝好用?推荐四款质量与性价比双优充电宝!

在如今高度数字化的生活中&#xff0c;充电宝已经成为我们日常生活中必不可少的电子设备。然而&#xff0c;随着市场上充电宝品牌的不断增多&#xff0c;人们对充电宝的质量和安全性也越来越关注。充电宝作为一个涉及电池和充电技术的产品&#xff0c;安全性至关重要。选择一款…

防火墙安全策略用户认证综合实验

生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 办公区设备10.0.2.10不允许访问DMz区的FTP服务器和HTTP服务器&#xff0c;仅能ping通10.0.3.10 办公区分为市场部和研发部&#xff0c;研发部Ip地址固定&#xff0c;访问dmz区使用匿名认证&#xff0c;市场部需…

王道计算机数据结构+插入排序、冒泡排序、希尔排序、快速排序、简单选择排序

本内容是基于王道计算机数据结构的插入排序、冒泡排序、希尔排序、快速排序、简单选择排序整理。 文章目录 插入排序算法性能代码 冒泡排序算法性能代码 希尔排序算法性能代码 快速排序算法性能代码 简单选择排序算法性能代码 插入排序 算法 算法思想&#xff1a;每次将一个…

16. Revit API: Family、FamilySymbol、FamilyInstance

前言 前面写着一直絮絮叨叨&#xff0c;感觉不好。想找些表情包来&#xff0c;写得好玩点&#xff0c;但找不到合适的&#xff0c;或者说耗时费力又不满意&#xff0c;而自个儿又做不来表情包&#xff0c;就算了。 其次呢&#xff0c;之前会把部分类成员给抄表列出来&#xf…

如何使用Vger对已经过身份验证的Jupyter实例进行安全检测

关于Vger Vger是一款功能强大的交互式命令行应用程序&#xff0c;广大研究人员可以利用Vger与已经过身验证的Jupyter实例进行交互&#xff0c;并对其执行人工智能或机器学习方面的安全检测操作。 使用场景 1、作为红队研究人员&#xff0c;当我们寻找到了Jupyter凭证之后&…

前端工程化(01):10款自动化构建工具初识。

前端工程化自动化构建工具是用于简化前端开发流程、提高开发效率和优化项目质量的工具。市面上的工具多种多样&#xff0c;贝格前端工场先介绍一下什么是前端工程化&#xff0c;为什么要前端工程化&#xff0c;以及常用工具&#xff0c;后面会对各种工具逐一介绍。 一、什么是…

《米小圈漫画历史》:历史启蒙,看漫画书就可以啦!

在当今信息爆炸的时代&#xff0c;如何让孩子在娱乐中学习&#xff0c;一直是许多家长关心的问题。《米小圈漫画历史》系列作为一部集合了趣味性和教育性的漫画书&#xff0c;以其独特的视角和精彩的故事情节&#xff0c;成为了许多家庭历史启蒙的首选。本文将通过探索漫画书的…

anaconda修改安装的默认环境

&#x1f4da;博客主页&#xff1a;knighthood2001 ✨公众号&#xff1a;认知up吧 &#xff08;目前正在带领大家一起提升认知&#xff0c;感兴趣可以来围观一下&#xff09; &#x1f383;知识星球&#xff1a;【认知up吧|成长|副业】介绍 ❤️如遇文章付费&#xff0c;可先看…

从零开始学习嵌入式----Linux系统中shell脚本

目录 Shell脚本入门&#xff1a;玩转功能语句和数组&#xff0c;提升你的效率&#xff01; 一、功能语句&#xff1a;让你的脚本更灵活 1. 条件语句&#xff1a;if、else、elif 2. 循环语句&#xff1a;for、while 二、数组&#xff1a;处理多项数据的好帮手 1. 声明数组…

Linux基础指令解析+项目部署环境

文章目录 前言基础指令部署项目环境总结 前言 Linux的魅力在于其强大的可定制性和灵活性&#xff0c;这使得它成为了众多开发者和运维人员的首选工具。然而&#xff0c;Linux的指令系统庞大而复杂&#xff0c;初学者往往容易迷失其中。因此&#xff0c;本文将带领大家走进Linu…

C++的介绍与认识

目录 前言 1.什么是C 2.C的发展历史 3.C参考文档 4.C重要性 4.1C特点 4.2编程语言排行榜 4.3 C的应用领域 5.C学习指南 1. 基础知识 2. 面向对象编程&#xff08;OOP&#xff09; 3. 泛型编程 4. 标准库&#xff08;STL&#xff09; 结束语 前言 学习了C语言的知识…

亚马逊云科技EC2简明教程

&#x1f4a1; 完全适用于新手操作的Amazon EC2引导教程 简述 在亚马逊云科技中&#xff0c;存在多种计算服务&#xff0c;在此&#xff0c;我们将会着重讨论Amazon EC2(以下简称EC2)&#xff0c;EC2作为亚马逊云科技的明星产品、核心产品&#xff0c;是大多数开发者和企业用…

高考后暑假新选择:从AI聊天机器人开发入门IT领域

你好&#xff0c;我是三桥君 七月来临&#xff0c;各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束&#xff0c;而是新旅程的开始。对于有志于踏入IT领域的高考少年们&#xff0c;这个假期是开启探索IT世界的绝佳时机。 不知道这些有志于踏入IT领域的高考少年们&…

即时通讯平台项目测试(主页面)

http://8.130.98.211:8080/login.html项目访问地址&#xff1a;即时通讯平台http://8.130.98.211:8080/login.html 本篇文章进行项目主页面的测试。 在测试前需要先对待测内容进行分类&#xff0c;按照功能进行分类可以分为&#xff1a;个人信息设置、发送/接收消息、添加好友…

Shell:一行命令如何实现采集某一进程一段时间内CPU使用率

首先&#xff0c;能想到使用top查看进程的CPU使用率&#xff0c;以java进程编号251346为例进行介绍 top -d 1 -p 251346 -d 表示每秒采集一次 CPU使用率是显示出来了&#xff0c;但这样只能在屏幕上原地刷新&#xff0c;我们希望能把数据每时每刻的数据都保存下来&#xff0c;…