Network Working Group                                           E. Lewis
Request for Comments: 4592                                       NeuStar
Updates: 1034, 2672                                            July 2006
Category: Standards Track
        
Network Working Group                                           E. Lewis
Request for Comments: 4592                                       NeuStar
Updates: 1034, 2672                                            July 2006
Category: Standards Track
        

The Role of Wildcards in the Domain Name System

通配符在域名系统中的作用

Status of This Memo

关于下段备忘

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2006).

版权所有(C)互联网协会(2006年)。

Abstract

摘要

This is an update to the wildcard definition of RFC 1034. The interaction with wildcards and CNAME is changed, an error condition is removed, and the words defining some concepts central to wildcards are changed. The overall goal is not to change wildcards, but to refine the definition of RFC 1034.

这是对RFC 1034的通配符定义的更新。更改与通配符和CNAME的交互,删除错误条件,并更改定义通配符中心的某些概念的单词。总体目标不是更改通配符,而是改进RFC1034的定义。

Table of Contents

目录

   1. Introduction ....................................................3
      1.1. Motivation .................................................3
      1.2. The Original Definition ....................................3
      1.3. Roadmap to This Document ...................................4
           1.3.1. New Terms ...........................................5
           1.3.2. Changed Text ........................................5
           1.3.3. Considerations with Special Types ...................5
      1.4. Standards Terminology ......................................6
   2. Wildcard Syntax .................................................6
      2.1. Identifying a Wildcard .....................................6
           2.1.1. Wildcard Domain Name and Asterisk Label .............6
           2.1.2. Asterisks and Other Characters ......................7
           2.1.3. Non-terminal Wildcard Domain Names ..................7
      2.2. Existence Rules ............................................7
           2.2.1. An Example ..........................................8
           2.2.2. Empty Non-terminals .................................9
           2.2.3. Yet Another Definition of Existence ................10
      2.3. When Is a Wildcard Domain Name Not Special? ...............10
   3. Impact of a Wildcard Domain Name on a Response .................10
      3.1. Step 2 ....................................................11
      3.2. Step 3 ....................................................11
      3.3. Part 'c' ..................................................12
           3.3.1. Closest Encloser and the Source of Synthesis .......12
           3.3.2. Closest Encloser and Source of Synthesis Examples ..13
           3.3.3. Type Matching ......................................13
   4. Considerations with Special Types ..............................14
      4.1. SOA RRSet at a Wildcard Domain Name .......................14
      4.2. NS RRSet at a Wildcard Domain Name ........................14
           4.2.1. Discarded Notions ..................................15
      4.3. CNAME RRSet at a Wildcard Domain Name .....................16
      4.4. DNAME RRSet at a Wildcard Domain Name .....................16
      4.5. SRV RRSet at a Wildcard Domain Name .......................17
      4.6. DS RRSet at a Wildcard Domain Name ........................17
      4.7. NSEC RRSet at a Wildcard Domain Name ......................18
      4.8. RRSIG at a Wildcard Domain Name ...........................18
      4.9. Empty Non-terminal Wildcard Domain Name ...................18
   5. Security Considerations ........................................18
   6. References .....................................................18
      6.1. Normative References ......................................18
      6.2. Informative References ....................................19
   7. Others Contributing to the Document ............................19
        
   1. Introduction ....................................................3
      1.1. Motivation .................................................3
      1.2. The Original Definition ....................................3
      1.3. Roadmap to This Document ...................................4
           1.3.1. New Terms ...........................................5
           1.3.2. Changed Text ........................................5
           1.3.3. Considerations with Special Types ...................5
      1.4. Standards Terminology ......................................6
   2. Wildcard Syntax .................................................6
      2.1. Identifying a Wildcard .....................................6
           2.1.1. Wildcard Domain Name and Asterisk Label .............6
           2.1.2. Asterisks and Other Characters ......................7
           2.1.3. Non-terminal Wildcard Domain Names ..................7
      2.2. Existence Rules ............................................7
           2.2.1. An Example ..........................................8
           2.2.2. Empty Non-terminals .................................9
           2.2.3. Yet Another Definition of Existence ................10
      2.3. When Is a Wildcard Domain Name Not Special? ...............10
   3. Impact of a Wildcard Domain Name on a Response .................10
      3.1. Step 2 ....................................................11
      3.2. Step 3 ....................................................11
      3.3. Part 'c' ..................................................12
           3.3.1. Closest Encloser and the Source of Synthesis .......12
           3.3.2. Closest Encloser and Source of Synthesis Examples ..13
           3.3.3. Type Matching ......................................13
   4. Considerations with Special Types ..............................14
      4.1. SOA RRSet at a Wildcard Domain Name .......................14
      4.2. NS RRSet at a Wildcard Domain Name ........................14
           4.2.1. Discarded Notions ..................................15
      4.3. CNAME RRSet at a Wildcard Domain Name .....................16
      4.4. DNAME RRSet at a Wildcard Domain Name .....................16
      4.5. SRV RRSet at a Wildcard Domain Name .......................17
      4.6. DS RRSet at a Wildcard Domain Name ........................17
      4.7. NSEC RRSet at a Wildcard Domain Name ......................18
      4.8. RRSIG at a Wildcard Domain Name ...........................18
      4.9. Empty Non-terminal Wildcard Domain Name ...................18
   5. Security Considerations ........................................18
   6. References .....................................................18
      6.1. Normative References ......................................18
      6.2. Informative References ....................................19
   7. Others Contributing to the Document ............................19
        
1. Introduction
1. 介绍

In RFC 1034 [RFC1034], sections 4.3.2 and 4.3.3 describe the synthesis of answers from special resource records (RRs) called wildcards. The definition in RFC 1034 is incomplete and has proven to be confusing. This document describes the wildcard synthesis by adding to the discussion and making limited modifications. Modifications are made to close inconsistencies that have led to interoperability issues. This description does not expand the service intended by the original definition.

在RFC 1034[RFC1034]中,第4.3.2节和第4.3.3节描述了从称为通配符的特殊资源记录(RRs)合成答案。RFC 1034中的定义是不完整的,并且被证明是令人困惑的。本文档通过添加到讨论中并进行有限的修改来描述通配符合成。修改旨在消除导致互操作性问题的不一致性。本说明不扩展原始定义所预期的服务。

Staying within the spirit and style of the original documents, this document avoids specifying rules for DNS implementations regarding wildcards. The intention is to only describe what is needed for interoperability, not restrict implementation choices. In addition, consideration is given to minimize any backward-compatibility issues with implementations that comply with RFC 1034's definition.

保持原始文档的精神和风格,本文档避免为DNS实现指定有关通配符的规则。其目的是仅描述互操作性所需的内容,而不是限制实现选择。此外,还考虑将与符合RFC1034定义的实现的任何向后兼容性问题降至最低。

This document is focused on the concept of wildcards as defined in RFC 1034. Nothing is implied regarding alternative means of synthesizing resource record sets (RRSets), nor are alternatives discussed.

本文档重点介绍RFC 1034中定义的通配符概念。关于合成资源记录集(RRSET)的替代方法,没有任何暗示,也没有讨论替代方法。

1.1. Motivation
1.1. 动机

Many DNS implementations diverge, in different ways, from the original definition of wildcards. Although there is clearly a need to clarify the original documents in light of this alone, the impetus for this document lay in the engineering of the DNS security extensions [RFC4033]. With an unclear definition of wildcards, the design of authenticated denial became entangled.

