来源:IP Oktoberfest 主讲人:Gerard Phillips 内容整理:尹文沛 主讲人简要介绍了 DNS-SD 如何用于简化 NMOS 端的配置,然后是如何部署此类系统的概述。 DNS-SD 可以将 —nmos-register.—tcp.gplab.local 解析为 RDSa.gplab.local。 单播 DNS-SD 单播 DNS-SD 是基于 服务器-客户端 的技术。主机将会使用单播,这样你就可以构建一个网络,使其具有可路由,可扩展的 LAN, WAN 口等特性。 或许 Media 节点并不在接口处提供 DNS-SD 服务,需要在更高层获取 DNS-SD 服务。另外,其他一些特殊的客户端有非常严格的隔离规则,他们不希望这些东西连接到任何内部的网络中。 但是如果终端节点在他们的 OOB 端口不支持单播 DNS-SD 该怎么办?目前的答案是,如果没有则无法使用 OOB 网络获取多媒体服务。
DNS-SD(DNS Service Discovery):基于DNS协议的服务发现 2. NBNS(NetBIOS name service):NetBIOS名称服务(已过时) 4. etc 0x02 DNS-SD DNS-SD(DNS Service Discovery)是一种基于 DNS 协议的服务发现协议,设备之间可以通过该协议自动发现服务;DNS-SD 兼容 mDNS 协议,同样使用 UDP 5353 端口,在 Wireshark 中统一标注为 MDNS。 通过 Wireshark 抓包如下: [2.嗅探周期性的DNS-SD/mDNS报文] 除了通过嗅探周期性的报文获取信息,我们还发现 DNS-SD 协议提供了一种主动查询服务的功能(https://datatracker.ietf.org 使用范围还是比较小的,最成熟 Zeroconf 实现是苹果家的 Bonjour,底层使用 DNS-SD 协议,用上面的脚本扫出来的大部分都是苹果的产品。
OpenClaw 采用 Bonjour (mDNS/DNS-SD) 作为核心发现协议,并深度集成 Tailscale 以实现跨网络的广域发现。 正确做法:客户端必须使用 DNS-SD 解析出的 SRV + A/AAAA 记录 进行实际连接。 错误做法:直接信任 lanHost 或 gatewayPort 进行路由。 OpenClaw 通过 单播 DNS-SD (Unicast DNS-SD) 结合 Tailscale Split-DNS 实现跨网络发现。 浏览服务 (macOS/Linux) dns-sd -B _openclaw-gw._tcp openclaw.internal. # 2. 在广域网中,它借助 Tailscale 的单播 DNS-SD 打破网络边界。 记住:发现只是引路人,连接必须验明正身。
基本概念: Zeroconf协议: Zeroconf是一组协议,包括mDNS(多播DNS)和DNS-SD(DNS服务发现)。这些协议允许设备在没有专门服务器的情况下自动配置网络和发现服务。 DNS-SD: DNS服务发现允许设备在网络上广告和查找可用的网络服务。设备可以向局域网广播它们提供的服务,并且其他设备可以查询局域网中的可用服务。 Avahi在虚拟化环境中的解决方案: 自动服务发现: Avahi使用Zeroconf协议,特别是mDNS和DNS-SD,允许虚拟机自动广播和发现服务。
Avahi 是一个免费的零配置网络 (zeroconf) 实现,包括一个用于组播 DNS/DNS-SD 服务发现的系统。它允许程序发布和发现在本地网络上运行的服务和主机,而无需特定配置。
通过发送DNS-SD查询并收集所有响应。通过对常见子域的暴力猜测来枚举 DNS 主机名。我们只需加dns-brute.srv 参数即可。dns-brute 还能尝试枚举常见的 DNS SRV 记录。
而且客户端能够做出更聪明的(比如特定于应用程序的)负载均衡决策,但也存在一些缺点: 客户端用到的每种语言都要实现一遍 需要自行维护一个高可用的注册服务 服务发现相关逻辑都在客户端实现,比如重试,造成客户端比较重 DNS-SD 特殊的,可以将 DNS 用作服务注册表,称之为DNS-SD(DNS-based Service Discovery) 通过 DNS SRV 记录来完成服务到实例的一对多映射: SRV 记录(Service
mDNS可以与DNS服务发现 (DNS-SD)结合使用, DNS服务发现是RFC 6763中单独指定的配套零配置技术。
avahi-daemon # 查看服务状态 root@debianhs:~# systemctl status avahi-daemon ● avahi-daemon.service - Avahi mDNS/DNS-SD
nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD
OS X 的第一个 DNS 服务发现 (DNS-SD) 版本集中在单链路网络的多播 DNS (mDNS) 上,因为这是 IP 软件服务的最差环境。 Bonjour 定义了一种用于发现服务的新协议 (DNS-SD),但是,它对您发现的服务类型没有任何限制。
root@localhost sh]# . userdel.sh [root@localhost sh]# tail -5 /etc/passwd avahi:x:70:70:Avahi mDNS/DNS-SD
DNS,mDNS,DNS-SD Domain Name System (DNS)。 Multicast Domain Name System (mDNS)。 DNS-based service discovery (DNS-SD)。 DNS最小2.4 KB至3 KB闪存,1 KB RAM占用空间。 客户端支持。 mDNS和DNS-SD仅可用于Azure RTOS NetX Duo。 POP3 Post Office Protocol Version 3 (POP3)。 此支持包括以下附加协议产品: MQTT,CoAP,LWM2M,6LoWPAN,SSL / TLS / DTLS,IPsec,AutoIP,DHCP,DNS,mDNS,DNS-SD,FTP,HTTP,IPsec
_udp): # DNS-SD { } # OR: manual: # Counter Polling: # polling = 30 # default sampling
DNS,mDNS,DNS-SD Domain Name System (DNS)。 Multicast Domain Name System (mDNS)。 DNS-based service discovery (DNS-SD)。 DNS最小2.4 KB至3 KB闪存,1 KB RAM占用空间。 客户端支持。 mDNS和DNS-SD仅可用于Azure RTOS NetX Duo。 POP3 Post Office Protocol Version 3 (POP3)。 此支持包括以下附加协议产品: MQTT,CoAP,LWM2M,6LoWPAN,SSL / TLS / DTLS,IPsec,AutoIP,DHCP,DNS,mDNS,DNS-SD,FTP,HTTP,IPsec
DNS,mDNS,DNS-SD Domain Name System (DNS)。 Multicast Domain Name System (mDNS)。 DNS-based service discovery (DNS-SD)。 DNS最小2.4 KB至3 KB闪存,1 KB RAM占用空间。 客户端支持。 mDNS和DNS-SD仅可用于Azure RTOS NetX Duo。 POP3 Post Office Protocol Version 3 (POP3)。 此支持包括以下附加协议产品: MQTT,CoAP,LWM2M,6LoWPAN,SSL / TLS / DTLS,IPsec,AutoIP,DHCP,DNS,mDNS,DNS-SD,FTP,HTTP,IPsec
:6LowPAN,IPv4 / IPv6,RPL) 识别(例如:EPC,uCode,IPv6,URI) 通讯/交通(例如:Wifi,蓝牙,LPWAN) 发现(例如:Physical Web,mDNS,DNS-SD
sbin/nologin saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD
message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin avahi:x:70:70:Avahi mDNS/DNS-SD
running Security Auditing Service avahi-daemon.service loaded active running Avahi mDNS/DNS-SD