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

【BCT认证_组播DNS】 DNS SRV RR

每天遇见几个罕为人知的Bug,醉了


定义

关键字“必须”、“不能”、“应该”、“不应该”和“可以”本文档中使用的术语应按照 [BCP 14] 中的规定进行解释。本文档中使用的其他术语在 DNS 中定义规范,RFC 1034。

适用性声明

一般情况下,预计 SRV 记录将被客户端使用对于相关协议规范指示的应用程序
客户端应该使用 SRV 记录。此类规范必须定义要在 SRV 的服务字段中使用的符号名称记录如下。它还必须包括安全性考虑因素。服务 SRV 记录不应在缺席时使用这样的规范。

入门示例

如果一个 SRV 认知 LDAP 客户端想要发现一个 LDAP 服务器支持TCP协议,为域提供LDAP服务example.com.,它会查找_ldap._tcp.example.com如 [ARM] 中所述。靠近结尾处的示例区域文件备忘录包含 SRV 查询的应答 RR。

注意:选择 LDAP 作为示例仅用于说明目的,不应考虑本文档中使用的 LDAP 示例关于 LDAP 使用 SRV 的推荐方式的明确声明记录。如前面的适用性部分所述,请参阅推荐过程的适当 LDAP 文档。

SRV RR的格式这是 SRV RR 的格式,其 DNS 类型代码为33:_Service._Proto.Name TTL 类 SRV 优先级权重端口目标(本文档末尾有一个示例。)

服务

所需服务的符号名称,如 Assigned 中所定义数字 [STD 2] 或本地。下划线 (_) 前置服务标识符,以避免与 DNS 标签发生冲突发生在自然界中。

响应者不断监视他们的同龄人的反应,冲突可以及时检测到网络拓扑变化引起的变化并解决了。如果响应不是通过多播发送的,则其他一些将需要冲突检测机制,强加自己的网络的额外负担。

  • 在内存资源受限的设备上使用:使用时延迟响应以减少网络冲突,响应者需要维护一个列表记录每个答案应该发送给谁。这多播响应选项允许响应者具有有限的存储,不能存储任意长的响应列表地址,选择故障转移到单个多播响应在适当的时候放置多个单播响应。

  • 重叠子网。在重叠子网的情况下,多播响应允许接收者确定地知道响应起源于本地链路,即使其源地址可能显然另有建议。

  • 面对错误配置的稳健性:链路本地多播超越几乎所有可以想象的网络错误配置。即使您有一组设备,其中每个设备的 IP地址、子网掩码、默认网关和 DNS 服务器地址是都错了,这些设备中的任何一个发送的数据包都发送给了链路本地多播目标地址仍将传送到本地链路上的所有对等点。这在以下情况下非常有用诊断和纠正网络问题,因为它有助于客户端和服务器之间的直接通信通道有效不依赖 ARP、IP 路由表等。能够发现设备拥有(或认为拥有)的 IP 地址是什么
    通常是诊断其原因的非常有价值的第一步无法在本地网络上通信。

附录 E. 编码否定响应的设计原理

考虑了断言不存在的替代方法,例如使用 NXDOMAIN 响应,或发出资源记录零长度 rdata。

使用 NXDOMAIN 响应不适用于多播 DNS。 A单播 DNS NXDOMAIN 响应适用于整个消息,但对于效率 多播 DNS 允许(并鼓励)多重响应在一条消息中。如果标头中的错误代码是 NXDOMAIN,不清楚错误代码适用于哪些名称。

通过发出零长度的资源记录来断言不存在rdata 将意味着无法区分一个不存在的记录,一个确实存在的记录,零 -长度数据。以此类推,今天的大多数文件系统都允许空文件,因此不考虑存在零字节数据的文件相当于一个不存在的文件名。

通过 NSEC 记录断言不存在的好处而不是通过 NXDOMAIN 响应是可以将 NSEC 记录添加到DNS 响应的附加部分以提供附加信息超出查询器明确要求的范围。例如,在响应 SRV 查询,响应者应包括 A 记录在附加部分给出其 IPv4 地址,以及一个 NSEC记录表明它为此有或没有哪些其他类型姓名。如果响应程序在不支持的主机上运行IPv6(或确实支持 IPv6 但当前没有 IPv6 地址)接口)那么附加部分中的这个 NSEC 记录将表明没有 AAAA 记录。