许多DNS实现以不同的方式偏离了通配符的原始定义。尽管显然需要仅从这一点来澄清原始文件,但本文件的推动力在于DNS安全扩展的工程设计[RFC4033]。由于通配符的定义不明确,身份验证拒绝的设计变得错综复杂。

This document is intended to limit its changes, documenting only those deemed necessary based on implementation experience, and to remain as close to the original document as possible. To reinforce that this document is meant to clarify and adjust and not redefine wildcards, relevant sections of RFC 1034 are repeated verbatim to facilitate comparison of the old and new text.

本文件旨在限制其变更,仅记录根据实施经验认为必要的变更,并尽可能与原始文件保持一致。为了强调本文件旨在澄清和调整而不是重新定义通配符,RFC 1034的相关章节逐字重复,以便于新旧文本的比较。

1.2. The Original Definition
1.2. 原始定义

The definition of the wildcard concept is comprised by the documentation of the algorithm by which a name server prepares a response (in RFC 1034's section 4.3.2) and the way in which a resource record (set) is identified as being a source of synthetic data (section 4.3.3).

通配符概念的定义由名称服务器准备响应的算法文档(RFC 1034第4.3.2节)和将资源记录(集合)标识为合成数据源的方法(第4.3.3节)组成。

This is the definition of the term "wildcard" as it appears in RFC 1034, section 4.3.3.

这是RFC 1034第4.3.3节中出现的术语“通配符”的定义。

# In the previous algorithm, special treatment was given to RRs with # owner names starting with the label "*". Such RRs are called # wildcards. Wildcard RRs can be thought of as instructions for # synthesizing RRs. When the appropriate conditions are met, the # name server creates RRs with an owner name equal to the query name # and contents taken from the wildcard RRs.

#在前面的算法中,对带有以“*”开头的#所有者名称的RRs进行了特殊处理。这种RRs称为#通配符。通配符RRs可以看作是#合成RRs的指令。当满足适当的条件时,#名称服务器创建的RRs的所有者名称等于查询名称#,内容取自通配符RRs。

This passage follows the algorithm in which the term wildcard is first used. In this definition, wildcard refers to resource records. In other usage, wildcard has referred to domain names, and it has been used to describe the operational practice of relying on wildcards to generate answers. It is clear from this that there is a need to define clear and unambiguous terminology in the process of discussing wildcards.

这篇文章遵循的是第一次使用通配符的算法。在此定义中,通配符指的是资源记录。在其他用法中,通配符指的是域名,它被用来描述依赖通配符生成答案的操作实践。由此可见,在讨论通配符的过程中,有必要定义清晰明确的术语。

The mention of the use of wildcards in the preparation of a response is contained in step 3, part 'c' of RFC 1034's section 4.3.2, entitled "Algorithm". Note that "wildcard" does not appear in the algorithm, instead references are made to the "*" label. The portion of the algorithm relating to wildcards is deconstructed in detail in section 3 of this document; this is the beginning of the relevant portion of the "Algorithm".

RFC 1034第4.3.2节“算法”第3步“c”部分中提到在准备响应时使用通配符。请注意,“通配符”不会出现在算法中,而是引用“*”标签。与通配符相关的算法部分在本文件第3节中详细解构;这是“算法”相关部分的开始。

# c. If at some label, a match is impossible (i.e., the # corresponding label does not exist), look to see if [...] # the "*" label exists.

#c。如果在某个标签上无法匹配(即#对应的标签不存在),请查看[…]#该“*”标签是否存在。

The scope of this document is the RFC 1034 definition of wildcards and the implications of updates to those documents, such as DNS Security (DNSSEC). Alternate schemes for synthesizing answers are not considered. (Note that there is no reference listed. No document is known to describe any alternate schemes, although there has been some mention of them in mailing lists.)

本文档的范围是RFC 1034对通配符的定义以及对这些文档进行更新的含义,例如DNS安全性(DNSSEC)。不考虑合成答案的替代方案。(请注意,没有列出参考文献。虽然邮件列表中提到了一些替代方案,但目前还没有任何文件描述任何替代方案。)

1.3. Roadmap to This Document
1.3. 本文件的路线图

This document accomplishes these three tasks.

本文档完成这三项任务。

o Defines new terms

o 定义新术语

o Makes minor changes to avoid conflicting concepts

o 进行微小更改以避免概念冲突

o Describes the actions of certain resource records as wildcards

o 将某些资源记录的操作描述为通配符

1.3.1. New Terms
1.3.1. 新术语

To help in discussing what resource records are wildcards, two terms will be defined: "asterisk label" and "wildcard domain name". These are defined in section 2.1.1.

为了帮助讨论哪些资源记录是通配符,将定义两个术语:“星号标签”和“通配符域名”。这些在第2.1.1节中定义。

To assist in clarifying the role of wildcards in the name server algorithm in RFC 1034, section 4.3.2, "source of synthesis" and "closest encloser" are defined. These definitions are in section 3.3.1. "Label match" is defined in section 3.2.

为了帮助澄清RFC 1034中名称服务器算法中通配符的作用,定义了第4.3.2节“合成源”和“最近封闭器”。这些定义见第3.3.1节。第3.2节定义了“标签匹配”。

The new terms are used to make discussions of wildcards clearer. Terminology does not directly have an impact on implementations.

新术语用于使通配符的讨论更加清晰。术语对实现没有直接影响。

1.3.2. Changed Text
1.3.2. 更改文本

The definition of "existence" is changed superficially. This change will not be apparent to implementations; it is needed to make descriptions more precise. The change appears in section 2.2.3.

“存在”的定义表面上有所改变。这种变化对实现来说并不明显;需要使描述更加精确。变更见第2.2.3节。

RFC 1034, section 4.3.3, seems to prohibit having two asterisk labels in a wildcard owner name. With this document, the restriction is removed entirely. This change and its implications are in section 2.1.3.

RFC 1034第4.3.3节似乎禁止在通配符所有者名称中使用两个星号标签。在本文档中,该限制将被完全删除。该变更及其影响见第2.1.3节。

The actions when a source of synthesis owns a CNAME RR are changed to mirror the actions if an exact match name owns a CNAME RR. This is an addition to the words in RFC 1034, section 4.3.2, step 3, part 'c'. The discussion of this is in section 3.3.3.

合成源拥有CNAME RR时的操作将更改为镜像操作(如果精确匹配名称拥有CNAME RR)。这是对RFC 1034第4.3.2节第3步“c”部分中词语的补充。第3.3.3节对此进行了讨论。

Only the latter change represents an impact to implementations. The definition of existence is not a protocol impact. The change to the restriction on names is unlikely to have an impact, as RFC 1034 contained no specification on when and how to enforce the restriction.

只有后一个更改表示对实现的影响。存在的定义不是协议影响。对名称限制的更改不太可能产生影响,因为RFC1034没有关于何时以及如何实施限制的规范。

1.3.3. Considerations with Special Types
1.3.3. 特殊类型的注意事项

This document describes semantics of wildcard RRSets for "interesting" types as well as empty non-terminal wildcards. Understanding these situations in the context of wildcards has been clouded because these types incur special processing if they are the result of an exact match. This discussion is in section 4.

本文档描述了“有趣”类型以及空非终端通配符的通配符RRSET的语义。在通配符的上下文中理解这些情况已经变得模糊了,因为如果这些类型是精确匹配的结果,则需要进行特殊处理。第4节对此进行了讨论。

These discussions do not have an implementation impact; they cover existing knowledge of the types, but to a greater level of detail.

这些讨论不会对实施产生影响;它们涵盖了类型的现有知识,但更详细。

1.4. Standards Terminology
1.4. 标准术语

This document does not use terms as defined in "Key words for use in RFCs to Indicate Requirement Levels" [RFC2119].

本文件未使用“RFC中用于表示需求水平的关键字”[RFC2119]中定义的术语。

Quotations of RFC 1034 are denoted by a '#' at the start of the line. References to section "4.3.2" are assumed to refer to RFC 1034's section 4.3.2, simply titled "Algorithm".

RFC 1034的报价在行首用“#”表示。对“4.3.2”节的引用被认为是指RFC 1034的第4.3.2节,简称为“算法”。

2. Wildcard Syntax
2. 通配符语法

The syntax of a wildcard is the same as any other DNS resource record, across all classes and types. The only significant feature is the owner name.

在所有类和类型中,通配符的语法与任何其他DNS资源记录相同。唯一重要的特性是所有者名称。

Because wildcards are encoded as resource records with special names, they are included in zone transfers and incremental zone transfers [RFC1995] just as non-wildcard resource records are. This feature has been under appreciated until discussions on alternative approaches to wildcards appeared on mailing lists.

由于通配符被编码为具有特殊名称的资源记录,因此它们与非通配符资源记录一样包含在区域传输和增量区域传输[RFC1995]中。在邮件列表中出现关于通配符替代方法的讨论之前,这一功能一直没有得到充分的重视。

2.1. Identifying a Wildcard
2.1. 识别通配符

To provide a more accurate description of wildcards, the definition has to start with a discussion of the domain names that appear as owners. Two new terms are needed, "asterisk label" and "wildcard domain name".

为了更准确地描述通配符,定义必须从讨论作为所有者出现的域名开始。需要两个新术语,“星号标签”和“通配符域名”。

2.1.1. Wildcard Domain Name and Asterisk Label
2.1.1. 通配符域名和星号标签

A "wildcard domain name" is defined by having its initial (i.e., leftmost or least significant) label be, in binary format:

“通配符域名”的定义是,其初始(即最左边或最不重要)标签为二进制格式:

0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)

0000 0001 0010 1010(二进制)=0x01 0x2a(十六进制)

The first octet is the normal label type and length for a 1-octet-long label, and the second octet is the ASCII representation [RFC20] for the '*' character.

第一个八位字节是1个八位字节长标签的正常标签类型和长度,第二个八位字节是“*”字符的ASCII表示形式[RFC20]。

A descriptive name of a label equaling that value is an "asterisk label".

与该值相等的标签的描述性名称为“星号标签”。

RFC 1034's definition of wildcard would be "a resource record owned by a wildcard domain name".

RFC1034对通配符的定义是“由通配符域名拥有的资源记录”。

2.1.2. Asterisks and Other Characters
2.1.2. 星号和其他字符

No label values other than that in section 2.1.1 are asterisk labels, hence names beginning with other labels are never wildcard domain names. Labels such as 'the*' and '**' are not asterisk labels, so these labels do not start wildcard domain names.

除第2.1.1节中的标签值外,没有其他标签值是星号标签,因此以其他标签开头的名称永远不是通配符域名。“the*”和“**”等标签不是星号标签,因此这些标签不会以通配符域名开头。

2.1.3. Non-terminal Wildcard Domain Names
2.1.3. 非终端通配符域名

In section 4.3.3, the following is stated:

在第4.3.3节中,说明如下:

   # ..........................  The owner name of the wildcard RRs is
   # of the form "*.<anydomain>", where <anydomain> is any domain name.
   # <anydomain> should not contain other * labels......................
        
   # ..........................  The owner name of the wildcard RRs is
   # of the form "*.<anydomain>", where <anydomain> is any domain name.
   # <anydomain> should not contain other * labels......................
        

The restriction is now removed. The original documentation of it is incomplete and the restriction does not serve any purpose given years of operational experience.

这项限制现已取消。其原始文件不完整,且鉴于多年的运营经验,该限制不起任何作用。

There are three possible reasons for putting the restriction in place, but none of the three has held up over time. One is that the restriction meant that there would never be subdomains of wildcard domain names, but the restriction as stated still permits "example.*.example." for instance. Another is that wildcard domain names are not intended to be empty non-terminals, but this situation does not disrupt the algorithm in 4.3.2. Finally, "nested" wildcard domain names are not ambiguous once the concept of the closest encloser had been documented.

实施限制有三个可能的原因,但随着时间的推移,这三个原因都没有奏效。一是限制意味着永远不会有通配符域名的子域,但所述限制仍然允许“example.*.example.”例如。另一个原因是,通配符域名不应是空的非终端,但这种情况不会破坏4.3.2中的算法。最后,“嵌套”通配符域名在最近封闭器的概念被记录下来后就不再含糊不清了。

A wildcard domain name can have subdomains. There is no need to inspect the subdomains to see if there is another asterisk label in any subdomain.

通配符域名可以有子域。无需检查子域以查看是否有其他星号标签在任何子域中。

A wildcard domain name can be an empty non-terminal. (See the upcoming sections on empty non-terminals.) In this case, any lookup encountering it will terminate as would any empty non-terminal match.

通配符域名可以是空的非终端。(请参阅后面关于空非端子的部分。)在这种情况下,遇到它的任何查找都将终止,就像任何空非端子匹配一样。

2.2. Existence Rules
2.2. 存在规则

The notion that a domain name 'exists' is mentioned in the definition of wildcards. In section 4.3.3 of RFC 1034:

在通配符的定义中提到了域名“存在”的概念。RFC 1034第4.3.3节:

# Wildcard RRs do not apply: # ... # - When the query name or a name between the wildcard domain and # the query name is know[n] to exist. . . .

#通配符RRs不适用:#…#当查询名称或通配符域与#之间的名称为know[n]时,查询名称将存在。

"Existence" is therefore an important concept in the understanding of wildcards. Unfortunately, the definition of what exists, in RFC 1034, is unclear. So, in sections 2.2.2. and 2.2.3, another look is taken at the definition of existence.

因此,“存在”是理解通配符的一个重要概念。不幸的是,RFC1034中存在的定义尚不清楚。因此,在第2.2.2节中。第2.2.3节,我们再看一看存在的定义。

2.2.1. An Example
2.2.1. 一个例子

To illustrate what is meant by existence consider this complete zone:

为了说明存在的意义,考虑这个完整的区域:

$ORIGIN example. example. 3600 IN SOA <SOA RDATA> example. 3600 NS ns.example.com. example. 3600 NS ns.example.net. *.example. 3600 TXT "this is a wildcard" *.example. 3600 MX 10 host1.example. sub.*.example. 3600 TXT "this is not a wildcard" host1.example. 3600 A 192.0.2.1 _ssh._tcp.host1.example. 3600 SRV <SRV RDATA> _ssh._tcp.host2.example. 3600 SRV <SRV RDATA> subdel.example. 3600 NS ns.example.com. subdel.example. 3600 NS ns.example.net.

$ORIGIN示例。实例SOA<SOA RDATA>示例中的3600。3600 NS NS.example.com。实例3600 NS NS.example.net.*。实例3600 TXT“这是一个通配符”*。示例。3600 MX 10主机1.0示例。附属法例。例如。3600 TXT“这不是通配符”host1.example。3600 A 192.0.2.1_ssh._tcp.host1.example。3600 SRV<SRV RDATA>\u ssh.\u tcp.host2.example。3600 SRV<SRV RDATA>subdel.example。3600 NS NS.example.com。subdel.example。3600 NS NS.example.net。

