Zum Hauptinhalt springen

2. Wildcard Syntax (Wildcard-Syntax)

2. Wildcard Syntax (Wildcard-Syntax)​

Dieser Abschnitt beschreibt die mit Wildcards verbundene Syntax, einschließlich der Interpretation von Einträgen als Wildcards und der Erstellung von Einträgen aus Wildcards. Die Abschnitte 2.1 und 2.2 sind normativ und aktualisieren Abschnitt 4.3.3 von RFC 1034.

2.1 Identifying a Wildcard (Identifizierung einer Wildcard)​

Die Definition von "wildcard" in Abschnitt 4.3.3 von RFC 1034 ist tatsächlich die Definition eines Wildcard-Domainnamens, aber sie vermischt den Begriff mit seiner Verwendung. Ein Wildcard-Domainname ist dadurch definiert, dass sein initiales (d.h. linkestes oder am wenigsten signifikantes) Label im Binärformat ist:

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

Das erste Oktett ist der normale Label-Typ und die Länge für ein 1-Oktett-langes Label, und das zweite Oktett ist die ASCII-Darstellung [RFC20] für das Zeichen '*'.

Ein beschreibender Name eines Labels, das diesem Wert entspricht, ist ein "asterisk label" (Sternchen-Label).

2.1.1 Wildcard Domain Name and Asterisk Label (Wildcard-Domainname und Sternchen-Label)​

Ein "wildcard domain name" (Wildcard-Domainname) ist dadurch definiert, dass er das Sternchen-Label als sein am wenigsten signifikantes Label hat.

2.1.2 Asterisks and Other Characters (Asterisken und andere Zeichen)​

In einem Domainnamen, der kein Wildcard-Domainname ist, kann das Sternchen-Label an anderer Stelle als der am wenigsten signifikanten Position erscheinen. Dies ist kein Wildcard-Domainname. Wenn ein Sternchen-Label als anderes als das am wenigsten signifikante Label in einem Namen erscheint, wird es wie jedes andere Label behandelt. Das heißt, es wird nicht als Wildcard interpretiert.

Es ist wichtig zu beachten, dass die Verwendung des Sternchens in einem Label nicht auf das Sternchen beschränkt ist, das im Binärformat als 0x2a (oder als ASCII '*') dargestellt wird. Jedes Label, das nicht das Sternchen-Label ist, kann alphanumerische oder andere Zeichen enthalten. Ein Label, das ein Sternchen enthält, ist kein Sternchen-Label, es sei denn, es ist das spezielle 1-Oktett-Label 0x01 0x2a.

2.1.3 Non-terminal Wildcard Domain Names (Nicht-terminale Wildcard-Domainnamen)​

Ein Wildcard-Domainname kann ein nicht-terminaler Name sein. Ein nicht-terminaler Name ist ein Name, unter dem andere Namen existieren. Ein Wildcard-Domainname kann also ein Vorfahre (übergeordneter Name) von anderen Namen sein. Wenn der Wildcard-Domainname ein Vorfahre von anderen Namen ist, ist er ein nicht-terminaler Wildcard-Domainname.

2.2 Existence Rules (Existenzregeln)​

In RFC 1034 wurde der Begriff der "Existenz" eines Domainnamens nicht definiert. In diesem Dokument wird die Existenz eines Domainnamens wie folgt bestimmt:

  • wenn der Domainname ein Eigentümername von einem oder mehreren Ressourceneinträgen ist, wird gesagt, dass er existiert, unabhängig vom Inhalt oder Typ der Ressourceneinträge; andernfalls,
  • wenn der Domainname ein Delegierungspunkt ist, existiert er; andernfalls,
  • wenn der Domainname "unter" einem existierenden Domainnamen ist (d.h. er ist eine Subdomain eines existierenden Domainnamens), existiert er; andernfalls,
  • existiert der Domainname nicht.

2.2.1 An Example (Ein Beispiel)​

Betrachten Sie die folgende (theoretische) Zone:

$ORIGIN example.
example. 3600 IN SOA ns1.example. hostmaster.example. (
2006032100 ; serial
3600 ; refresh
1800 ; retry
604800 ; expire
3600 ) ; minimum

host.example. 3600 IN A 192.0.2.1
*.example. 3600 IN TXT "wildcard"
*.host.example. 3600 IN TXT "wildcard2"
_sub._tcp.example. 3600 IN SRV 0 0 0 old-slow-server.example.

In dieser Zone existieren die Namen "example.", "host.example.", ".example.", ".host.example." und "_sub._tcp.example.". Beachten Sie, dass "*.example." zwar ein Wildcard-Domainname ist, aber auch ein nicht-terminaler Name, da unter ihm "_sub._tcp.example." existiert.

2.2.2 Empty Non-terminals (Leere Nicht-terminale)​

Ein leerer Nicht-terminaler Name ist ein Name, der ohne eigene Ressourceneinträge existiert, weil unter ihm andere Namen existieren. Beispielsweise erfordert die Existenz von "_sub._tcp.example." im obigen Beispiel, dass "_tcp.example." und "_sub._tcp.example." als existierend betrachtet werden, obwohl ihnen keine Ressourceneinträge zugeordnet sind. Dies sind leere Nicht-terminale.

2.2.3 Yet Another Definition of Existence (Noch eine Definition von Existenz)​

Die oben in Abschnitt 2.2 gegebene Definition von Existenz ist nicht die einzige nützliche Definition. Eine alternative Sichtweise ist, dass ein Name existiert, wenn er in den Besitz eines Ressourceneintrags gelangt, sei es direkt oder durch Vererbung von einem übergeordneten Namen. Diese Sichtweise ist für die Synthese nützlich, da sie erklärt, warum leere Nicht-terminale als existierend gelten.

2.3 When Is a Wildcard Domain Name Not Special? (Wann ist ein Wildcard-Domainname nicht speziell?)​

Ein Wildcard-Domainname ist nur dann speziell, wenn er zur Synthese von Einträgen verwendet wird; in allen anderen Fällen ist er nicht speziell. Der Wildcard-Domainname ist nur in Schritt 3.c des in RFC 1034, Abschnitt 4.3.2 spezifizierten Auflösungsalgorithmus speziell.