Zum Hauptinhalt springen

6.1.2. Wire Format (Wire-Format)

6.1.2. Wire Format (Wire-Format)

Ein OPT-RR hat einen festen Teil und einen variablen Satz von Optionen, die als {Attribut, Wert}-Paare ausgedrückt werden. Der feste Teil enthält einige DNS-Metadaten sowie eine kleine Sammlung grundlegender Erweiterungselemente, von denen wir erwarten, dass sie so populär sind, dass es Verschwendung von Wire-Platz wäre, sie als {Attribut, Wert}-Paare zu kodieren.

Der feste Teil eines OPT-RR ist wie folgt strukturiert:

    +------------+--------------+------------------------------+
| Field Name | Field Type | Description |
+------------+--------------+------------------------------+
| NAME | domain name | MUST be 0 (root domain) |
| TYPE | u_int16_t | OPT (41) |
| CLASS | u_int16_t | requestor's UDP payload size |
| TTL | u_int32_t | extended RCODE and flags |
| RDLEN | u_int16_t | length of all RDATA |
| RDATA | octet stream | {attribute,value} pairs |
+------------+--------------+------------------------------+

Der variable Teil eines OPT-RR kann null oder mehr Optionen in den RDATA enthalten. Jede Option MUSS als Bitfeld behandelt werden. Jede Option ist kodiert als:

                +0 (MSB)                            +1 (LSB)
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: | OPTION-CODE |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: | OPTION-LENGTH |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4: | |
/ OPTION-DATA /
/ /
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

OPTION-CODE : Zugewiesen durch den Expert Review-Prozess, wie von der DNSEXT-Arbeitsgruppe und der IESG definiert.

OPTION-LENGTH : Größe (in Oktetten) von OPTION-DATA.

OPTION-DATA : Variiert pro OPTION-CODE. MUSS als Bitfeld behandelt werden.

Die Reihenfolge des Auftretens von Options-Tupeln ist nicht definiert. Wenn eine Option das Verhalten einer anderen ändert oder mehrere Optionen auf irgendeine Weise miteinander in Beziehung stehen, haben sie unabhängig von der Reihenfolge in der RDATA-Wire-Kodierung die gleiche Wirkung.

Alle OPTION-CODE-Werte, die von einem Antworter oder Anfrager nicht verstanden werden, MÜSSEN ignoriert werden. Spezifikationen solcher Optionen möchten möglicherweise eine Art signalisierte Bestätigung einschließen. Zum Beispiel könnte eine Optionsspezifikation sagen, dass wenn ein Antworter Option XYZ sieht und unterstützt, er Option XYZ in seine Antwort aufnehmen MUSS.