A look at the domain names in a tree structure is helpful:

查看树状结构中的域名很有帮助:

                                  |
                  -------------example------------
                 /           /         \          \
                /           /           \          \
               /           /             \          \
              *          host1          host2      subdel
              |            |             |
              |            |             |
             sub         _tcp          _tcp
                           |             |
                           |             |
                         _ssh          _ssh
        
                                  |
                  -------------example------------
                 /           /         \          \
                /           /           \          \
               /           /             \          \
              *          host1          host2      subdel
              |            |             |
              |            |             |
             sub         _tcp          _tcp
                           |             |
                           |             |
                         _ssh          _ssh
        

The following responses would be synthesized from one of the wildcards in the zone:

将从区域中的一个通配符合成以下响应:

QNAME=host3.example. QTYPE=MX, QCLASS=IN the answer will be a "host3.example. IN MX ..."

QNAME=host3.example。答案中的QTYPE=MX,QCLASS=将是“host3.example.IN MX…”

QNAME=host3.example. QTYPE=A, QCLASS=IN the answer will reflect "no error, but no data" because there is no A RR set at '*.example.'

QNAME=host3.example。答案中的QTYPE=A,QCLASS=将反映“没有错误,但没有数据”,因为在“*.example”处没有设置RR

QNAME=foo.bar.example. QTYPE=TXT, QCLASS=IN the answer will be "foo.bar.example. IN TXT ..." because bar.example. does not exist, but the wildcard does.

QNAME=foo.bar.example。答案中的QTYPE=TXT,QCLASS=将是“foo.bar.example.IN TXT…”,因为bar.example。不存在,但通配符存在。

The following responses would not be synthesized from any of the wildcards in the zone:

以下响应不会从区域中的任何通配符合成:

QNAME=host1.example., QTYPE=MX, QCLASS=IN because host1.example. exists

QNAME=host1.example.,QTYPE=MX,QCLASS=IN,因为host1.example。存在

      QNAME=sub.*.example., QTYPE=MX, QCLASS=IN
           because sub.*.example. exists
        
      QNAME=sub.*.example., QTYPE=MX, QCLASS=IN
           because sub.*.example. exists
        

QNAME=_telnet._tcp.host1.example., QTYPE=SRV, QCLASS=IN because _tcp.host1.example. exists (without data)

QNAME=_telnet._tcp.host1.example.,QTYPE=SRV,QCLASS=IN,因为_tcp.host1.example。存在(无数据)

QNAME=host.subdel.example., QTYPE=A, QCLASS=IN because subdel.example. exists (and is a zone cut)

QNAME=host.subdel.example.,QTYPE=A,QCLASS=IN,因为subdel.example。存在(并且是分区切割)

      QNAME=ghost.*.example., QTYPE=MX, QCLASS=IN
           because *.example. exists
        
      QNAME=ghost.*.example., QTYPE=MX, QCLASS=IN
           because *.example. exists
        

The final example highlights one common misconception about wildcards. A wildcard "blocks itself" in the sense that a wildcard does not match its own subdomains. That is, "*.example." does not match all names in the "example." zone; it fails to match the names below "*.example.". To cover names under "*.example.", another wildcard domain name is needed--"*.*.example."--which covers all but its own subdomains.

最后一个示例强调了关于通配符的一个常见误解。通配符“阻塞自身”,即通配符与其自身子域不匹配。也就是说,“*.example.”与“example.”区域中的所有名称不匹配;它与下面的名称“*.example.”不匹配。要覆盖“*.example.”下的名称,需要另一个通配符域名--“*.*.example.”,它覆盖除自身子域以外的所有子域。

2.2.2. Empty Non-terminals
2.2.2. 空的非终端

Empty non-terminals [RFC2136, section 7.16] are domain names that own no resource records but have subdomains that do. In section 2.2.1, "_tcp.host1.example." is an example of an empty non-terminal name. Empty non-terminals are introduced by this text in section 3.1 of RFC 1034:

空的非终端[RFC2136,第7.16节]是不拥有资源记录的域名,但其子域拥有资源记录。在第2.2.1节中,“_tcp.host1.example.”是空的非终端名称的示例。RFC 1034第3.1节中介绍了空非端子:

# The domain name space is a tree structure. Each node and leaf on # the tree corresponds to a resource set (which may be empty). The # domain system makes no distinctions between the uses of the # interior nodes and leaves, and this memo uses the term "node" to # refer to both.

#域名空间是一个树形结构。树上的每个节点和叶对应一个资源集(可能为空)。#域系统对#内部节点和叶子的使用没有区别,本备忘录使用术语“节点”来#指代两者。

The parenthesized "which may be empty" specifies that empty non-terminals are explicitly recognized and that empty non-terminals "exist".

括号中的“可能为空”指定显式识别空的非端子,并指定空的非端子“存在”。

Pedantically reading the above paragraph can lead to an interpretation that all possible domains exist--up to the suggested limit of 255 octets for a domain name [RFC1035]. For example, www.example. may have an A RR, and as far as is practically concerned, is a leaf of the domain tree. But the definition can be taken to mean that sub.www.example. also exists, albeit with no data. By extension, all possible domains exist, from the root on down.

学究式地阅读上述段落可能会导致一种解释,即所有可能的域都存在——一个域名的建议限制为255个八位字节[RFC1035]。例如,www.example。可能有一个RR,就实际而言,是域树的一个叶子。但是这个定义可以理解为sub.www.example。也存在,尽管没有数据。从根本上说,所有可能的域都存在。

As RFC 1034 also defines "an authoritative name error indicating that the name does not exist" in section 4.3.1, so this apparently is not the intent of the original definition, justifying the need for an updated definition in the next section.

由于RFC 1034还在第4.3.1节中定义了“表明名称不存在的权威名称错误”,因此这显然不是原始定义的意图,因此有理由在下一节中更新定义。

2.2.3. Yet Another Definition of Existence
2.2.3. 存在的另一个定义

RFC 1034's wording is fixed by the following paragraph:

RFC 1034的措辞由以下段落确定:

The domain name space is a tree structure. Nodes in the tree either own at least one RRSet and/or have descendants that collectively own at least one RRSet. A node may exist with no RRSets only if it has descendants that do; this node is an empty non-terminal.

域名空间是一个树形结构。树中的节点拥有至少一个RRSet和/或具有共同拥有至少一个RRSet的后代。一个节点可能不存在RRSET,只有当它有这样的子节点时;此节点是空的非终端。

A node with no descendants is a leaf node. Empty leaf nodes do not exist.

没有子体的节点是叶节点。空叶节点不存在。

Note that at a zone boundary, the domain name owns data, including the NS RR set. In the delegating zone, the NS RR set is not authoritative, but that is of no consequence here. The domain name owns data; therefore, it exists.

请注意,在区域边界处,域名拥有数据,包括NS RR集。在委派区域中,NS-RR集不是权威的,但这在这里并不重要。域名拥有数据;因此,它是存在的。

2.3. When Is a Wildcard Domain Name Not Special?
2.3. 什么时候通配符域名不是特别的?

When a wildcard domain name appears in a message's query section, no special processing occurs. An asterisk label in a query name only matches a single, corresponding asterisk label in the existing zone tree when the 4.3.2 algorithm is being followed.

