Grundbegriffe für DNS-Datensätze (Resource Records und FQDNs)

Funktionalität und Struktur der Zugriffsrechte für Resource Records und FQDNs

Grundbegriffe für Berechtigungen

Schema der Berechtigungslogik für Datenmodifikationen

Vorgang adressbasierte RRs namensbasierte RRs nullbasierte RRs
RR Löschen
  • Bedingungen für das RR-Ziel:
    • Adresszugriff
  • Bedingungen für den Owner-FQDN:
    • [keine]
  • Bedingungen für das RR-Ziel:
    • Adresszugriff auf mind. 1 Adresse, die am Ende der RR-Kette des (alten) Ziel-FQDNs liegt. Wenn keine Adressauflösung besteht: Namensraum-Zugriff auf mind. 1 FQDN, der am Ende der RR-Kette des (alten) Ziel-FQDNs liegt
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • [keine]
  • Bedingungen für das RR-Ziel:
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • Namensraum-Zugriff
Ändern (alt)
Ändern (neu)
  • Bedingungen für das RR-Ziel:
    • Adresszugriff
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • Namensraum-Zugriff
    • Diese Bedingung entfällt, wenn
      • alter und neuer Owner-FQDN identisch sind und
      • durch Adressänderung sowohl für den alten als auch für den neuen bereichsbasierten Namensraum kein Zugriff besteht.
    • Adresszugriff auf alle Adressen aller bereits vorhandenen adressbasierten RRs mit diesem Owner-FQDN
  • Bedingungen für das RR-Ziel:
    • Adresszugriff auf mind. 1 Adresse, die am Ende der RR-Kette des (neuen) Ziel-FQDNs liegt. Wenn keine Adressauflösung besteht: Namensraum-Zugriff auf mind. 1 FQDN, der am Ende der RR-Kette des (neuen) Ziel-FQDNs liegt
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • Namensraum-Zugriff
    • Diese Bedingung entfällt, wenn
      • alter und neuer Owner-FQDN identisch sind und
      • Adresszugriff auf mind. 1 Adresse besteht, die am Ende der RR-Kette des alten und neuen Ziel-FQDNs liegt.
    • Falls RR-Set bereits vorhanden: Adresszugriff auf mind. 1 Adresse, die am Ende der RR-Kette dieses RR-Sets (Owner-FQDN und RR-Typ) liegt. Wenn keine Adressauflösung besteht: Namensraum-Zugriff auf mind. 1 FQDN, der am Ende der RR-Kette dieses RR-Sets (Owner-FQDN und RR-Typ) liegt.
Eintragen
  • Bedingungen für das RR-Ziel:
    • Adresszugriff
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • Namensraum-Zugriff
    • Adresszugriff auf alle Adressen aller bereits vorhandenen adressbasierten RRs mit diesem Owner-FQDN
  • Bedingungen für das RR-Ziel:
    • Adresszugriff auf mind. 1 Adresse, die am Ende der RR-Kette des (neuen) Ziel-FQDNs liegt. Wenn keine Adressauflösung besteht: Namensraum-Zugriff auf mind. 1 FQDN, der am Ende der RR-Kette des (neuen) Ziel-FQDNs liegt.
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • Namensraum-Zugriff
    • Falls RR-Set bereits vorhanden: Adresszugriff auf mind. 1 Adresse, die am Ende der RR-Kette dieses RR-Sets (Owner-FQDN und RR-Typ) liegt. Wenn keine Adressauflösung besteht: Namensraum-Zugriff auf mind. 1 FQDN, der am Ende der RR-Kette dieses RR-Sets (Owner-FQDN und RR-Typ) liegt.
FQDN mit RR Löschen
  • Bedingungen für alle RR-Ziele:
    • DBRT-Zugriff
  • Bedingungen für den Owner-FQDN:
    • wenn adressbasierte RR-Sets unter diesem Owner-FQDN vorhanden: Adresszugriff auf alle Adressen dieser RR-Sets; FQDN muss auch im bereichsbasierten Namensraum liegen (Gruppen der BCDs aller Adressen dieser RR-Sets).
    • sonst: wenn keine adressbasierten RR-Sets, aber namensbasierte RR-Sets unter diesem Owner-FQDN vorhanden: Adresszugriff auf mind. 1 Adresse, an der eine RR-Kette dieser RR-Sets endet
    • sonst: wenn ausschließlich RR-Sets ohne Adressauflösung unter diesem Owner-FQDN vorhanden: Namensraum-Zugriff für mind. 1 Ziel-FQDN, an dem eine RR-Kette dieser RR-Sets endet
    • DBNT-Zugriff
    • Namensraum-Zugriff
Ändern
FQDN ohne RR Löschen
  • DBNT-Zugriff
  • Namensraum-Zugriff
