RFC 3958:Domain-Based Application Service Location...
RFC-Ref

NAPTR


Click on the red underlined text to get to the source

... domain to specific server addresses by using both NAPTR [5] and SRV ([3 ...
... version of the use of SRV and/or a very restricted application of the use of NAPTR resource records. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", ...


... Straightforward-NAPTR (S-NAPTR) Specification ...
... Straightforward-NAPTR (S-NAPTR) Specification ...
... S-NAPTR DDDS Application Usage ...
... As defined in section 6, NAPTR records are used to store application service+protocol information for a given domain ...
... DDDS standard, these records are looked up, and the rewrite rules (contained in the NAPTR records) are used to determine the successive DNS lookups until a desirable target ...
... target is found. For the rest of this section, refer to the set of NAPTR resource records for example.com, shown in the figure below, where "WP" is the imagined application service tag ...
... ;; order pref flags IN NAPTR 100 10 "" "WP:whois++" ( ; service "" ; regexp ...
... ) IN NAPTR 100 20 "s" "WP:ldap" ( ; service "" ; regexp ...
... ) IN NAPTR 200 10 "" "EM:protA" ( ; service "" ; regexp ...
... ) IN NAPTR 200 30 "a" "EM:protB" ; service "" ; regexp ...
... A client retrieves all the NAPTR records associated with the target domain name ...
... Matching and Non-Matching NAPTR Records ...
... Starting with the first sorted NAPTR record, the client examines the SERVICE field ...
... client examines the SERVICE field to find a match. In the case of the S-NAPTR DDDS application, this means a SERVICE field that includes the tags ...
... application protocol. If more than one NAPTR record matches, they are processed in increasing sort order. ...
... Terminal and Non-terminal NAPTR Records ...
... A NAPTR record with an empty FLAG field is "non-terminal" -- that is, ...
... FLAG field is "non-terminal" -- that is, more NAPTR RR lookups are to be performed. Thus, to process a NAPTR record ...
... NAPTR RR lookups are to be performed. Thus, to process a NAPTR record with an empty FLAG field in S-NAPTR, the REPLACEMENT field is ...
... lookups are to be performed. Thus, to process a NAPTR record with an empty FLAG field in S-NAPTR, the REPLACEMENT field is used as the target of the next DNS lookup ...
... used as the target of the next DNS lookup -- for NAPTR RRs. ...
... RRs. In S-NAPTR, the only terminal flags are "S" and "A". These are called "terminal ...
... terminal flags are "S" and "A". These are called "terminal" NAPTR lookups because they denote the end of the DDDS ...
... lookups because they denote the end of the DDDS/NAPTR processing rules. In the case of an "S" flag, the REPLACEMENT field is used as the target ...
... S-NAPTR and Successive Resolution ...
... service+protocol pair. These are to be pursued in order until a server is successfully contacted or all possible matching NAPTR records have been successively pursued through terminal lookup ...
... is registered; or o the S-NAPTR-designated DNS lookup fails to yield expected results -- e.g., no A RR ...
... SRV record for an "S" target, or no NAPTR record with appropriate application service and protocol for a NAPTR ...
... NAPTR record with appropriate application service and protocol for a NAPTR lookup. Except in the case of the very first NAPTR ...
... NAPTR lookup. Except in the case of the very first NAPTR lookup, this last is a configuration error: the fact that example.com has a NAPTR record ...
... NAPTR lookup, this last is a configuration error: the fact that example.com has a NAPTR record pointing to "bunyip.example" for the "WP:Whois++" service and protocol means the administrator ...
... of example.com believes that service exists. If bunyip.example has no "WP:Whois++" NAPTR record, the application client MUST backtrack and try the next available "WP:Whois++" option from ...
... An application client first queries for the NAPTR RRs for the domain ...
... of a named application service. The first DNS query is for the NAPTR RRs in the original target ...
... application client that supports more than one protocol for a given application service, it MUST pursue S-NAPTR resolution completely for one protocol, exploring all potential terminal ...
... client MUST NOT start looking for one protocol, observe that a successive NAPTR RR set supports another of its preferred protocols, and continue the S-NAPTR ...
... NAPTR RR set supports another of its preferred protocols, and continue the S-NAPTR resolution based on that protocol. For example, even if someisp.example offers the "EM" service ...
... service with protocol "ProtB", there is no reason to believe that it does so on behalf of example.com (as there is no such pointer in example.com's NAPTR RR set). ...
... It MAY choose which protocol to try first based on its own preference, or on the PREF ranking in the first set of NAPTR records (i.e., those for the target named domain ...
... target named domain). However, the chosen protocol MUST be listed in that first NAPTR RR set. ...


... The purpose of S-NAPTR is to provide application standards developers with a more powerful framework (than SRV ...
... Although this document proposes a DDDS application that does not use all the features of NAPTR resource records, it is not intended to imply that DNS resolvers should fail to implement all aspects of the ...
... imply that DNS resolvers should fail to implement all aspects of the NAPTR RR standard. A DDDS application is a client ...
... The rest of this section outlines the specific elements that protocol developers must determine and document to make use of S-NAPTR. ...
... Application protocol developers who wish to make use of S-NAPTR must make provisions for registering any relevant application service and ...
... One other important aspect that must be defined is the expected behaviour for interacting with the servers that are reached via S- NAPTR. Specifically, under what circumstances should the client retry a target ...
... client retry a target that was found via S-NAPTR? What should it consider a failure that causes it to return to the S-NAPTR process to determine ...
... target that was found via S-NAPTR? What should it consider a failure that causes it to return to the S-NAPTR process to determine the next serviceable target, which by definition will have a lower ...
... server, should it retry for some (protocol-dependent) period of time? Or should it try the next-preferred target in the S-NAPTR chain of resolution? Should it only try the next-preferred target if it ...
... The most important thing is to select one expected behaviour and document it as part of the use of S-NAPTR. As noted earlier, failure to provide appropriate credentials ...
... Therefore, application protocol developers using S-NAPTR should identify the mechanics of the expected identification handshake when ...
... handshake when the client connects to a server found through S-NAPTR. ...
... Although S-NAPTR aims to provide a "straightforward" application of DDDS and use of NAPTR records ...
... S-NAPTR aims to provide a "straightforward" application of DDDS and use of NAPTR records, it is still possible to create very complex chains and dependencies with the NAPTR ...
... NAPTR records, it is still possible to create very complex chains and dependencies with the NAPTR and SRV records. ...
... Therefore, domain administrators are called upon to use S-NAPTR with as much restraint as possible while still achieving their service ...
... design goals. The complete set of NAPTR, SRV, and A RRs "reachable" through the S- ...
... SRV, and A RRs "reachable" through the S- NAPTR process for a particular application service can be thought of as a "tree ...
... service can be thought of as a "tree". Each NAPTR RR that is retrieved points to more NAPTR or ...
... tree". Each NAPTR RR that is retrieved points to more NAPTR or SRV records; each SRV record ...
... Therefore, o fewer branches is better: For both NAPTR and SRV records, provide different targets ...
... provide more; and o shallower is better: Avoid using NAPTR records to "rename" services within a zone. Use NAPTR records ...
... NAPTR records to "rename" services within a zone. Use NAPTR records to identify services hosted elsewhere (i.e., where you cannot reasonably provide the ...
... To understand DDDS/NAPTR properly, an implementor must read [4]. ...
... application cannot successfully connect to one target, the application will be expected to continue through the S-NAPTR tree to try the (less preferred) alternatives. ...


... The basic intended use cases for which S-NAPTR has been developed are as follows ...
... information. Thus, the set of NAPTR records for thinkingcat.example might look like this: ...
... ;; order pref flags IN NAPTR 100 10 "" "CREDREG:ldap:iris.beep" ( ; service "" ; regexp ...
... ;; order pref flags IN NAPTR 100 10 "" "CREDREG:iris.lwz:iris.beep" ( ; service "" ; regexp ...
... Thus, to find the EM services for thinkingcat.example, the NAPTR records for thinkingcat.example are retrieved: thinkingcat.example. ...
... ;; order pref flags IN NAPTR 100 10 "s" "EM:ProtA" ( ; service "" ; regexp ...
... ) IN NAPTR 100 20 "s" "EM:ProtB" ( ; service "" ; regexp ...
... ) IN NAPTR 100 30 "s" "EM:ProtC" ( ; service "" ; regexp ...
... domain. A better approach is to have one NAPTR RR in the thinkingcat.example domain ...
... hosting domain has NAPTR records for each service to map them to whatever local hosts it ...
... ;; order pref flags IN NAPTR 100 10 "s" "EM:ProtA" ( ; service "" ; regexp ...
... ) IN NAPTR 100 20 "" "EM:ProtB:ProtC" ( ; service "" ; regexp ...
... ;; order pref flags IN NAPTR 100 10 "s" "EM:ProtC" ( ; service "" ; regexp ...
... ) IN NAPTR 100 20 "s" "EM:ProtB" ( ; service "" ; regexp ...
... Sets of NAPTR RRs ...
... Note that the above sections assume that there was one service available (via S-NAPTR) per domain. Often, this will not be the case. Assuming that thinkingcat.example had the CredReg service ...
... service set up as described in Section 4.4, then a client querying for the NAPTR RR set from thinkingcat.com would get the following answer: ...
... ;; order pref flags IN NAPTR 100 10 "s" "EM:ProtA" ( ; service "" ; regexp ...
... ) IN NAPTR 100 20 "" "EM:ProtB:ProtC" ( ; service "" ; regexp ...
... ) IN NAPTR 200 10 "" "CREDREG:ldap:iris-beep" ( ; service "" ; regexp ...
... client would look through the SERVICE strings to determine whether there was a NAPTR RR that matched the application service ...
... name server (NS) for thinkingcat.example is reached with a request for all NAPTR records. 2. The server responds with the NAPTR records ...
... NAPTR records. 2. The server responds with the NAPTR records shown in section 4.3. 3. The second NAPTR record ...
... NAPTR records shown in section 4.3. 3. The second NAPTR record matches the desired criteria; it has an "s" flag and a replacement fields of "_ProtB._tcp.example.com". So the client ...


... on server administration rather than on application naming. Furthermore, although the DDDS specification and use of NAPTR allows multiple levels of redirection before the target server machine with ...
... an SRV record is located, this proposal requires only a subset of NAPTR strictly bound to domain names, without making use of the REGEXP ...
... domain names, without making use of the REGEXP field of NAPTR. These restrictions make the client's ...
... resolution process much more predictable and efficient than it would be with some potential uses of NAPTR records. This is dubbed "S- NAPTR" -- a "S"traightforward use of NAPTR records ...
... be with some potential uses of NAPTR records. This is dubbed "S- NAPTR" -- a "S"traightforward use of NAPTR records. ...
... NAPTR records. This is dubbed "S- NAPTR" -- a "S"traightforward use of NAPTR records. ...
... structure to SRV records, why are we doing this with DDDS/NAPTR? Limitations of SRV ...
... So Why Not Just NAPTR Records? ...
... This is a trick question. NAPTR records cannot appear in the wild; see [4]. They must be part of a DDDS application ...
... The purpose here is to define a single, common mechanism (the DDDS application) to use NAPTR when all that is desired is simple DNS- based location of services ...
... registrations, and it's done. Also, NAPTR has very powerful tools for expressing "rewrite" rules. This power (==complexity) makes some protocol designers ...
... The proposed DDDS application specifically uses a subset of NAPTR's abilities. Only "replacement" expressions are allowed, not "regular expressions". ...


... DDDS algorithm, if the Flag string is empty the next lookup is for another NAPTR record (for the replacement target). ...
... [5] specifies that a DDDS Database using the NAPTR DNS resource record contain the rewrite rules. The Keys for this database are encoded as domain ...
... First Well-Known Rule produces a domain name, and this is the Key used for the first look up. The NAPTR records for that domain are requested. ...
... DNS servers MAY interpret Flag values and use that information to include appropriate NAPTR, SRV, or A records in the Additional ...
... the Additional Information Processing section of [5] for more information on NAPTR records and the Additional Information section of a DNS response packet. ...


... IANA has established and will maintain a registry for S-NAPTR Application Service Tags, listing at least the following information ...
... IANA has established and will maintain a registry for S-NAPTR Application Protocol Tags ...


... security of the DNS queries along the way. If any of them is compromised, bogus NAPTR and SRV records could be inserted to redirect clients ...
... clients to unintended destinations. This problem is hardly unique to S-NAPTR (or NAPTR in general). A full discussion of the ...
... destinations. This problem is hardly unique to S-NAPTR (or NAPTR in general). A full discussion of the security threats ...
... the server the original name of the desired destination (i.e., no transformations that may have resulted from NAPTR replacements, SRV targets ...
... credential naming fields, nor the name- matching semantics. Definitions of S-NAPTR for particular application protocols MUST define these. ...


... Appendix A. Pseudo-Pseudocode for S-NAPTR ...
... find the first (best) target for the client, using S-NAPTR. target ...
... while (not naptr-done) { NAPTR-RRset = [DNSlookup of NAPTR RRs ...
... NAPTR-RRset = [DNSlookup of NAPTR RRs for target] ...
... RRs for target] [sort NAPTR-RRset by ORDER,and PREF within each ORDER] rr-done = false ...
... RRset by ORDER,and PREF within each ORDER] rr-done = false cur-rr = [first NAPTR RR] ...
... target= [REPLACEMENT target of NAPTR RR] else ...
... ; now, whether it was an "S" or an "A" in the NAPTR, we ; have the target for an A record ...
... to try the next host-port in the S-NAPTR tree. ...
... pseudocode above does not permit retries -- once complete, it sheds all context of where in the S-NAPTR tree it finished. Therefore, client software ...
... RRset processing described in the pseudocode and continue the S- NAPTR processing if the application code fails to connect to a located host-port ...
... port pair; o use callbacks for the S-NAPTR processing; or o use an S-NAPTR ...
... S-NAPTR processing; or o use an S-NAPTR resolution routine that finds *all* valid servers for the required application service ...


... Sample Python code for S-NAPTR resolution is available from http://www.verisignlabs.com/pysnaptr-0.1.tgz ...



Google
Web
RFC-Ref