| Internet-Draft | DNS-based Service Discovery for Computin | November 2025 | 
| Liu, et al. | Expires 6 May 2026 | [Page] | 
This document specifies how DNS-based Service Discovery (DNS-SD) can be used as a discovery and resolving method for mapping service identifiers to specific addresses within the CATS framework. It details extensions to DNS-SD to support CATS-specific service discovery requirements and describes how the discovery mechanism integrates with other components of the CATS architecture to enable compuating-aware traffic steering.¶
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 6 May 2026.¶
Copyright (c) 2025 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The Computing-Aware Traffic Steering (CATS) framework [I-D.draft-ietf-cats-framework-07] is designed to enable traffic steering that takes into account both network conditions and computing resource availability. A key requirement of this framework is providing a discovery and resolving method for the mapping of a service identifier to a speficic address [I-D.draft-ietf-cats-usecases-requirements-06]. where computing resources are available.¶
This document specifies how DNS-based Service Discovery (DNS-SD) [RFC6763] can be extended and used to fulfull this requirement within the CATS framework. DNS-SD provides a standardized mechanism for service discovery using existing DNS infrastructure, making it well-suited for integration with the CATS architecture.¶
The approach outlined in this document enables:¶
This document describes the necessary extensions to DNS-SD to support CATS-specific parameters and how the discovery mechanism integrates with other components of the CATS framework.¶
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.¶
This document uses the terms defined in [RFC6763] and [I-D.draft-ietf-cats-framework-07].¶
CATS service instances MUST be identified using DNS-SD service instance name following the format defined in RFC 6763 [RFC6763]:¶
Service Instance Name = <Instance>.<Service>.<Domain>¶
where¶
As defined in RFC 6763 [RFC6763], the <Service> portion of a Service Instance Name consists of a pair of DNS labels¶
_<Service-name>._<Proto>¶
where _<Service-name> is a symbolic name of the desired service, and _<Proto> is the symbolic name of the desired transport protocol.¶
For services using TCP, the second label is "_<tcp>", and for services using any transort protocol than TCP, the second label is _<udp>¶
This document defines the following primary types of service for CATS services:¶
Service instance names in CATS follow the DNS-SD convention:¶
<instance-name>.service-name._tcp.<domain>¶
Where:¶
For example:¶
edge-inference-1._cats-inference._tcp.example.com¶
The instance name SHOULD be unique within the domain to avoid conflicts.¶
In RFC RFC 6763 [RFC6763] requires that every DNS-SD service MUST have a TXT record in additon to its SRV record, with the same name, even if the service has no addtional data to store and the TXT record contains no more than a single zero Byte. However, it is widely recognized that using TXT records will introduce security issues such as being abused by malwares. To avoid the security and parsing issues associated with TXT records, this document defines a new DNS Resource Record type, CATSPARAM, for advertising CATS services parameters.¶
The CATSPARAM RR is associated with a service instance name and contains a structured set of key-value paers representing the service instance's capabilities and state.¶
The RDATA for a CATSPARAM record consists of a series of parameters blocks. Each block is a key = value pair, represented as a length-prefix string. This format allows for extensibility while maintaining a clear structure.¶
The following parameters are defined:¶
For each service instance, an SRV record MUST be published according to RFC 2782 to enable clients to locate the service. The SRV record format for CATS services instance is:¶
<instance-name>._cats._tcp.<domain> IN SRV <priority> <weight> <port> <target>¶
Where:¶
For example:¶
edge-inference-1._cats._tcp.example.com. SRV 0 5 8080 compute1.example.com.¶
The DNS-SD discovery mechanism integrates with the CATS control plane in the following ways:¶
Service parameters advertised through DNS-SD TXT records provide inputs to the CATS framework's decision-making process for traffic steering.¶
The computing service MUST ensure that advertised parameters accurately reflect the current state and capabilities of the computing resource. Parameters SHOULD be updated when significant changes in resource availability or characteristics occur.¶
The CATS control plane MAY augment the DNS-SD parameters with additional information from other sources when making steering decisions.¶
Computing services MUST update their DNS-SD records when significant changes in availability or capabilities occur. These updates can be performed through:¶
The frequency of updates SHOULD be balanced to reflect accurate information while avoiding excessive DNS traffic. Services SHOULD implement a dampening mechanism to avoid frequent updates for minor or transient changes.¶
For highly dynamic parameters like current load, services MAY implement a threshold-based update policy, only updating the DNS records when the parameter crosses predefined thresholds.¶
The DNS-SD for CATS protocol flow can be shown in the following figure.¶
+----------+       +---------+        +---------+          +---------+
|   CATS   |       |   DNS   |        |   CATS  |          |  CATS   |
|  Service |       |         |        |  C-SMA  |          |  Client |
+----------+       +---------+        +---------+          +---------+
     |                  |                  |                    |
     |                  |                  |                    |
  Phase 1: Registration |                  |                    |
     |                  |                  |                    |
     | 1. DNS_UPDATE(PTR, SRV, TXT records)|                    |
     |----------------->|                  |                    |
     |                  |                  |                    |
     | 2. UPDATE_ RESPONSE(success)        |                    |
     |<-----------------|                  |                    |
     |                  |                  |                    |
     | 3. CATS_REGESTER(svc_name, instance_name,                |
              domain, host, port, params)  |                    |
     |------------------------------------>|                    |
     |                  |                  |                    |
     | 4. CATS_REGISTER_RESPONSE(success)  |                    |
     |<------------------------------------|                    |
     |                  |                  |                    |
     Phase 2: Discovery |                  |                    |
     |                  |                  |                    |
     |                  |       5. DNS_QUERY(type=PTR,svc_name) |
     |                  |<--------------------------------------|
     |                  |                  |                    |
     |                  |       6. DNS_RESPONSE(instance names) |
     |                  |-------------------------------------->|
     |                  |                  |                    |
     |                  |       7. DNS_QUERY(type=SRV+CATSPARAM,|
     |                  |                 instance name)        |
     |                  |<--------------------------------------|
     |                  |                  |                    |
     |                  |8. DNS_RESPONSE(host, port, parameters)|
     |                  |-------------------------------------->|
     |                  |                  |                    |
     Phase 3: Selection and resolution     |                    |
     |                  |                  |                    |
     |                  |       9. SERVICE_REQUEST(service type,|
     |                  |                          requirements)|
     |                  |                  |<-------------------|
     |                  |                  |                    |
     |                  |       10. SERVICE_SELECTED(hosts,port)|
     |                  |                  |------------------->|
     |                  |                  |                    |
     |                  |             11. DNS_LOOKUP(host)      |
     |                  |<--------------------------------------|
     |                  |                  |                    |
     |                  |        12. DNS_RESPONSE(IP address)   |
     |                  |-------------------------------------->|
     |                  |                                       |
     |                  13. CONNECT(IP address, port)           |
     |<-------------------------------------------------------->|
     |
