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

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程

基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...

Axure零基础跟我学:展开与收回

亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...