实际上,响应者是说,“这是我的 SRV 记录,这是我的 IPv4 地址,并且不,我没有任何 IPv6 地址,所以不要浪费你的时间询问”。

如果附加部分中没有此信息,它将使查询器进行额外的往返以执行附加查询以确定目标主机没有 AAAA记录。 (可以说单播 DNS 也可以从这种能力中受益在附加部分表示不存在,但那是超出本文档的范围。)

附录 F. UTF-8 的使用

经过多年的争论,由于人们认为需要适应某些显然不能的 DNS 实现处理任何非字母、数字或连字符的字符(以及显然永远不会更新以弥补此限制),单播 DNS 社区选择了一种极其古怪的编码,称为“Punycode”[RFC3492]。

Punycode 是一种非常巧妙的编码解决方案,但它很复杂,难以理解,也很难实施,使用复杂的技术,包括插入排序编码、广义可变长度整数和偏差适应。

给定约束,由此产生的编码非常紧凑,但它仍然不如简单直接的 UTF-8,而且它甚至很难预测给定的输入字符串是否会编码为符合 DNS 的 63 字节限制的 Punycode 字符串,除了只需尝试编码并查看它是否适合。

事实上,编码大小不仅取决于输入字符,还取决于它们出现的顺序,所以同一组字符可能会也可能不会编码为适合 DNS 63 字节的合法 Punycode 字符串限制,取决于字符出现的顺序。

这是极难呈现在向用户解释的用户界面中为什么允许一个名字,但另一个名字包含完全相同的字符不是。 Punycode 或任何其他“ASCII-可以使用为单播 DNS 提议的兼容编码”[RFC5890]

在多播 DNS 消息中。任何在内部表示的文本一些其他表示必须转换为规范的预合成在放入任何多播 DNS 消息之前的 UTF-8。

附录 G. 私有 DNS 命名空间

对以“.local”结尾的名称的特殊处理。已经从 Mac OS 9 开始就在 Macintosh 计算机中实现,并且
今天在 Mac OS X 和 iOS 中继续。还有实现适用于 Microsoft Windows [B4W]、Linux 和其他平台。

一些网络运营商设置私有内部网络(“内部网”)使用了未注册的顶级域,有些可能使用了“.local”顶级域。使用“.local”作为私人顶级域与多播 DNS 冲突,可能会导致问题对于用户。

客户端可以配置为同时发送多播和对这些名称并行进行单播 DNS 查询,这确实允许名称被双向查找,但这会导致额外的网络流量和名称解析的额外延迟,以及当不清楚是否有任何内容时,可能会造成用户混淆给定的结果是通过链路本地多播从对等点接收到的相同的链接,或来自配置的单播名称服务器。

因为为此,我们建议不要使用“.local”作为私有单播 DNS顶级域名。我们不建议使用未注册的顶级域,但如果网络运营商决定这样做,则以下顶级域已用于私人内部没有因尝试重用“.local”而导致的问题的网络。为了这个目的:

  1.   .intranet.
    
  2.   .internal.
    
  3.   .private.
    
  4.   .corp.
    
  5.   .home.
    
  6.   .lan.
    

.内联网。。内部的。。私人的。.corp.。家。局域网

附录 H. 部署历史

1997 年 7 月,在发送至 net-thinkers@thumper.vmeng.com 的电子邮件中邮件列表中,Stuart Cheshire 首先提出运行IP 上的 AppleTalk 名称绑定协议 [RFC6760]。后果这个和相关的 IETF 讨论,IETF Zeroconf 工作组1999 年 9 月获得特许。经过各种工作组讨论和其他非正式的 IETF 讨论,几个 Internet-草稿与一般主题松散相关DNS 和多播,但没有解决服务发现NBP的方面。

2000 年 4 月,Stuart Cheshire 注册了 IPv4 组播地址224.0.0.251 与 IANA [MC4] 并开始编写代码来测试和开发使用执行类似 NBP 的服务发现的想法多播 DNS,记录在一组三个 Internet-草稿:

  • “替代 AppleTalk 名称绑定的协议要求协议 (NBP)” [RFC6760] 是对 AppleTalk 的概述名称绑定协议,因为 IETF 社区中的许多人都有几乎没有使用 AppleTalk 的第一手经验,并且对IETF 社区关于 AppleTalk NBP 所做的事情引起了混乱关于基于 IP 的替代品需要什么。
  • “使用 DNS 发现抽象服务的命名实例”[NIAS]提出了一种使用 DNS 执行类 NBP 服务发现的方法-兼容的名称和记录类型。
  • “多播 DNS”(本文档)指定了一种传输那些使用 IP 多播的 DNS 兼容查询和响应,用于零没有常规单播 DNS 服务器的配置环境可用。

