当前位置: 首页 > news >正文

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的服务注册与发现

相关文章:

DNS 杂谈

一、定义 DNS&#xff08;Domain Name System&#xff09;&#xff0c;域名系统&#xff0c;该系统记录域名和Ip地址的相互映射关系。用户访问互联网时&#xff0c;通过域名地址得到对应的IP地址&#xff0c;这个过程称为域名解析。DNS运行于UDP协议之上&#xff0c;使用的端口…...

docker笔记2

docker笔记2 一、阿里云镜像配置二、docker基本原理1.docker是如何启动一个容器的2.docker的底层原理 三、镜像命令总结 一、阿里云镜像配置 配置镜像的目的 由于Docker Hub等公共镜像仓库的服务器可能位于国外&#xff0c;直接从中拉取镜像时可能会遇到网络延迟或不稳定的问…...

数字统计

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别// 注意 while 处理多个 caseint a in.nextInt();i…...

Git 使用问题

Git 使用问题 1, 网络问题 1, 网络问题 # 报错如下&#xff1a; fatal: unable to access https://github.com/xianglingliwei/HRNet.git/: Failed to connect to github.com port 443 after 21044 ms: Couldnt connect to server在不能正常访问Github的区域&#xff0c;需要设…...

JMH325【剑侠情缘3】第2版80级橙武网游单机更稳定亲测视频安装教学更新整合收集各类修改教学补丁兴趣可以慢慢探索

资源介绍&#xff1a; 是否需要虚拟机&#xff1a;是 文件大小&#xff1a;压缩包约14G 支持系统&#xff1a;win10、win11 硬件需求&#xff1a;运行内存8G 4核及以上CPU独立显卡 下载方式&#xff1a;百度网盘 任务修复&#xff1a; 1&#xff0c;掌门任务&#xff08…...

大数据专业创新人才培养体系的探索与实践

一、引言 随着大数据技术的迅猛发展&#xff0c;其在各行各业中的应用日益广泛&#xff0c;对大数据专业人才的需求也日益增长。我国高度重视大数据产业的发展&#xff0c;将大数据作为国家战略资源&#xff0c;推动大数据与各行业的深度融合。教育部也积极响应国家战略&#…...

MySQL 中的 DDL、DML、DQL 和 DCL

文章目录 1. 数据定义语言&#xff08;DDL&#xff09;2. 数据操作语言&#xff08;DML&#xff09;3. 数据查询语言&#xff08;DQL&#xff09;4. 数据控制语言&#xff08;DCL&#xff09;总结 在 MySQL 数据库管理系统中&#xff0c;SQL 语句可以根据其功能分为不同的类别&…...

基础架构服务API:降低成本,提升业务效益

基础架构服务API的应用可以显著降低企业的成本&#xff0c;并提升业务效益。通过使用这些API&#xff0c;企业可以充分利用云计算、自动化部署和资源管理等功能&#xff0c;从而减少了传统基础设施所需的大量投资和维护成本。这些API还提供了弹性扩展和自动化功能&#xff0c;使…...

Redis IO多路复用

0、前言 本文所有代码可见 > 【gitee code demo】 本文涉及的主题&#xff1a; 1、BIO、NIO的业务实践和缺陷 2、Redis IO多路复用&#xff1a;redis快的主要原因 3、epoll 架构 部分图片 via 【epoll 原理分析】 1、BIO单线程版 1.1 业务代码 client client代码相同…...

如何在Vue中实现拖拽功能?

Vue.js是一款流行的JavaScript框架&#xff0c;用于构建用户界面。其中一个常见的需求是在Vue中实现拖拽功能&#xff0c;让用户可以通过拖拽元素来进行交互。今天&#xff0c;我们就来学习如何在Vue中实现这一功能。 首先&#xff0c;我们需要明白拖拽功能的基本原理&#xf…...

在Linux下使用Docker部署chirpstack

目录 一、前言 二、chirpstack 1、chirpstack是什么 2、chirpstack组件 3、为什么选择Docker部署 三、Linux下部署过程 四、web界面部署过程 一、前言 本篇文章我是在Linux下使用 Docker 进行部署chirpstack&#xff0c;chirpstack采用的是v4 版本&#xff0c;v4 版本 与…...

《昇思25天学习打卡营第14天|计算机视觉-ShuffleNet图像分类》

FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类 当前案例不支持在GPU设备上静态图模式运行&#xff0c;其他模式运行皆支持。 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端…...

将字符串写入结构体变量中

将字符串写入结构体变量中&#xff0c;主要涉及到结构体中字符数组&#xff08;或指针&#xff09;的使用。 一、使用字符数组 假设你有一个结构体&#xff0c;它包含一个字符数组来存储字符串&#xff1a; #include <stdio.h> #include <string.h> // 用于st…...

iPhone 16 Pro系列将标配潜望镜头:已开始生产,支持5倍变焦

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 7月6日消息&#xff0c;据DigiTimes最新报道&#xff0c;苹果将在iPhone 16 Pro中引入iPhone 15 Pro Max同款5倍光学变焦四棱镜潜望镜头。 报道称&#xff0c;目前苹果已经将模组订单交至大立光电和玉…...

PG在还没有pg_class的时候怎么访问基础系统表?

在没有pg_class的时候&#xff0c;数据库怎么访问系统表&#xff1f;这个问题可以分成两个阶段来看&#xff1a; 数据库簇初始化&#xff0c;此时一个database都没有&#xff0c;所以怎么构造和访问pg_class等系统表是一个问题私有内存初始化系统表。PG的系统表信息是放在back…...

UnityHub 无法添加模块问题

文章目录 1.问题描述2.问题解决 1.问题描述 在Hub中无法添加模块 2.问题解决 1、点击设置 2、设置版本安装位置 可以发现installs的安装位置路径设置不是unity安装位置&#xff0c;这里我们更改成自己电脑unity安装位置的上一级路径 添加模块正常&#xff1a;...

python04——类(基础new)

类其实也是一种封装的思想&#xff0c;类就是把变量、方法等封装在一起&#xff0c;然后可以通过不同的实例化对其进行调用操作。 1.类的定义 class 类名&#xff1a; 变量a def __init__ (self,参数2&#xff0c;参数2...)&#xff1a;初始化函数&#xff01;&#xff01;&…...

【Python百日进阶-Web开发-Peewee】Day296 - 查询示例(五)聚合2、递归

文章目录 14.6.13 列出每个指定设施的预订总小时数 List the total hours booked per named facility14.6.14 列出每位会员在 2012 年 9 月 1 日之后的首次预订 List each member’s first booking after September 1st 201214.6.15 生成成员名称列表,每行包含成员总数 Produc…...

闲话银行家舍入法,以及在程序中如何实现

前言 相信对于四舍五入的舍入法&#xff0c;大家都耳熟能详&#xff0c;但对于银行家舍入法&#xff0c;可能就会比较少接触了&#xff01; 可是在金融界&#xff0c;银行家舍入法可是大名鼎鼎的主角之一&#xff0c;主要应用于金融领域和涉及货币计算的场合。 那么&#xf…...

最短路径算法(算法篇)

算法之最短路径算法 最短路径算法 概念&#xff1a; 考查最短路径问题&#xff0c;可能会输入一个赋权图(也就是边带有权的图)&#xff0c;则一条路径的v1v2…vN的值就是对路径的边的权求和&#xff0c;这叫做赋权路径长&#xff0c;如果是无权路径长就是单纯的路径上的边数。…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

MMaDA: Multimodal Large Diffusion Language Models

CODE &#xff1a; https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA&#xff0c;它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...