当前位置: 首页 > 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」没有解决。有些文章写得比较好的人其实会有一些固定的结构格式,比如总分总、总分、分总、并列、对照、递进等等。这种固定的结构格式,就是文章的模板。把它挪到编程中,也是一…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

STM32HAL库USART源代码解析及应用

STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...