当通配符域名出现在邮件的查询部分时,不会进行特殊处理。当遵循4.3.2算法时,查询名称中的星号标签仅与现有区域树中的单个对应星号标签匹配。

When a wildcard domain name appears in the resource data of a record, no special processing occurs. An asterisk label in that context literally means just an asterisk.

当通配符域名出现在记录的资源数据中时,不会发生特殊处理。在这种情况下,星号标签的字面意思就是星号。

3. Impact of a Wildcard Domain Name on a Response
3. 通配符域名对响应的影响

RFC 1034's description of how wildcards impact response generation is in its section 4.3.2. That passage contains the algorithm followed by a server in constructing a response. Within that algorithm, step 3, part 'c' defines the behavior of the wildcard.

RFC 1034第4.3.2节描述了通配符如何影响响应生成。该段包含服务器在构造响应时遵循的算法。在该算法中,步骤3的“c”部分定义了通配符的行为。

The algorithm in section 4.3.2 is not intended to be pseudo-code; that is, its steps are not intended to be followed in strict order. The "algorithm" is a suggested means of implementing the requirements. As such, in step 3, parts 'a', 'b', and 'c' do not have to be implemented in that order, provided that the result of the implemented code is compliant with the protocol's specification.

第4.3.2节中的算法不是伪代码;也就是说,其步骤并不打算严格按照顺序进行。“算法”是实现需求的建议方法。因此,在步骤3中,只要实现的代码的结果符合协议的规范,则不必按照该顺序实现部分“a”、“b”和“c”。

3.1. Step 2
3.1. 步骤2

Step 2 of section 4.3.2 reads:

第4.3.2节第2步内容如下:

# 2. Search the available zones for the zone which is the nearest # ancestor to QNAME. If such a zone is found, go to step 3, # otherwise step 4.

# 2. 在可用区域中搜索距离QNAME最近的#祖先区域。如果发现该区域,请转至步骤3,否则请转至步骤4。

In this step, the most appropriate zone for the response is chosen. The significance of this step is that it means all of step 3 is being performed within one zone. This has significance when considering whether or not an SOA RR can ever be used for synthesis.

在这一步中,将为响应选择最合适的区域。该步骤的意义在于,它意味着所有步骤3都在一个区域内执行。这在考虑是否可以将SOA RR用于合成时具有重要意义。

3.2. Step 3
3.2. 步骤3

Step 3 is dominated by three parts, labeled 'a', 'b', and 'c'. But the beginning of the step is important and needs explanation.

步骤3由三部分组成,分别标记为“a”、“b”和“c”。但这一步的开始很重要,需要解释。

# 3. Start matching down, label by label, in the zone. The # matching process can terminate several ways:

# 3. 在区域中开始逐标签向下匹配。#匹配过程可以通过几种方式终止:

The word 'matching' refers to label matching. The concept is based in the view of the zone as the tree of existing names. The query name is considered to be an ordered sequence of labels--as if the name were a path from the root to the owner of the desired data (which it is--3rd paragraph of RFC 1034, section 3.1).

“匹配”一词指的是标签匹配。这一概念是以分区作为现有名称树的视图为基础的。查询名称被认为是一个有序的标签序列——就好像名称是从根到所需数据所有者的路径一样(即RFC1034第3段,第3.1节)。

The process of label matching a query name ends in exactly one of three choices, the parts 'a', 'b', and 'c'. Either the name is found, the name is below a cut point, or the name is not found.

标签匹配查询名称的过程以三个选项中的一个结束,即“a”、“b”和“c”部分。找到名称、名称位于切割点下方或未找到名称。

Once one of the parts is chosen, the other parts are not considered (e.g., do not execute part 'c' and then change the execution path to finish in part 'b'). The process of label matching is also done independent of the query type (QTYPE).

一旦选择了其中一个部分,则不考虑其他部分(例如,不要执行“c”部分,然后将执行路径更改为“b”部分中的“完成”)。标签匹配过程也独立于查询类型(QTYPE)。

Parts 'a' and 'b' are not an issue for this clarification as they do not relate to record synthesis. Part 'a' is an exact match that results in an answer; part 'b' is a referral.

“a”和“b”部分不属于本澄清的问题,因为它们与记录合成无关。“a”部分与答案完全匹配;“b”部分是转介。

3.3. Part 'c'
3.3. c部分

The context of part 'c' is that the process of label matching the labels of the query name has resulted in a situation in which there is no corresponding label in the tree. It is as if the lookup has "fallen off the tree".

“c”部分的上下文是,标签匹配查询名称标签的过程导致树中没有相应标签的情况。这就好像查找“从树上掉下来了”。

# c. If at some label, a match is impossible (i.e., the # corresponding label does not exist), look to see if [...] # the "*" label exists.

#c。如果在某个标签上无法匹配(即#对应的标签不存在),请查看[…]#该“*”标签是否存在。

To help describe the process of looking 'to see if [...] the "*" label exists' a term has been coined to describe the last domain (node) matched. The term is "closest encloser".

为了帮助描述查找“…]是否存在“*”标签”的过程,我们创造了一个术语来描述最后匹配的域(节点)。术语是“最近的封闭体”。

3.3.1. Closest Encloser and the Source of Synthesis
3.3.1. 最近封闭体与合成源

The closest encloser is the node in the zone's tree of existing domain names that has the most labels matching the query name (consecutively, counting from the root label downward). Each match is a "label match" and the order of the labels is the same.

最近的封闭器是区域现有域名树中的节点,该节点具有最多与查询名称匹配的标签(连续,从根标签向下计数)。每个匹配都是“标签匹配”,标签的顺序相同。

The closest encloser is, by definition, an existing name in the zone. The closest encloser might be an empty non-terminal or even be a wildcard domain name itself. In no circumstances is the closest encloser to be used to synthesize records for the current query.

根据定义,最近的封闭器是分区中的现有名称。最近的封闭符可能是空的非终端,甚至可能是通配符域名本身。在任何情况下,都不是用于合成当前查询记录的最近封闭器。

The source of synthesis is defined in the context of a query process as that wildcard domain name immediately descending from the closest encloser, provided that this wildcard domain name exists. "Immediately descending" means that the source of synthesis has a name of the form:

合成源在查询过程的上下文中定义为通配符域名,只要该通配符域名存在,则该通配符域名将立即从最近的封闭符中递减。“立即下降”表示合成源具有以下形式的名称:

<asterisk label>.<closest encloser>.

<asterisk label><closest Enclosure>。

A source of synthesis does not guarantee having a RRSet to use for synthesis. The source of synthesis could be an empty non-terminal.

合成源并不保证有用于合成的RRSet。合成源可以是空的非末端。

If the source of synthesis does not exist (not on the domain tree), there will be no wildcard synthesis. There is no search for an alternate.

如果合成源不存在(不在域树上),则不会进行通配符合成。没有搜索替代者。

The important concept is that for any given lookup process, there is at most one place at which wildcard synthetic records can be obtained. If the source of synthesis does not exist, the lookup terminates, and the lookup does not look for other wildcard records.

重要的概念是,对于任何给定的查找过程,最多有一个地方可以获得通配符合成记录。如果合成源不存在,则查找将终止,并且查找不会查找其他通配符记录。

3.3.2. Closest Encloser and Source of Synthesis Examples
3.3.2. 最近的封闭体和合成源示例

To illustrate, using the example zone in section 2.2.1 of this document, the following chart shows QNAMEs and the closest enclosers.

为了举例说明,使用本文件第2.2.1节中的示例区域,下图显示了QName和最近的封套。

QNAME Closest Encloser Source of Synthesis host3.example. example. *.example. _telnet._tcp.host1.example. _tcp.host1.example. no source _dns._udp.host2.example. host2.example. no source _telnet._tcp.host3.example. example. *.example. _chat._udp.host3.example. example. *.example. foobar.*.example. *.example. no source

QNAME合成host3.example的最近封闭器源。示例。*。例如_telnet.\u tcp.host1.example_tcp.host1.example。没有源_dns._udp.host2.example。host2.2示例。没有源\u telnet.\u tcp.host3.example。示例。*。例如_聊天室。_udp.host3.example。示例。*。实例foobar.*.example.*。实例没有来源

3.3.3. Type Matching
3.3.3. 类型匹配

RFC 1034 concludes part 'c' with this:

RFC 1034以以下内容结束第c部分:

# If the "*" label does not exist, check whether the name # we are looking for is the original QNAME in the query # or a name we have followed due to a CNAME. If the name # is original, set an authoritative name error in the # response and exit. Otherwise just exit. # # If the "*" label does exist, match RRs at that node # against QTYPE. If any match, copy them into the answer # section, but set the owner of the RR to be QNAME, and # not the node with the "*" label. Go to step 6.

#如果“*”标签不存在,请检查我们要查找的名称#是查询中的原始QNAME#还是由于CNAME而跟随的名称。如果名称#是原始名称,请在#响应和退出中设置权威名称错误。否则就退出如果“*”标签确实存在,请将该节点的RRs与QTYPE匹配。如果有匹配项,请将它们复制到“答案”部分,但将RR的所有者设置为QNAME,而不是带有“*”标签的节点。转至步骤6。

The final paragraph covers the role of the QTYPE in the lookup process.

最后一段介绍了QTYPE在查找过程中的作用。

Based on implementation feedback and similarities between part 'a' and part 'c', a change to this passage has been made.

根据实施反馈以及“a”部分和“c”部分之间的相似性,对这一段进行了修改。

The change is to add the following text to part 'c' prior to the instructions to "go to step 6":

更改是在“转至步骤6”说明之前的“c”部分中添加以下文本:

If the data at the source of synthesis is a CNAME, and QTYPE doesn't match CNAME, copy the CNAME RR into the answer section of the response changing the owner name to the QNAME, change QNAME to the canonical name in the CNAME RR, and go back to step 1.

如果合成源处的数据是CNAME,并且QTYPE与CNAME不匹配,则将CNAME RR复制到响应的应答部分,将所有者名称更改为QNAME,将CNAME RR中的QNAME更改为规范名称,然后返回步骤1。

This is essentially the same text in part 'a' covering the processing of CNAME RRSets.

这与“a”部分中涉及CNAME RRSET处理的内容基本相同。

4. Considerations with Special Types
4. 特殊类型的注意事项

Sections 2 and 3 of this document discuss wildcard synthesis with respect to names in the domain tree and ignore the impact of types. In this section, the implication of wildcards of specific types is discussed. The types covered are those that have proven to be the most difficult to understand. The types are SOA, NS, CNAME, DNAME, SRV, DS, NSEC, RRSIG, and "none", that is, empty non-terminal wildcard domain names.

本文档的第2节和第3节讨论了与域树中的名称相关的通配符合成,并忽略了类型的影响。在本节中,将讨论特定类型通配符的含义。所涵盖的类型被证明是最难理解的类型。这些类型是SOA、NS、CNAME、DNAME、SRV、DS、NSEC、RRSIG和“无”,即空的非终端通配符域名。

4.1. SOA RRSet at a Wildcard Domain Name
4.1. 在一个通配符域名上设置

A wildcard domain name owning an SOA RRSet means that the domain is at the root of the zone (apex). The domain cannot be a source of synthesis because that is, by definition, a descendant node (of the closest encloser) and a zone apex is at the top of the zone.

拥有SOA RRSet的通配符域名意味着该域位于区域的根(顶点)。域不能是合成源,因为根据定义,它是(最近封闭体的)子节点,分区顶点位于分区顶部。

Although a wildcard domain name owning an SOA RRSet can never be a source of synthesis, there is no reason to forbid the ownership of an SOA RRSet.

尽管拥有SOA RRSet的通配符域名永远不能成为合成源,但没有理由禁止拥有SOA RRSet。

For example, given this zone:

例如,给定此区域:

$ORIGIN *.example. @ 3600 IN SOA <SOA RDATA> 3600 NS ns1.example.com. 3600 NS ns1.example.net. www 3600 TXT "the www txt record"

$ORIGIN*.example.@3600在SOA<SOA RDATA>3600 NS ns1.example.com中。3600 NS ns1.example.net。www 3600 TXT“www TXT记录”

A query for www.*.example.'s TXT record would still find the "the www txt record" answer. The asterisk label only becomes significant when section 4.3.2, step 3, part 'c' is in effect.

查询www.*.example.的TXT记录仍然可以找到“www-TXT记录”的答案。星号标签仅在第4.3.2节第3步“c”部分生效时有效。

Of course, there would need to be a delegation in the parent zone, "example." for this to work too. This is covered in the next section.

当然,在父区域中也需要有一个委托关系,“例如。”这样才能起作用。这将在下一节中介绍。

4.2. NS RRSet at a Wildcard Domain Name
4.2. 在一个通配符域名上设置RRNS

With the definition of DNSSEC [RFC4033, RFC4034, RFC4035] now in place, the semantics of a wildcard domain name owning an NS RRSet has come to be poorly defined. The dilemma relates to a conflict between the rules for synthesis in part 'c' and the fact that the resulting synthesis generates a record for which the zone is not authoritative. In a DNSSEC signed zone, the mechanics of signature management (generation and inclusion in a message) have become unclear.

随着DNSSEC[RFC4033、RFC4034、RFC4035]的定义现在到位,拥有NS RRSet的通配符域名的语义定义变得很糟糕。这一困境涉及到“c”部分中的合成规则与结果合成生成的区域不具有权威性的记录这一事实之间的冲突。在DNSSEC签名区,签名管理机制(生成和包含在消息中)变得不清楚。

Salient points of the working group discussion on this topic are summarized in section 4.2.1.

第4.2.1节总结了工作组关于该主题的讨论要点。

As a result of these discussions, there is no definition given for wildcard domain names owning an NS RRSet. The semantics are left undefined until there is a clear need to have a set defined, and until there is a clear direction to proceed. Operationally, inclusion of wildcard NS RRSets in a zone is discouraged, but not barred.

由于这些讨论的结果,没有给出拥有NS RRSet的通配符域名的定义。语义保持未定义,直到明确需要定义一个集合,并且有明确的前进方向为止。在操作上,不鼓励但不禁止在区域中包含通配符RRNS集。

4.2.1. Discarded Notions
4.2.1. 废弃的观念

Prior to DNSSEC, a wildcard domain name owning a NS RRSet appeared to be workable, and there are some instances in which it is found in deployments using implementations that support this. Continuing to allow this in the specification is not tenable with DNSSEC. The reason is that the synthesis of the NS RRSet is being done in a zone that has delegated away the responsibility for the name. This "unauthorized" synthesis is not a problem for the base DNS protocol, but DNSSEC in affirming the authorization model for DNS exposes the problem.

