draft-ietf-urn-naptr-rr-01.txt | draft-ietf-urn-naptr-rr-02.txt | |||
---|---|---|---|---|
Network Working Group M. Mealling | Network Working Group M. Mealling | |||
draft-ietf-urn-naptr-rr-01.txt Network Solutions, Inc. | draft-ietf-urn-naptr-rr-02.txt Network Solutions, Inc. | |||
Category: Standards Track R. Daniel | Category: Standards Track R. Daniel | |||
Expires: August, 1999 DATAFUSION, Inc. | Expires: September, 1999 DATAFUSION, Inc. | |||
The Naming Authority Pointer (NAPTR) DNS Resource Record | The Naming Authority Pointer (NAPTR) DNS Resource Record | |||
Status of this Memo | Status of this Memo | |||
=================== | =================== | |||
This document is an Internet-Draft and is in full conformance | This document is an Internet-Draft and is in full conformance | |||
with all provisions of Section 10 of RFC2026. | with all provisions of Section 10 of RFC2026. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
skipping to change at page 10, line ? | skipping to change at page 10, line ? | |||
domain. While all hosts, such as mordred, could have their very own | domain. While all hosts, such as mordred, could have their very own | |||
NAPTR, maintaining those records for all the machines at a site as | NAPTR, maintaining those records for all the machines at a site as | |||
large as Georgia Tech would be an intolerable burden. Wildcards are | large as Georgia Tech would be an intolerable burden. Wildcards are | |||
not appropriate here since they only return results when there is no | not appropriate here since they only return results when there is no | |||
exactly matching names already in the system. | exactly matching names already in the system. | |||
The record returned from the query on "gatech.edu" might look like: | The record returned from the query on "gatech.edu" might look like: | |||
gatech.edu IN NAPTR | gatech.edu IN NAPTR | |||
;; order pref flags service regexp replacement | ;; order pref flags service regexp replacement | |||
IN NAPTR 100 50 "s" "z3950+N2L+N2C" "" z3950.tcp.gatech.edu | IN NAPTR 100 50 "s" "z3950+N2L+N2C" "" _z3950._tcp.gatech.edu | |||
IN NAPTR 100 50 "s" "rcds+N2C" "" rcds.udp.gatech.edu | IN NAPTR 100 50 "s" "rcds+N2C" "" _rcds._udp.gatech.edu | |||
IN NAPTR 100 50 "s" "http+N2L+N2C+N2R" "" http.tcp.gatech.edu | IN NAPTR 100 50 "s" "http+N2L+N2C+N2R" "" _http._tcp.gatech.edu | |||
Continuing with the example, note that the values of the order and | Continuing with the example, note that the values of the order and | |||
preference fields are equal in all records, so the client is free to | preference fields are equal in all records, so the client is free to | |||
pick any record. The flags field tells us that these are the last | pick any record. The flags field tells us that these are the last | |||
NAPTR patterns we should see, and after the rewrite (a simple | NAPTR patterns we should see, and after the rewrite (a simple | |||
replacement in this case) we should look up SRV records to get | replacement in this case) we should look up SRV records to get | |||
information on the hosts that can provide the necessary service. | information on the hosts that can provide the necessary service. | |||
Assuming we prefer the Z39.50 protocol, our lookup might return: | Assuming we prefer the Z39.50 protocol, our lookup might return: | |||
;; Pref Weight Port Target | ;; Pref Weight Port Target | |||
z3950.tcp.gatech.edu IN SRV 0 0 1000 z3950.gatech.edu | _z3950._tcp.gatech.edu IN SRV 0 0 1000 z3950.gatech.edu | |||
IN SRV 0 0 1000 z3950.cc.gatech.edu | IN SRV 0 0 1000 z3950.cc.gatech.edu | |||
IN SRV 0 0 1000 z3950.uga.edu | IN SRV 0 0 1000 z3950.uga.edu | |||
telling us three hosts that could actually do the resolution, and | telling us three hosts that could actually do the resolution, and | |||
giving us the port we should use to talk to their Z39.50 server. | giving us the port we should use to talk to their Z39.50 server. | |||
Recall that the regular expression used \2 to extract a domain name | Recall that the regular expression used \2 to extract a domain name | |||
from the CID, and \. for matching the literal '.' characters | from the CID, and \. for matching the literal '.' characters | |||
separating the domain name components. Since '\' is the escape | separating the domain name components. Since '\' is the escape | |||
character, literal occurances of a backslash must be escaped by | character, literal occurances of a backslash must be escaped by | |||
skipping to change at page 10, line ? | skipping to change at page 10, line ? | |||
the parts of the substitution expression. Otherwise we would have to | the parts of the substitution expression. Otherwise we would have to | |||
use backslashes to escape the forward slashes and would have a | use backslashes to escape the forward slashes and would have a | |||
regexp in the zone file that looked like | regexp in the zone file that looked like | |||
"/http:\\/\\/([^\\/:]+)/\\1/i".). | "/http:\\/\\/([^\\/:]+)/\\1/i".). | |||
Applying this pattern to the URL extracts "www.foo.com". Looking up | Applying this pattern to the URL extracts "www.foo.com". Looking up | |||
NAPTR records for that might return: | NAPTR records for that might return: | |||
www.foo.com | www.foo.com | |||
;; order pref flags service regexp replacement | ;; order pref flags service regexp replacement | |||
IN NAPTR 100 100 "s" "http+L2R" "" http.tcp.foo.com | IN NAPTR 100 100 "s" "http+L2R" "" _http._tcp.foo.com | |||
IN NAPTR 100 100 "s" "ftp+L2R" "" ftp.tcp.foo.com | IN NAPTR 100 100 "s" "ftp+L2R" "" _ftp._tcp.foo.com | |||
Looking up SRV records for http.tcp.foo.com would return information | Looking up SRV records for http.tcp.foo.com would return information | |||
on the hosts that foo.com has designated to be its mirror sites. The | on the hosts that foo.com has designated to be its mirror sites. The | |||
client can then pick one for the user. | client can then pick one for the user. | |||
Example 3 | Example 3 | |||
--------- | --------- | |||
A non-URI example is where a NAPTR is used to specify the available | A non-URI example is where a NAPTR is used to specify the available | |||
mappings from a domain-name to telephony based endpoints. In this | mappings from a domain-name to telephony based endpoints. In this | |||
example the regular expression field is not used since the important | example the regular expression field is not used since the important | |||
information is encoded within the services field. | information is encoded within the services field. | |||
0.0.0.4.6.2.6.5.8.6.4.e164.int. | 0.0.0.4.6.2.6.5.8.6.4.e164.int. | |||
IN NAPTR 100 10 "s" "h323call+N2R" "" tele2.se. | IN NAPTR 100 10 "s" "h323call+N2R" "" _h323._udp.tele2.se. | |||
IN NAPTR 102 10 "s" "potscall+N2R" "" tele2.se. | IN NAPTR 102 10 "s" "potscall+N2R" "" _potscall._tcp.tele2.se. | |||
IN NAPTR 102 10 "s" "smtp+N2R" "" tele2.se. | IN NAPTR 102 10 "s" "smtp+N2R" "" _smtp._tcp.tele2.se. | |||
In these examples the domain is an encoded E164 telephone number. | In these examples the domain is an encoded E164 telephone number. | |||
The services field specifies that, for this particular telephone | The services field specifies that, for this particular telephone | |||
number, the services that are available are h323call, potscall | number, the services that are available are h323call, potscall | |||
and smtp; and that "tele2.se" is the target that provides those | and smtp; and that "tele2.se" is the target that provides those | |||
services. Since the flag is "s", the next step should be a | services. Since the flag is "s", the next step should be a | |||
query for an SRV record which will contain specific information | query for an SRV record which will contain specific information | |||
about the "tele2.se" domain. | about the "tele2.se" domain. | |||
DNS Packet Format | DNS Packet Format | |||
End of changes. 6 change blocks. | ||||
11 lines changed or deleted | 11 lines changed or added | |||
This html diff was produced by rfcdiff 1.34. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |