RFC 3832
Remote Service Discovery in the Service Location Protocol (SLP) via DNS SRV
Remote Service Discovery in the Service Location Protocol (SLP) via DNS SRV π
Title block tea β: this is RFC 3832, and it's an Experimental doc from July 2004 πΈ. The authors are W. Zhao, H. Schulzrinne (Columbia University), E. Guttman (Sun Microsystems), C. Bisdikian and W. Jerome (IBM). Nothing in the title block says it obsoletes or updates anything, so it's a standalone vibe π .
Status of this Memo
Okay so, this memo defines an Experimental Protocol for the Internet community π§ͺ. It does not specify an Internet standard of any kind. The authors are asking for discussion and suggestions for improvement, and distribution of this memo is unlimited π.
Copyright Notice
Copyright (C) The Internet Society (2004). π«Ά
Abstract
Remote service discovery is basically finding the services you want in remote (aka non-local) DNS domains π. This doc explains how to do remote service discovery in the Service Location Protocol (SLP) using DNS SRV β¨. It defines the DNS SRV Resource Records for SLP Directory Agent services, talks through the issues you run into when you mix SLP and DNS SRV together for remote discovery, and gives the steps for finding the services you want in remote DNS domains π¦.
1. Introduction β¨
Okay bestie, this document is about remote service discovery in the Service Location Protocol (SLP) [RFC2608] using DNS SRV [RFC2782] π. Remote service discovery means finding the services you want in given remote DNS domains. Local service discovery means finding them inside your own local administrative domain π .
SLP is a scalable framework for local service discovery and selection, and it's honestly iconic π. In SLP, User Agents (UAs) find the services they want in the local administrative domain by querying all Service Agents (SAs) via multicast, or by querying a Directory Agent (DA) via unicast π‘. To query a DA with unicast, a UA first needs to learn about that DA through DHCP, static configuration, or multicast (either listening for DAAdvert multicast or issuing DA discovery SrvRqst multicast) π§.
DNS SRV is really good at remote service discovery, but there's a catch π. If multiple servers are discovered via DNS SRV for one service, only priority and weight can be used to pick between them. If you also need to consider extra service properties (like cost, speed, and service quality), DNS SRV is not enough on its own π.
So the move is to use SLP and DNS SRV together π. First, a UA uses DNS SRV to find SLP DAs at a remote DNS domain. Then the UA uses SLP to query one of those DAs to find the services it wants. This way we dodge the limitations of using each one alone π₯. Without DNS SRV, an SLP UA has to rely on static configuration to learn about remote DAs, because DHCP and multicast DA discovery aren't generally applicable beyond the local administrative domain π. Without SLP, DNS SRV has limited support for service selection, so that's a no-go too π ββοΈ.
In this document, we first define the DNS SRV Resource Records (RRs) for SLP DA services. These map a given DNS domain to remotely accessible (aka accessible from the Internet) DAs in that domain πΈ. Then we talk through the issues with using SLP and DNS SRV together for remote discovery. Finally, we give the steps for discovering services in remote DNS domains π .
1.1. Notation Conventions
Okay, so the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are meant to be interpreted as described in BCP 14, RFC 2119 [RFC2119] π. Read those words the RFC 2119 way, no cap π€.
2. The DNS SRV RRs for SLP DA services π¦
According to RFC 2782 [RFC2782], the DNS SRV RRs for SLP DA services look like this:
_slpda._Proto.Name TTL Class SRV Priority Weight Port Target
Here, "slpda" is the symbolic name for SLP DA services π§. The Proto field is either "tcp" or "udp", and the Target field is the domain name of an SLP DA π. For a full breakdown of each field in DNS SRV RRs, go check out [RFC2782] β¨.
Next, here's an example of using DNS SRV RRs to map a given DNS domain to remotely accessible DAs in that domain π. Say you want to find remotely accessible DAs in a remote domain, like example.com. The UA makes a DNS query [RFC1034,RFC1035] for QNAME=_slpda._tcp.example.com (or QNAME=_slpda._udp.example.com), with QCLASS=IN and QTYPE=SRV π. The UA then gets a list of DNS SRV RRs in the DNS reply, and that list gives all the remotely accessible DAs in the domain example.com. It looks like this:
;; Priority Weight Port Target
_slpda._tcp.example.com IN SRV 0 0 427 da1.example.com
_slpda._tcp.example.com IN SRV 0 0 427 da2.example.com
3. Remote Service Discovery in SLP via DNS SRV π§ββοΈ
SLP DAs can be discovered in two ways π: (1) using the mechanisms described in RFC 2608, or (2) using DNS SRV RRs as described in this document. The second approach is useful for UAs that want to get service information for remote DNS domains πΈ. For example, a mobile node visiting a network (without using mobile IP) might want info about services in its home network π‘.
3.1. The DNS Domain of Interest for Remote Service Discovery π
To use DNS SRV RRs to discover SLP DAs, you need to know the domain where those SLP DAs are registered π. For remote service discovery, the DNS domain of interest is assumed to be known up front, through a priori knowledge. For example, a UA gets configured with a domain name, or the user types the domain name in manually βοΈ.
Also, there is no implied "search order" of DNS domains when you're finding remote DAs π
ββοΈ. For instance, say a UA is looking for remote DAs in the domain foo.bar.example.com. It SHOULD only look for _slp._tcp.foo.bar.example.com (or _slp._udp.foo.bar.example.com), and it MUST NOT fall back to look for _slp._tcp.bar.example.com, _slp._tcp.example.com, and so on π«.
3.2. SLP DAs for Remote Service Discovery π
A UA finds the services it wants in a given remote DNS domain by unicasting requests to DAs in that domain π¨. The UA uses remote DAs according to these prioritized rules: (1) it uses DAs it has been configured with, and (2) it uses DAs it has discovered via DNS SRV π₯π₯.
3.3. SLP Scopes for Remote Service Discovery ποΈ
SLP scopes are only meant to be used within one administrative domain, so they're probably gonna be incomprehensible to users outside that domain π€―. So any remotely accessible service MUST be registered in the "default" scope, but it MAY also be registered in other scopes at the same time β¨. In the same way, all DAs advertised via DNS SRV MUST serve the "default" scope, but they MAY serve other scopes at the same time too π. The result? Users who want to discover services at a remote DNS domain SHOULD only search the "default" scope π―.
4. Steps for Remote Service Discovery πΊοΈ
Here are the steps for a User Agent U to discover desired services in a remote DNS domain D π :
- U makes a DNS query for
QNAME=_slpda._tcp.D(orQNAME=_slpda._udp.D), withQCLASS=INandQTYPE=SRV. Then U gets a list of DNS SRV RRs (referred to asL) in a DNS reply, and that list gives all remotely accessible DAs in D π¬. - U selects a DA
XfromLbased on the priority and weight information per RFC 2782 βοΈ. - U queries
Xin the "default" scope to discover desired services in D π.
Heads up: the services discovered in the steps above may not necessarily be remotely accessible π.
10. Authors' Addresses π§
Okay bestie, here are the squad members who made this happen π«Ά Their contact details are below, copied exactly so you can reach them.
Weibin Zhao
Department of Computer Science
Columbia University
1214 Amsterdam Avenue, MC 0401
New York, NY 10027-7003
EMail: zwb@cs.columbia.edu
Henning Schulzrinne
Department of Computer Science
Columbia University
1214 Amsterdam Avenue, MC 0401
New York, NY 10027-7003
EMail: hgs@cs.columbia.edu
Erik Guttman
Sun Microsystems
Eichhoelzelstr. 7
74915 Waibstadt
Germany
EMail: Erik.Guttman@sun.com
Dr. Chatschik Bisdikian
IBM T. J. Watson Research Center
30 Saw Mill River Road, M/S 3S-B34
Hawthorne, NY 10532, USA
Phone: +1 914 784 7439
Fax: +1 914 784 6225
EMail: bisdik@us.ibm.com
William F. Jerome
IBM Corp.
Thomas J. Watson Research Center
19 Skyline Drive
Hawthorne, NY 10532, USA
EMail: wfj@us.ibm.com
11. Full Copyright Statement π
Copyright (C) The Internet Society (2004). This document is covered by the rights, licenses and restrictions in BCP 78 π and, apart from what that says, the authors keep all their rights β¨
The document and everything in it are handed over "AS IS" π« The contributor, the organization they represent or are sponsored by (if any), the Internet Society, and the Internet Engineering Task Force all say NO to every warranty, express or implied. That includes, but isn't limited to, any promise that using the info won't infringe anyone's rights, and any implied warranty of merchantability or fitness for a particular purpose π
Intellectual Property
The IETF doesn't take a side on whether any Intellectual Property Rights or other rights that someone might claim over this technology are valid or how far they reach πΈ It also doesn't say whether a license for those rights is available or not, and it hasn't gone looking for any of them either. If you want the rules about rights in RFC documents, check BCP 78 and BCP 79 π
Copies of IPR disclosures sent to the IETF Secretariat are available, along with any assurances of licenses. You can also find the results of any attempt to get a general license or permission for implementers or users to use these proprietary rights, all in the IETF online IPR repository at http://www.ietf.org/ipr π¦
The IETF also invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org π¬
Acknowledgement
Funding for the RFC Editor function is currently provided by the Internet Society π
π¦ where this page comes from
- ietf: rfc3832 2004-07
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms