Internet-Draft Use SVCB with DNS Service Discovery March 2025
Akiwate & Pauly Expires 2 September 2025 [Page]
Workgroup:
Extensions for Scalable DNS Service Discovery
Internet-Draft:
draft-gakiwate-dnssd-use-svcb-00
Published:
Intended Status:
Informational
Expires:
Authors:
G. Akiwate
Apple Inc
T. Pauly
Apple Inc

Use SVCB with DNS Service Discovery

Abstract

DNS Service Discovery (DNS-SD) relies on a sequence of steps to enable the discovery and connection to local network services. The use of Service Binding (SVCB) resource records during the service discovery process enables service instances to advertise properties such as Application-Layer Protocol Negotiation (ALPN) identifiers and other endpoint configuration options. This document describes the use of SVCB / HTTPS RRs in the DNS Service Discovery process as an additional step to allow clients to connect to service instances optimally.

About This Document

This note is to be removed before publishing as an RFC.

The latest revision of this draft can be found at https://gakiwate.github.io/draft-gakiwate-dnssd-use-svcb/draft-gakiwate-dnssd-use-svcb.html. Status information for this document may be found at https://datatracker.ietf.org/doc/draft-gakiwate-dnssd-use-svcb/.

Discussion of this document takes place on the Extensions for Scalable DNS Service Discovery mailing list (mailto:dnssd@ietf.org), which is archived at https://mailarchive.ietf.org/arch/browse/dnssd/. Subscribe at https://www.ietf.org/mailman/listinfo/dnssd/.

Source for this draft and an issue tracker can be found at https://github.com/gakiwate/draft-gakiwate-dnssd-use-svcb.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 2 September 2025.

Table of Contents

1. Introduction

This document describes the use of Service Binding (SVCB) resource records in the DNS Service Discovery process. The use of SVCB records alongside SRV records during service discovery enables richer metadata exchange, enhancing the ability to identify and select optimal connection parameters. Specifically, SVCB records allow service instances to advertise properties such as Application-Layer Protocol Negotiation (ALPN) identifiers and other endpoint configuration options which streamlines client connections by providing essential information for protocol negotiation and connection setup during the discovery phase.

2. Conventions and Definitions

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

3. Motivation

The DNS Service Discovery, with the SRV and TXT records, provides some metadata about the service instance. The TXT records specifically are designed to give additional information about the service itself. The specific nature of the additional data in TXT records, and how it is to be used, is service-dependent. However, additional properties which are not service-specific, like supported protocols, or privacy requirements which speed up connection establishment and improve user privacy do not fit naturally in this scheme.

This documents describes how with the use of SVCB / HTTPS resource records [SVCB] in the DNS service discovery process we can support these non service specific properties such as Application-Layer Protocol Negotiation (ALPN) [ALPN] identifiers and other endpoint configuration options such as Encrypted Client Hello (ECH) [ECH] so that a client can select its preferred options to optimally initiate the connection to the service instance.

4. Use of SVCB with Service Instance Resolution

Typically, the DNS-SD [DNSSD] process begins with a client enumerating service instance names using a PTR record query. The result of this PTR query is a list of zero or more PTR records each pointing to a unique service instance. For example, a query for _foo._tcp.example.com might return multiple PTR records, each corresponding to a specific service instances, such as service1._foo._tcp.example.com and service2._foo._tcp.example.com.

Once the client identifies the exact service instance it wants to connect to, the client issues an SRV query for the service instance. The SRV record for the service instance includes the hostname of the service instance, the port number on which the service is listening, and priority and weight fields for load balancing or failover. For example, querying the SRV record for service1._foo._tcp.example.com might return a hostname like host1.example.com and a port number, such as 8080.

After resolving the SRV record, the client issues A and AAAA queries to map the hostname in the SRV record to an IP address. For example, querying for host1.example.com might return an A record with the IPv4 address 192.0.2.3 or an AAAA record with the IPv6 address 2001:db8::1. Once the IP address is obtained, the client can initiate a connection to the desired service instance using the port number specified in the SRV record.

Once the client has resolved the SRV record to identify the hostname and the port of the service instance, and along with or before the A and AAAA queries are issued, the client can issue a query for an SVCB or HTTPS record, depending on the relevant URI scheme the application is using. The client is expected to use "Port Prefix Naming" [SVCB] to encode the port learned from the SRV response, and the scheme from the URI being accessed by the application. If there is no notion of a URI scheme for the application, then SVCB or HTTPS queries SHOULD NOT be made. If the URI scheme is "http" or "https", the client will issue a query for an HTTPS record; and if the port learned from the SRV response is the same as the default port (443), it will leave off the port prefix.

4.1. Example Use of SVCB RRs

Consider an example where the client application starts with a service name service1._foo._tcp.local and expects to use a URI scheme of "https". The client first queries the SRV record for service1._foo._tcp.example.com, which returns a hostname host1.example.com and port number 8080.

service1._foo._tcp.example.com  3600  IN  SRV   (
    0  0  8080  host1.example.com )

The client application then can synthesize the URI "https://host1.example.com:8080".

The client then issues issue an HTTPS query for _8080.host1.example.com, and A and AAAA queries for host1.example.com.

The service instance operator can publish this HTTPS record:

_8080.host1.example.com  7200  IN HTTPS  1  .  (
    alpn=h2,h3 )

All put together, the client in this case with the alpn values learns that the service instance supports h3 (which the client may prefer over h2) speeding up connection establishment with the service with its preferred protocol. Other SvcParamKeys such as ipv4hint and ipv6hint can also be present in the HTTPS record.

5. Security Considerations

TODO

6. IANA Considerations

This document has no IANA actions.

7. References

7.1. Normative References

[DNSSD]
Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", RFC 6763, DOI 10.17487/RFC6763, , <https://www.rfc-editor.org/rfc/rfc6763>.
[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/rfc/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/rfc/rfc8174>.
[SVCB]
Schwartz, B., Bishop, M., and E. Nygren, "Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, , <https://www.rfc-editor.org/rfc/rfc9460>.

7.2. Informative References

[ALPN]
Friedl, S., Popov, A., Langley, A., and E. Stephan, "Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension", RFC 7301, DOI 10.17487/RFC7301, , <https://www.rfc-editor.org/rfc/rfc7301>.
[ECH]
Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS Encrypted Client Hello", Work in Progress, Internet-Draft, draft-ietf-tls-esni-23, , <https://datatracker.ietf.org/doc/html/draft-ietf-tls-esni-23>.

Appendix A. Acknowledgments

Authors' Addresses

Gautam Akiwate
Apple Inc
Tommy Pauly
Apple Inc