Michael Koster
2017-04-07 15:03:27 UTC
Hi,
The last discussion as I recall from the CoRE meeting was around 3 points:
1. Using DNS-SD to find a resource directory
2. Providing "ins" and "exp" link attributes
3. Specifying DNS-SD mapping to links in the RD document
We have already decided for points 1 and 2 within the scope of the RD document. We are discussing whether the DNS-SD mapping should be published in the RD document.
At IETF 98 we had two discussions..
First, should DNS-SD mapping be included in the RD draft?
This question can be informed by the requirements for the mapping itself and the expected use case of the mapping.
Based on the discussion below, there is a case to be made for publishing the mapping or RD links to DNS-SD records as a separate document.
- DNS-SD is not required to use RD. It would not be helpful to couple RD and DNS-SD unnecessarily by creating intra-document dependencies.
- A good use scenario and introductory explanation is needed, describing the relationship of RD to DNS-SD, which may be better served in its own document.
- Additional constraints on the use of RD are needed to facilitate the mapping, such as limiting the length of identifiers, requiring the presense of the "rt" attribute, requiring the use of "ins" and "exp". What is mandatory in RD?
- The rd-dns-sd draft can refer to RD normatively and publish in the same time frame, since the 2 documents will both be working group adopted and have good support. The RD document will not need to refer to the RD-DNS-SD document normatively.
There is a github repository with this work in progress and issues tracking:
RD document: https://github.com/core-wg/resource-directory <https://github.com/core-wg/resource-directory>
RD to DNS-SD mapping document: https://github.com/core-wg/rd-dns-sd <https://github.com/core-wg/rd-dns-sd>
The second question was to clarify the mapping itself, and its use case. We had several enlightening discussions, which I will try to summarize here.
What is DNS-SD mapping and how does it work? What are the use cases and what assumptions do they drive?
The big bit seems to be service discovery vs. resource discovery
The use case for DNS-SD is service discovery across broad network scope, including mesh and bridged/routed networks.
The use case for RD is fine grain resource discovery using hyperlinks, as part of a REST client-server state machine. Clearly these are mostly complementary use cases, and it is easy to build service discovery on top of REST. Resource Directories are themselves REST servers and can respond to multicast discovery queries, but have no well defined discovery proxy for routed and bridged networks. Once the RD address is known, it can participate in REST interactions through unicast transactions.
The use case for RD to DNS-SD mapping is in making DNS-SD services discoverable as RD registered endpoints and links, and to make RD registered endpoints and links discoverable as DNS-SD services.
Based on this, a system could bootstrap resource discovery by advertizing the resource directory location(s) usind DNS-SD and the link mapping to RD services; e.g. links with "rt=core.rd;rt=core.rd-lookup-res;core.rd-lookup-ep" etc. would be registered in an RD and exported to DNS-SD. Other RD services in the network would expose links to the RD services that were discovered over DNS-SD. In this way, all of the RD services that are only reachable using unicast could be discovered in "local" RD services. DNS-SD would be used to keep all of the RD service locations discoverable through RD on local network scope.
A number of assumptions and requirements for the mapping:
Links registered in RD for export to DNS-SD use the "rt" link attribute for translation to DNS service type name and transmitted as a SRV record.
Link context, consisting of scheme+authority+port, will be translated to a DNS service location and transmitted as a PTR record.
The remaining information in the link, or perhaps the entire link, will be transmitted in DNS-SD as a TXT record.
Based on these discussion, I am recommending that the DNS-SD mapping to RD links be taken up in a separate document, to normatively refer to the RD document, and be published in the same time frame in order to enable systems to use both RD and DNS-SD together.
The last discussion as I recall from the CoRE meeting was around 3 points:
1. Using DNS-SD to find a resource directory
2. Providing "ins" and "exp" link attributes
3. Specifying DNS-SD mapping to links in the RD document
We have already decided for points 1 and 2 within the scope of the RD document. We are discussing whether the DNS-SD mapping should be published in the RD document.
At IETF 98 we had two discussions..
First, should DNS-SD mapping be included in the RD draft?
This question can be informed by the requirements for the mapping itself and the expected use case of the mapping.
Based on the discussion below, there is a case to be made for publishing the mapping or RD links to DNS-SD records as a separate document.
- DNS-SD is not required to use RD. It would not be helpful to couple RD and DNS-SD unnecessarily by creating intra-document dependencies.
- A good use scenario and introductory explanation is needed, describing the relationship of RD to DNS-SD, which may be better served in its own document.
- Additional constraints on the use of RD are needed to facilitate the mapping, such as limiting the length of identifiers, requiring the presense of the "rt" attribute, requiring the use of "ins" and "exp". What is mandatory in RD?
- The rd-dns-sd draft can refer to RD normatively and publish in the same time frame, since the 2 documents will both be working group adopted and have good support. The RD document will not need to refer to the RD-DNS-SD document normatively.
There is a github repository with this work in progress and issues tracking:
RD document: https://github.com/core-wg/resource-directory <https://github.com/core-wg/resource-directory>
RD to DNS-SD mapping document: https://github.com/core-wg/rd-dns-sd <https://github.com/core-wg/rd-dns-sd>
The second question was to clarify the mapping itself, and its use case. We had several enlightening discussions, which I will try to summarize here.
What is DNS-SD mapping and how does it work? What are the use cases and what assumptions do they drive?
The big bit seems to be service discovery vs. resource discovery
The use case for DNS-SD is service discovery across broad network scope, including mesh and bridged/routed networks.
The use case for RD is fine grain resource discovery using hyperlinks, as part of a REST client-server state machine. Clearly these are mostly complementary use cases, and it is easy to build service discovery on top of REST. Resource Directories are themselves REST servers and can respond to multicast discovery queries, but have no well defined discovery proxy for routed and bridged networks. Once the RD address is known, it can participate in REST interactions through unicast transactions.
The use case for RD to DNS-SD mapping is in making DNS-SD services discoverable as RD registered endpoints and links, and to make RD registered endpoints and links discoverable as DNS-SD services.
Based on this, a system could bootstrap resource discovery by advertizing the resource directory location(s) usind DNS-SD and the link mapping to RD services; e.g. links with "rt=core.rd;rt=core.rd-lookup-res;core.rd-lookup-ep" etc. would be registered in an RD and exported to DNS-SD. Other RD services in the network would expose links to the RD services that were discovered over DNS-SD. In this way, all of the RD services that are only reachable using unicast could be discovered in "local" RD services. DNS-SD would be used to keep all of the RD service locations discoverable through RD on local network scope.
A number of assumptions and requirements for the mapping:
Links registered in RD for export to DNS-SD use the "rt" link attribute for translation to DNS service type name and transmitted as a SRV record.
Link context, consisting of scheme+authority+port, will be translated to a DNS service location and transmitted as a PTR record.
The remaining information in the link, or perhaps the entire link, will be transmitted in DNS-SD as a TXT record.
Based on these discussion, I am recommending that the DNS-SD mapping to RD links be taken up in a separate document, to normatively refer to the RD document, and be published in the same time frame in order to enable systems to use both RD and DNS-SD together.