2001 年,Mac OS 9 的更新增加了对解析器库的支持使用多播 DNS 的主机名查找。如果用户键入这样的名称作为“MyPrinter.local”。进入任何使用过的网络软件标准的 Mac OS 9 名称查找 API,然后是那些名称查找 API会将名称识别为点本地名称并通过以下方式查询向 224.0.0.251:5353 发送简单的一次性多播 DNS 查询。

例如,这使用户能够输入名称“MyPrinter.local。”进入他们的网络浏览器以查看打印机的状态和配置网页,或输入名称“MyPrinter.local。”进入打印机设置实用程序以创建打印在该打印机上打印文档的队列。多播 DNS 响应软件,具有完整的服务发现,首先随着 Mac OS X 的发布,开始向最终用户批量发货10.2 “Jaguar” 2002 年 8 月,网络打印机制造商(曾过去在其网络打印机中支持 AppleTalk,并且接受可以为他们提供类似的基于 IP 的技术易用性)此后不久开始采用多播 DNS。

2002 年 9 月,Apple 发布了源代码mDNSResponder 守护进程作为 Apple 标准 Apple 下的开源
公共源代码许可证 (APSL)。

Microsoft 可以使用多播 DNS 响应程序软件

Windows 用户在 2004 年 6 月与 Apple 的“Rendezvous for Windows”(现在是“Bonjour for Windows”),两者都是可执行形式(一个最终用户可下载的安装程序)和开源(其中之一Apple 跨平台代码主体中支持的平台可公开访问的 mDNSResponder CVS 源代码存储库)[BJ]。

2006 年 8 月,Apple 重新授权了跨平台的 mDNSResponder Apache 许可下的源代码,版本 2.0。除了运行 Mac OS X 和Microsoft Windows、Multicast DNS 现已广泛实施硬件设备,例如 Apple 的“AirPort”无线底座站、iPhone 和 iPad,以及来自其他供应商的家庭网关,网络打印机、网络摄像机、TiVo DVR 等。

开源社区产生了许多独立的多播 DNS 的实现,有些是用 C 语言编写的,比如 Apple mDNSResponder 守护进程,以及其他各种不同语言的守护进程包括 Java、Python、Perl 和 C#/Mono。

2007 年 1 月,IETF 发布了信息 RFC“Link-Local多播名称解析 (LLMNR)” [RFC4795],它实质上是
类似于多播 DNS,但在一些小但不兼容重要途径。特别是,LLMNR 设计明确排除支持服务发现,这使得它不适合用于替代 AppleTalk NBP [RFC6760] 的协议。

虽然最初关注多播 DNS 和基于 DNS 的服务Discovery 适用于零配置环境,无需传统的单播 DNS 服务器,基于 DNS 的服务发现也使用单播 DNS 服务器工作,使用 DNS 更新 [RFC2136] [RFC3007]

创建服务发现记录和标准 DNS 查询以查询为他们。 Apple 的“回到我的 Mac”服务,随 Mac OS X 推出
10.5 “Leopard”,2007 年 10 月,使用基于 DNS 的服务发现
单播 DNS [RFC6281]。

2012年6月,谷歌Android操作系统加入原生支持使用 android.net.nsd.NsdManager 用于 DNS-SD 和多播 DNS Android 4.1“Jelly Bean”(API 级别 16)[NSD] 中的类。

相关文章:

【BCT认证_组播DNS】 DNS SRV RR

每天遇见几个罕为人知的Bug,醉了 定义 关键字“必须”、“不能”、“应该”、“不应该”和“可以”本文档中使用的术语应按照 [BCP 14] 中的规定进行解释。本文档中使用的其他术语在 DNS 中定义规范,RFC 1034。 适用性声明 一般情况下,预计…...

【验证码的识别】—— 点触式验证码的识别