Ändern
Eintragen

Grundsätzliches zur internen Datenmodellierung von FQDNs und Resource Records

Abbildung

Die nachfolgende Modellierung basiert auf der gängigen Notation einer DNS-Zonendatei (s. a. https://en.wikipedia.org/wiki/Zone_file), ausgehend von den Feldern der ersten Zeile der folgenden Tabelle:

name ttl record class record type record data
Die Felder sind von links nach rechts gruppierbar nach 'name', 'record class', 'record type'. 'record class' ist konstant und hat immer den Wert 'IN'. Zusammengefasst ergibt sich:
name ttl, record class, record type record data
Weiter zusammengefasst ergeben sich nach Weglassen der Konstanten 'record class' 3 Felder, welche nach den ersten beiden gruppiert werden können:
name ttl, record type record data
Die letzte Zusammenfassung ergibt die Grundlage für das nachfolgende Schema mit one-to-many-Relationen zwischen den gruppierbaren Feldern
Owner Set Destination (Target)
FQDN der zugeordneten RR-Set-Gruppe RR-Set (mit Typ und TTL) der zugeordneten Gruppe von RR-Zielen RR-Ziel (je nach Typ mit Zieladresse, Ziel-FQDN, Datentext)

Schema der Modellierung

Owner 1:n Set 1:n Destination (Target) RR nach Zielart Adressauflösung via RR-Kette?
Owner Name TTL Type RR Data
unstrukt. Daten Ziel-Daten [*R]
fqdn ttl_1 type_1 dst_addr_1 adressbasiert TRUE
dst_addr_2
...
ttl_2 type_2 data_1 dst_fqdn_1 namensbasiert TRUE or FALSE
data_2 dst_fqdn_2
... ...
ttl_3 type_3 data_1 nullbasiert FALSE
data_2
...
--- Beispiele ---
kit.edu 86400 A 129.13.40.10 adressbasiert TRUE
86400 AAAA 2a00:1398:9:fd10::810d:280a
86400 MX 10 scc-mailin-cn-01.scc.kit.edu namensbasiert TRUE
10 scc-mailin-cs-01.scc.kit.edu
3600 SOA hostmaster.kit.edu 4671 10800 1800 2592000 600 dns1.kit.edu namensbasiert TRUE
3600 NS dns1.kit.edu namensbasiert TRUE
dns2.kit.edu
dns1.belwue.de
dns3.belwue.de
3600 TXT "google-site-verification=***" nullbasiert FALSE
"MS=***
"v=spf1 ip4:129.13.231.64/26 ~all"

Wesentliche funktionale Eigenschaften bei FQDN- und RR-Modifikationen

Zusätzliche interne Typisierung

Die Bindung von FQDNs und RRs an zusätzliche, intern vordefinierte Typen (DBNT bzw. fqdn_type, DBRT via record_type) ist erforderlich, um das Vorkommen von

zu verhindern. Dabei steuern die jeweiligen Attribute der internen Typen diese Wirkungsweise. Beispiele:

Schematischer Aufbau der DB-Namenstypen (DBNT, fqdn_type)

Die nachfolgenden Beispiele dienen ausschließlich der prinzipiellen Veranschaulichung und haben keinen Anspruch auf Korrektheit. Verbindliche Daten müssen über den Objekttyp- bzw. Funktionsindex der WebAPI abgefragt werden.

Titel Name (versionsspezifisch) Basisname (intern) Non-Terminal-FQDN-Attribut Hostnamens-Attribut DHCP-Hostnamens-Attribut RAD-Attribut Wildcard-Attribut
--- Beispiele ---
Host host dflt FALSE TRUE FALSE 0 FALSE
Domain domain dflt TRUE TRUE FALSE 0 FALSE
Alias alias alias FALSE FALSE FALSE 0 FALSE
IPV4-Reverse-Adress-Domain rad_ipv4 rad TRUE FALSE FALSE 4 FALSE

Schematischer Aufbau der DB-Record-Typen (DBRT, record_inttype)

Die nachfolgenden Beispiele dienen ausschließlich der prinzipiellen Veranschaulichung und haben keinen Anspruch auf Korrektheit. Verbindliche Daten müssen über den Objekttyp- bzw. Funktionsindex der WebAPI abgefragt werden.

RRT-Name FQDN-Eindeutigkeit FQDN-Namenstyp Ziel-Namenstyp Ziel-Adresstyp Einzel-Record-Typ Ziel-Rückwärtseindeutigkeit
--- Beispiele ---
AAAA FALSE host 6 TRUE TRUE
host 6 FALSE TRUE
domain 6 FALSE FALSE
MX FALSE domain host FALSE FALSE
host host FALSE FALSE
CNAME TRUE alias host TRUE FALSE
PTR TRUE rad_ipv4 host TRUE FALSE