If you like BoxMatrix then please contribute Supportdata, Supportdata2, Firmware and/or Hardware (get in touch).
My metamonk@yahoo.com is not reachable by me since years. Please use hippie2000@webnmail.de instead.
Property:DNS-SD
BoxMatrix >> Lexicon >> Network-Protocols >> DNS-SD | @ BoxMatrix - IRC-Chat - Translate: de es fr it nl pl |
News | Selectors | Models | Accessories | Components | Environment | Config | Commands | System | Webif | Software | Develop | Lexicon | Community | Project | Media |
Computer | FRITZ | I18N | Telephony | Smarthome | Internet | Protocols | Multimedia | Formats | Hardware | Software | Research |
Protocol
Protocol: | DNS-SD | Wiki | Freetz | IPPF | whmf | AVM | Web |
Short for: | DNS Service Discovery | ||||||
Location: | Lexicon >> Network-Protocols | ||||||
Weblinks: | Wikipedia.int - RFC-6763 - dns-sd.org | ||||||
Description: | Browse a network for services via DNS |
Goto: FRITZ!OS - Examples - SMW-Browser
Details
DNS-SD (DNS Service Discovery
) is a protocol used to browse a network for services via DNS.
FRITZ!OS
For Service Discovery FRITZ!OS uses the SSDP protocol. Just for Matter it uses mDNS based DNS-SD.
This is done by the matterd daemon using libdnssd.so to serve the mDNS port Port-5353-udp for DNS-SD.
The FRITZ!Box or Smart Gateway acts as a Matter-Gateway
. It wants to be linked to a Matter-Controller
.
The linking is called Commissioning
. The controller is the Commissioner
and the gateway a Commissionable Node
.
During Commissioning
the gateway performs Commissionable Node Discovery
announcing _matterc._udp.local
.
For this it cyclically sends std mDNS query responses to the multicast IPs 224.0.0.251
(IPv4) and FF02::FB
(IPv6).
This happens without any prior mDNS request. Source and target port are both Port-5353-udp.
The controller acts the same way but performs Commissioner Discovery
announcing _matterd._udp.local
.
The actual linking procedure is part of the Matter protocol and not subject of this article.
After successful Commissioning
the link is called a Fabric
, the term for a Matter network.
See also the DNS-SD section in the Matter Discovery chapter of the Matter manual.
There's also a nice article about Matter discovery.
Matter stack:
- Lexicon: Matter, DNS-SD
- Environment: CONFIG_MATTER
- Sockets: me_matterd.ctl, me_libavmmatter_2.ctl, me_libavmmatter_4.ctl
- Ports: Port-5540-udp, Port-5353-udp
- Commands: matterd, matter.support.sh, matter_argo.support.sh
- Libraries: libavmmatter.so, libASN1.so, libCHIPAppServer.so, libCHIPDataModel.so, libChipCore.so
- Libraries: libChipCrypto.so, libCredentials.so, libDefaultAttestationVerifier.so, libDeviceLayer.so
- Libraries: libInetLayer.so, libLinux.so, libMessagingLayer.so, libSecureChannel.so
- Libraries: libSupportLayer.so, libSystemLayer.so, libTransportLayer.so, libaddress_resolve.so, libdnssd.so
- Config: ahausr.cfg
- UI-Modules: matter
- Tempfiles: chip_config.ini, chip_counters.ini, chip_ factory.ini, chip_kvs
- Tempfiles: matterd($num).slab, matterd($num).slab.done
- Logs: .srb_matter_info, .srb_matter_info.sem, .srb_matter_error, .srb_matter_error.sem
Examples
A Commissionable Node Discovery
IPv4 packet from fsgw fw 7.63 captured with Wireshark:
Frame 38: 315 bytes on wire (2520 bits), 315 bytes captured (2520 bits) on interface 0 Ethernet II, Src: 12:72:74:80:65:fc (12:72:74:80:65:fc), Dst: IPv4mcast_fb (01:00:5e:00:00:fb) Internet Protocol Version 4, Src: 192.168.178.2, Dst: 224.0.0.251 User Datagram Protocol, Src Port: 5353, Dst Port: 5353 Multicast Domain Name System (response) Transaction ID: 0x0000 Flags: 0x8400 Standard query response, No error Questions: 0 Answer RRs: 9 Authority RRs: 0 Additional RRs: 0 Answers _matterc._udp.local: type PTR, class IN, FDB35A031FF1DDB9._matterc._udp.local Name: _matterc._udp.local Type: PTR (domain name PoinTeR) (12) .000 0000 0000 0001 = Class: IN (0x0001) 0... .... .... .... = Cache flush: False Time to live: 120 Data length: 19 Domain Name: FDB35A031FF1DDB9._matterc._udp.local _V4757._sub._matterc._udp.local: type PTR, class IN, FDB35A031FF1DDB9._matterc._udp.local Name: _V4757._sub._matterc._udp.local Type: PTR (domain name PoinTeR) (12) .000 0000 0000 0001 = Class: IN (0x0001) 0... .... .... .... = Cache flush: False Time to live: 120 Data length: 2 Domain Name: FDB35A031FF1DDB9._matterc._udp.local _S10._sub._matterc._udp.local: type PTR, class IN, FDB35A031FF1DDB9._matterc._udp.local Name: _S10._sub._matterc._udp.local Type: PTR (domain name PoinTeR) (12) .000 0000 0000 0001 = Class: IN (0x0001) 0... .... .... .... = Cache flush: False Time to live: 120 Data length: 2 Domain Name: FDB35A031FF1DDB9._matterc._udp.local _L2805._sub._matterc._udp.local: type PTR, class IN, FDB35A031FF1DDB9._matterc._udp.local Name: _L2805._sub._matterc._udp.local Type: PTR (domain name PoinTeR) (12) .000 0000 0000 0001 = Class: IN (0x0001) 0... .... .... .... = Cache flush: False Time to live: 120 Data length: 2 Domain Name: FDB35A031FF1DDB9._matterc._udp.local _CM._sub._matterc._udp.local: type PTR, class IN, FDB35A031FF1DDB9._matterc._udp.local Name: _CM._sub._matterc._udp.local Type: PTR (domain name PoinTeR) (12) .000 0000 0000 0001 = Class: IN (0x0001) 0... .... .... .... = Cache flush: False Time to live: 120 Data length: 2 Domain Name: FDB35A031FF1DDB9._matterc._udp.local FDB35A031FF1DDB9._matterc._udp.local: type SRV, class IN, priority 0, weight 0, port 5540, target A2690DD6618C.local A2690DD6618C.local: type AAAA, class IN, cache flush, addr fe80::1072:74ff:fe80:65fc A2690DD6618C.local: type A, class IN, cache flush, addr 192.168.178.2 FDB35A031FF1DDB9._matterc._udp.local: type TXT, class IN [Unsolicited: True]