一、前言 大家好,不知不觉的我来csdn已经又一周年了,在这一年里,我收获了很多东西,我是2022年2月22日入驻CSDN的,一开始只是为了方便浏览文章的,后来,我也有事没事发发文章,创作了1…...

深入浅出C++ ——priority_queue类深度剖析

文章目录一、priority_queue类简介二、priority_queue类常用接口三、priority_queue类的使用四、STL中priority_queue类的模拟实现一、priority_queue类简介 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。…...

117.Android 简单的拖拽列表+防止越界拖动(BaseRecyclerViewAdapterHelper)

//1.第一步 导入依赖库和权限&#xff1a; //依赖库&#xff1a; //RecyclerView implementation com.android.support:recyclerview-v7:28.0.0//RecyclerAdapter implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.28 //用到的权限&#xff1a; <!…...

什么是Struts2?有哪些优势

Java中Strutsl是最早的基于MVC模式的轻量级Web框架&#xff0c;它能够合理地划分代码结构&#xff0c;并包含验证框架、国际化框架等多种实用工具框架。但是随着技术的进步&#xff0c;Struts1的局限性也越来越多地暴露出来。为了符合更加灵活、高效的开发需求&#xff0c;Stru…...

Ubuntu22.04 安装Mongodb6.X

Ubuntu22.04 安装Mongodb6.X 1、Mongodb简介 1.1 什么是MongoDB? Mongodb是一个跨平台的面向文档的NoSQL数据库。它使用带有可选模式的类似JSON的BSON来存储数据。应用程序可以以JSON格式检索信息。 1.2 MongoDB的优点 可以快速开发web型应用&#xff0c;因为灵活&#xff0c;…...

启动内核,能启动内核但是无法进入内核,始终卡在某一地方,比如 No soundcards found.

项目场景&#xff1a; 配置好uboot后&#xff0c;启动内核&#xff0c;能启动内核但是无法进入内核&#xff0c;始终卡在某一地方&#xff0c;比如下图 ALSA device list:No soundcards found.问题描述 原因分析&#xff1a; 这是无法进入根文件系统而出现的错误&#xff0c…...

SQL零基础入门学习(六)

SQL零基础入门学习&#xff08;六&#xff09; SQL零基础入门学习&#xff08;五&#xff09; SQL 通配符 通配符可用于替代字符串中的任何其他字符。 SQL 通配符用于搜索表中的数据。 在 SQL 中&#xff0c;可使用以下通配符&#xff1a; 演示数据库 在本教程中&#xff…...

股票、指数、快照、逐笔... 不同行情数据源的实时关联分析应用

在进行数据分析时经常需要对多个不同的数据源进行关联操作&#xff0c;因此在各类数据库的 SQL 语言中均包含了丰富的 join 语句&#xff0c;以支持批计算中的多种关联操作。 DolphinDB 不仅通过 join 语法支持了对于全量历史数据的关联处理&#xff0c;而且在要求低延时的实时…...

华为OD机试真题Python实现【 不含 101 的数】真题+解题思路+代码(20222023)

不含 101 的数 题目 小明在学习二进制时,发现了一类不含 101 的数, 也就是将数字用二进制表示,不能出现 101 。 现在给定一个正整数区间 [l,r],请问这个区间内包含了多少个不含 101 的数? 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇…...

centos7 搭建ELK(elasticsearch、logstash、kibana)

1、下载安装包 使用华为镜像站下载速度很快&#xff0c;华为镜像站&#xff1a;https://mirrors.huaweicloud.com/home&#xff0c;下载时需要保证版本一致 2、安装elasticsearch 解压到当前目录 [rootlocalhost elk]# tar zxvf elasticsearch-7.4.2-linux-x86_64.tar.gz 安…...

如何写新闻稿?写好新闻稿的技巧与步骤

新闻稿是传递新闻事件和信息的重要手段&#xff0c;是传媒工作中不可或缺的一部分。写好一篇新闻稿可以让受众了解更多信息&#xff0c;进一步提高他们的关注度。以下是一些写好新闻稿的技巧和步骤&#xff0c;帮助你有效地传达新闻。1、确定新闻的核心信息在开始写新闻稿之前&…...

抖音不想只做“开心果”