¶
Registration can be performed using authenticated DNS update mechanisms [RFC2136] or Dynamic DNS update protocols.¶
For each CATS service:¶
The DNS_UPDATE message MUST be authenticated using TSIG or SIG(0) as described in Section 9. To prevent name collision, the update transaction SHOUDLD use preconditions. For a new service, the update MUST assert that the PTR, SRV and CATSPARAM record names do not already exist (NXDOMAIN precondition).¶
The CATS control plane MAY facilitate this registration process through an appropriate management interface.¶
Clients requesting CATS services initiate the discovery process by querying for PTR records matching the appropriate service type. For example:¶
_cats-inference._tcp.<domain>¶
The response includes the list of matching service instance names. The client then queries for the SRV and CATSPARAM records associated with each service instance to obtain location information and service parameters.¶
After obtaining the list of available services and their parameters, the client or the CATS control plane performs service selection based on the application requirements and the advertised parameters.¶
The selection process MAY consider:¶
Once a suitable service is selected, the client resolves the hostname from the SRV record to an IP address using standard DNS A or AAAA queries, and establishes a connection to the service using the specified port.¶
When a service instance is terminated or becomes permanenetly unavailable, is MUST be deregistered. This ensures the clients no longer discover ot attempt to connect to the unavailable services. The deregistration is performed by sending an authenticated DNS_UPDATE message that deletes all records associated with the dervice isntance (PTR, SRV, and CATSPARAM). The delete request MUST be authenticated with the same credentials used for registration to prove ownership.¶
In local network environments, Multicast DNS (mDNS) [RFC6762] MAY be used in conjunction with DNS-SD to provide service discovery without requiring a centralized DNS server.¶
When using mDNS, CATS services SHOULD:¶
For larger-scale deployments across multiple networks, traditional unicast DNS infrastructure is RECOMMENDED. In these scenarios:¶
Implementers SHOULD consider the following performance aspects:¶
This memo includes no request to IANA.¶
The use of DNS-SD for CATS service discovery introduces several security considerations:¶