Hello Brian,

Example: if an Ethernet Join Proxy tries mDNS to discover a Registrar, but the Registrar is only announced via the site DNS infrastructure (unicast), then discovery would fail.

Isn't that entirely dependent on whether the name is in .local or not? In any case it's an issue about what sort of resolver the pledge has, surely? And isn't this something that DNS-SD is supposed to take care of?
Yes, DNS-SD is supposed to take care of that: the Join Proxy (JP) would first use a unicast DNS-SD query to discover the list of browsing domains. The returned list of domains is then used to do queries (PTR) for services of type "Registrar" in each of these domains. The list of domains can include "local." if that's configured by the DNS admin. That would tell the device to also discover/browse in the "local." domain. So initially a device wouldn't know which domain to use for browsing, but that can be discovered (even multiple).  And if browsing domain discovery fails, it could always fall back to "local.".

For constrained devices the above is typically not how things work, however. E.g. devices not related to BRSKI currently, Thread Border Routers, will default to mDNS / *.local. discovery for peer services and not bother to do the browsing domains discovery. I assumed something similar could happen with Ethernet Join Proxy implementations unless some specification clearly mandates they need to follow the above procedure. Or vice versa, someone only implements unicast DNS-SD discovery on a device and that doesn't even have an mDNS implementation on board - which is a lot of extra code, it's a protocol in its own right.

So this is an issue about what sort of resolver(s) the Join Proxy has implemented.   (For a Pledge, I assume mDNS would be the default way because a Pledge doesn't have a known+accessible DNS server to use.)


BTW, the reason that GRASP has its own discovery mechanism via link-local IPv6 is to avoid any dependency on DNS or mDNS, so that it can run on bare metal. Thus, GRASP runs on bare 802.3 if you want it to; it doesn't really *need* an ACP except for security. I have no idea whether it could run on Thread and 6TiSCH.
Agree, GRASP could work outside of an ACP - it could be run inside a Thread network, which provides the security 'substrate' that the GRASP RFC 8990 requires. But in the Thread case there's already unicast DNS-SD (plus SRP for service registration as Stuart mentioned), so it would be not necessary to also add GRASP.  Unicast was selected for better network performance (avoid query flooding etc).   For (high-speed) Ethernet this is less of a concern.


That said, I see a role for profiles.

Each "profile" would probably need to be a standard (defined outside IETF) or an RFC.

I think they could be less formally defined than that, at least initially.

Ok, maybe then just in an Appendix in the BRSKI-discovery draft?  To get an initial view of what we mean and what choices can be made to get interoperable implementations.

thanks
Esko


Regards/Ngā mihi
   Brian Carpenter
--
*IoTconsultancy.nl* | Email/Teams: [email protected] | +31 6 2385 8339
_______________________________________________
Anima mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to