在某些域中,使用通配符的RRSSEN实现是可行的,并且在某些域中可以找到使用通配符的RRSSEN实现。DNSSEC无法继续在规范中允许这一点。原因是NS RRSet的合成是在一个区域中完成的,该区域已将名称的责任委托给其他区域。这种“未经授权”的合成对于基本DNS协议来说不是问题,但DNSSEC在确认DNS授权模型时暴露了问题。

Outright banning of wildcards of type NS is also untenable as the DNS protocol does not define how to handle "illegal" data. Implementations may choose not to load a zone, but there is no protocol definition. The lack of the definition is complicated by having to cover dynamic update [RFC2136] and zone transfers, as well as loading at the master server. The case of a client (resolver, caching server) getting a wildcard of type NS in a reply would also have to be considered.

彻底禁止NS类型的通配符也是站不住脚的,因为DNS协议没有定义如何处理“非法”数据。实现可以选择不加载区域,但没有协议定义。由于必须涵盖动态更新[RFC2136]和区域传输,以及主服务器上的加载,定义的缺乏变得复杂。还必须考虑客户端(解析器、缓存服务器)在回复中获得NS类型通配符的情况。

Given the daunting challenge of a complete definition of how to ban such records, dealing with existing implementations that permit the records today is a further complication. There are uses of wildcard domain name owning NS RRSets.

考虑到如何禁止此类记录的完整定义所面临的艰巨挑战,处理当前允许记录的现有实现是一个更复杂的问题。存在使用通配符域名拥有NS RRSET的情况。

One compromise proposed would have redefined wildcards of type NS to not be used in synthesis, this compromise fell apart because it would have required significant edits to the DNSSEC signing and validation work. (Again, DNSSEC catches unauthorized data.)

提出的一个折衷方案将重新定义NS类型的通配符,使其不用于合成,但该折衷方案失败了,因为它需要对DNSSEC签名和验证工作进行重大编辑。(同样,DNSSEC捕获未经授权的数据。)

With no clear consensus forming on the solution to this dilemma, and the realization that wildcards of type NS are a rarity in operations, the best course of action is to leave this open-ended until "it matters".

由于在解决这一困境方面没有形成明确的共识,并且认识到NS类型的通配符在操作中非常罕见,因此最好的做法是在“重要”之前保持这种开放性。

4.3. CNAME RRSet at a Wildcard Domain Name
4.3. CNAME RRSet位于通配符域名处

The issue of a CNAME RRSet owned by a wildcard domain name has prompted a suggested change to the last paragraph of step 3c of the algorithm in 4.3.2. The changed text appears in section 3.3.3 of this document.

由通配符域名拥有的CNAME RRSet的问题已促使建议更改4.3.2中算法步骤3c的最后一段。更改后的文本见本文件第3.3.3节。

4.4. DNAME RRSet at a Wildcard Domain Name
4.4. 在通配符域名处设置DNAME RRSet

Ownership of a DNAME [RFC2672] RRSet by a wildcard domain name represents a threat to the coherency of the DNS and is to be avoided or outright rejected. Such a DNAME RRSet represents non-deterministic synthesis of rules fed to different caches. As caches are fed the different rules (in an unpredictable manner) the caches will cease to be coherent. ("As caches are fed" refers to the storage in a cache of records obtained in responses by recursive or iterative servers.)

由通配符域名设置的DNAME[RFC2672]RRSet的所有权对DNS的一致性构成威胁,应避免或完全拒绝。这样的DNAME RRSet表示馈送到不同缓存的规则的非确定性合成。当缓存被输入不同的规则(以不可预测的方式)时,缓存将不再一致。(“当缓存被馈送时”是指在缓存中存储递归或迭代服务器响应时获得的记录。)

For example, assume one cache, responding to a recursive request, obtains the following record:

例如,假设一个缓存响应递归请求,获得以下记录:

"a.b.example. DNAME foo.bar.example.net."

“a.b.example.DNAME foo.bar.example.net。”

and another cache obtains:

另一个缓存获得:

"b.example. DNAME foo.bar.example.net."

“b.example.DNAME foo.bar.example.net。”

both generated from the record:

这两个都是从记录中生成的:

"*.example. DNAME foo.bar.example.net."

“*.example.DNAME foo.bar.example.net。”

by an authoritative server.

由权威服务器执行。

The DNAME specification is not clear on whether DNAME records in a cache are used to rewrite queries. In some interpretations, the rewrite occurs; in others, it does not. Allowing for the occurrence of rewriting, queries for "sub.a.b.example. A" may be rewritten as "sub.foo.bar.tld. A" by the former caching server and may be rewritten as "sub.a.foo.bar.tld. A" by the latter. Coherency is lost, and an operational nightmare ensues.

DNAME规范不清楚缓存中的DNAME记录是否用于重写查询。在一些解释中,重写发生了;在其他国家,情况并非如此。考虑到重写的发生,对“sub.a.b.example.a”的查询可由前一个缓存服务器重写为“sub.foo.bar.tld.a”,并可由后一个缓存服务器重写为“sub.a.foo.bar.tld.a”。一致性丧失,一场操作噩梦接踵而至。

Another justification for a recommendation to avoid the use of wildcard DNAME records is the observation that such a record could synthesize a DNAME owned by "sub.foo.bar.example." and "foo.bar.example.". There is a restriction in the DNAME definition that no domain exist below a DNAME-owning domain; hence, the wildcard DNAME is to be avoided.

建议避免使用通配符DNAME记录的另一个理由是这样一个记录可以合成“sub.foo.bar.example.”和“foo.bar.example.”所拥有的DNAME。DNAME定义中有一个限制,即在拥有DNAME的域之下不存在域;因此,应避免使用通配符DNAME。

4.5. SRV RRSet at a Wildcard Domain Name
4.5. 在通配符域名上设置SRV RRV

The definition of the SRV RRset is RFC 2782 [RFC2782]. In the definition of the record, there is some confusion over the term "Name". The definition reads as follows:

SRV RRset的定义为RFC 2782[RFC2782]。在记录的定义中,对“名称”一词存在一些混淆。定义如下:

# The format of the SRV RR ... # _Service._Proto.Name TTL Class SRV Priority Weight Port Target ... # Name # The domain this RR refers to. The SRV RR is unique in that the # name one searches for is not this name; the example near the end # shows this clearly.

#SRV RR的格式…#_服务._Proto.Name TTL Class SRV优先级权重端口目标…#名称#此RR所指的域。SRV RR是唯一的,因为搜索的#名称不是此名称;最后的例子清楚地说明了这一点。

Do not confuse the definition "Name" with the owner name. That is, once removing the _Service and _Proto labels from the owner name of the SRV RRSet, what remains could be a wildcard domain name but this is immaterial to the SRV RRSet.

不要将“名称”的定义与所有者名称混淆。也就是说,一旦从SRV RRSet的所有者名称中删除了_服务和_Proto标签,剩下的可能是通配符域名,但这对SRV RRSet并不重要。

For example, if an SRV record is the following:

例如,如果SRV记录如下所示:

_foo._udp.*.example. 10800 IN SRV 0 1 9 old-slow-box.example.

_foo._udp.*。示例。10800英寸SRV 0 1 9 old-slow-box.示例。

*.example is a wildcard domain name and although it is the Name of the SRV RR, it is not the owner (domain name). The owner domain name is "_foo._udp.*.example.", which is not a wildcard domain name.