出品 | 何玺 排版 | 叶媛 2023一开年&#xff0c;抖音就新动作不断。先是宣布启动线上超市&#xff0c;继而又传出将在3月份试水外卖业务&#xff0c;展现出多面出击的姿态。 01 抖音杀入线上超市、外卖赛道 抖音正式杀入“线上超市”赛道。据多家媒体报道&#xff0c;抖音…...

MATLAB | 如何用MATLAB绘制这样有气泡感的网络图

今天给大家带来一款用来绘制有气泡感的网络图的工具函数&#xff0c;绘制效果如下&#xff1a; 花里胡哨的&#xff0c;气泡大小代表流入流出数据量综合&#xff0c;不同颜色的气泡代表属于不同类&#xff0c;两个气泡之间有连线代表有数据流动&#xff0c;连线透明度代表流动数…...

Linux 远程登录

Linux 一般作为服务器使用&#xff0c;而服务器一般放在机房&#xff0c;你不可能在机房操作你的 Linux 服务器。 这时我们就需要远程登录到Linux服务器来管理维护系统。 Linux 系统中是通过 ssh 服务实现的远程登录功能&#xff0c;默认 ssh 服务端口号为 22。 Window 系统…...

SAP中BOM基础数量及组件数量单位比例关系的注意事项

下图是BOM展开功能CS11在正式系统和测试系统的截图。从截图中的对比不难看出&#xff0c;最下级的原材料A20981-110在组件的数量为1&#xff0c;实际按BOM中的设定比例折算&#xff0c;应该是1个成品&#xff0c;对应需要0.125件原材料。但这里显示的并不是0.125PC&#xff0c;…...

华为OD机试真题Python实现【最大相连男生数】真题+解题思路+代码(20222023)

最大相连男生数 题目 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。 这个相连位置在一个直线上,方向可以是水平的、垂直的、成对角线的或者反对角线的。 注:学生个数不会超过 10000。 🔥🔥🔥🔥🔥👉👉👉👉👉�…...

Vue使用ElementUI对表单元素进行自定义校验

前言 在使用ElementUI的表单元素时候&#xff0c;除了做一些简单的非空处理校验&#xff0c;在一些特殊的场合&#xff0c;还需要我们做一些自定义校验。 其实ElementUI不仅提供了基本的非空校验&#xff0c;也对我们提供了自定义检验。 在使用的时候还是遇到了一些坑&#…...

linux的文件权限介绍

文件权限 在linux终端输入 ls -lh 出现下面界面 介绍 基本信息 其中的开头代表着文件类型和权限 而 root 和kali 则分别代表用户名和用户组名用户名顾名思义就是这个文件属于哪一个用户用户组是说自己在写好一个文件后&#xff0c;这个文件是属于该用户所有&#xff0c;…...

支付系统中的设计模式03:模板方法模式

在上一节末尾,留了一个需求问题,就是老板提出的「支付前锁定账户,支付后增加积分」这个需求「3」没有解决。有些文章写得比较好的人其实会有一些固定的结构格式,比如总分总、总分、分总、并列、对照、递进等等。这种固定的结构格式,就是文章的模板。把它挪到编程中,也是一…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配

目录 一、C 内存的基本概念​ 1.1 内存的物理与逻辑结构​ 1.2 C 程序的内存区域划分​ 二、栈内存分配​ 2.1 栈内存的特点​ 2.2 栈内存分配示例​ 三、堆内存分配​ 3.1 new和delete操作符​ 4.2 内存泄漏与悬空指针问题​ 4.3 new和delete的重载​ 四、智能指针…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析

目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork&#xff08;创建个人副本&#xff09;步骤 2: Clone&#xff08;克隆…...

背包问题双雄:01 背包与完全背包详解(Java 实现)

一、背包问题概述 背包问题是动态规划领域的经典问题&#xff0c;其核心在于如何在有限容量的背包中选择物品&#xff0c;使得总价值最大化。根据物品选择规则的不同&#xff0c;主要分为两类&#xff1a; 01 背包&#xff1a;每件物品最多选 1 次&#xff08;选或不选&#…...

中国政务数据安全建设细化及市场需求分析

(基于新《政务数据共享条例》及相关法规) 一、引言 近年来,中国政府高度重视数字政府建设和数据要素市场化配置改革。《政务数据共享条例》(以下简称“《共享条例》”)的发布,与《中华人民共和国数据安全法》(以下简称“《数据安全法》”)、《中华人民共和国个人信息…...