*。示例是一个通配符域名,虽然它是SRV RR的名称,但不是所有者(域名)。所有者域名为“\u foo.\u udp.*.example.”,不是通配符域名。

A query for the SRV RRSet of "_foo._udp.bar.example." (class IN), will result in a match of the name "*.example." (assuming there is no bar.example.) and not a match of the SRV record shown. If there is no SRV RRSet at "*.example.", the answer section will reflect that (be empty or a CNAME RRset).

对SRV RRV集合“_foo._udp.bar.example.”(中的类)的查询将导致名称“*.example.”(假设没有bar.example.)的匹配,而与显示的SRV记录不匹配。如果“*.example.”处没有SRV RRSet,则答案部分将反映这一点(为空或CNAME RRSet)。

The confusion is likely based on the mixture of the specification of the SRV RR and the description of a "use case".

混淆可能是基于SRV RR规范和“用例”描述的混合。

4.6. DS RRSet at a Wildcard Domain Name
4.6. DS RRSet位于通配符域名处

A DS RRSet owned by a wildcard domain name is meaningless and harmless. This statement is made in the context that an NS RRSet at a wildcard domain name is undefined. At a non-delegation point, a DS RRSet has no value (no corresponding DNSKEY RRSet will be used in DNSSEC validation). If there is a synthesized DS RRSet, it alone will not be very useful as it exists in the context of a delegation point.

由通配符域名拥有的DS RRSet是毫无意义和无害的。此语句是在通配符域名处的NS RRSet未定义的上下文中作出的。在非委托点,DS RRSet没有值(DNSSEC验证中不会使用相应的DNSKEY RRSet)。如果有一个合成的DS RRSet,那么它本身就不是很有用,因为它存在于委托点的上下文中。

4.7. NSEC RRSet at a Wildcard Domain Name
4.7. NSEC RRSet位于通配符域名处

Wildcard domain names in DNSSEC signed zones will have an NSEC RRSet. Synthesis of these records will only occur when the query exactly matches the record. Synthesized NSEC RRs will not be harmful as they will never be used in negative caching or to generate a negative response [RFC2308].

DNSSEC签名区域中的通配符域名将具有NSEC RRSet。只有当查询与记录完全匹配时,才会合成这些记录。合成的NSEC RRs不会有害,因为它们永远不会用于负缓存或生成负响应[RFC2308]。

4.8. RRSIG at a Wildcard Domain Name
4.8. 通配符域名处的RRSIG

RRSIG records will be present at a wildcard domain name in a signed zone and will be synthesized along with data sought in a query. The fact that the owner name is synthesized is not a problem as the label count in the RRSIG will instruct the verifying code to ignore it.

RRSIG记录将出现在签名区域中的通配符域名处,并将与查询中查找的数据一起合成。合成所有者名称这一事实不是问题,因为RRSIG中的标签计数将指示验证代码忽略它。

4.9. Empty Non-terminal Wildcard Domain Name
4.9. 空的非终端通配符域名

If a source of synthesis is an empty non-terminal, then the response will be one of no error in the return code and no RRSet in the answer section.

如果合成源是空的非终端,则响应将是返回代码中无错误且应答部分中无RRSet的响应。

5. Security Considerations
5. 安全考虑

This document is refining the specifications to make it more likely that security can be added to DNS. No functional additions are being made, just refining what is considered proper to allow the DNS, security of the DNS, and extending the DNS to be more predictable.

本文档正在完善规范,以使安全性更可能添加到DNS。没有进行任何功能性添加,只是改进了被认为合适的内容,以允许DNS、DNS的安全性,并将DNS扩展为更可预测的。

6. References
6. 工具书类
6.1. Normative References
6.1. 规范性引用文件

[RFC20] Cerf, V., "ASCII format for network interchange", RFC 20, October 1969.

[RFC20]Cerf,V.,“网络交换的ASCII格式”,RFC201969年10月。

[RFC1034] Mockapetris, P., "Domain names - concepts and facilities", STD 13, RFC 1034, November 1987.

[RFC1034]Mockapetris,P.,“域名-概念和设施”,STD 13,RFC 1034,1987年11月。

[RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, November 1987.

[RFC1035]Mockapetris,P.,“域名-实现和规范”,STD 13,RFC 1035,1987年11月。

[RFC1995] Ohta, M., "Incremental Zone Transfer in DNS", RFC 1995, August 1996.

[RFC1995]Ohta,M.,“DNS中的增量区域转移”,RFC 1995,1996年8月。

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2308] Andrews, M., "Negative Caching of DNS Queries (DNS NCACHE)", RFC 2308, March 1998.

[RFC2308]Andrews,M.,“DNS查询的反向缓存(DNS NCACHE)”,RFC 2308,1998年3月。

[RFC2672] Crawford, M., "Non-Terminal DNS Name Redirection", RFC 2672, August 1999.

[RFC2672]克劳福德,M.,“非终端DNS名称重定向”,RFC 26721999年8月。

[RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, February 2000.

[RFC2782]Gulbrandsen,A.,Vixie,P.和L.Esibov,“用于指定服务位置(DNS SRV)的DNS RR”,RFC 2782,2000年2月。

[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, March 2005.

[RFC4033]Arends,R.,Austein,R.,Larson,M.,Massey,D.,和S.Rose,“DNS安全介绍和要求”,RFC 4033,2005年3月。

[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Resource Records for the DNS Security Extensions", RFC 4034, March 2005.

[RFC4034]Arends,R.,Austein,R.,Larson,M.,Massey,D.,和S.Rose,“DNS安全扩展的资源记录”,RFC 40342005年3月。

[RFC4035] Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Protocol Modifications for the DNS Security Extensions", RFC 4035, March 2005.

[RFC4035]Arends,R.,Austein,R.,Larson,M.,Massey,D.,和S.Rose,“DNS安全扩展的协议修改”,RFC 4035,2005年3月。

6.2. Informative References
6.2. 资料性引用

[RFC2136] Vixie, P., Thomson, S., Rekhter, Y., and J. Bound, "Dynamic Updates in the Domain Name System (DNS UPDATE)", RFC 2136, April 1997.

[RFC2136]Vixie,P.,Thomson,S.,Rekhter,Y.,和J.Bound,“域名系统中的动态更新(DNS更新)”,RFC 21361997年4月。

7. Others Contributing to the Document
7. 对该文件作出贡献的其他人

This document represents the work of a large working group. The editor merely recorded its collective wisdom.

本文件代表了一个大型工作组的工作。编辑只是记录了它的集体智慧。

Comments on this document can be sent to the editor or the mailing list for the DNSEXT WG, namedroppers@ops.ietf.org.

对本文件的评论可发送给编辑或DNSEXT工作组的邮件列表,namedroppers@ops.ietf.org.

Editor's Address

编辑地址

Edward Lewis NeuStar 46000 Center Oak Plaza Sterling, VA 20166, US

爱德华·刘易斯·纽斯塔46000中心奥克广场斯特林,弗吉尼亚州20166,美国

   Phone: +1-571-434-5468
   EMail: ed.lewis@neustar.biz
        
   Phone: +1-571-434-5468
   EMail: ed.lewis@neustar.biz
        

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (2006).

版权所有(C)互联网协会(2006年)。

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件及其包含的信息是按“原样”提供的,贡献者、他/她所代表或赞助的组织(如有)、互联网协会和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.

Acknowledgement

确认

Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA).

RFC编辑器功能的资金由IETF行政支持活动(IASA)提供。