Zum Hauptinhalt springen

2. Format des SRV RR

2.1 Grundformat

Hier ist das Format des SRV RR, dessen DNS-Typcode 33 ist:

_Service._Proto.Name TTL Class SRV Priority Weight Port Target

2.2 Feldspezifikationen

Service

Der symbolische Name des gewünschten Dienstes, wie in Assigned Numbers [STD 2] definiert. Ein Unterstrich (_) wird der Dienstkennung vorangestellt.

Proto

Der symbolische Name des gewünschten Protokolls, mit vorangestelltem Unterstrich (_). _TCP und _UDP sind die nützlichsten Werte.

Priority

Die Priorität dieses Zielhosts. Ein Client MUSS versuchen, den Host mit der niedrigsten Priorität zu kontaktieren. Bereich: 0-65535.

Weight

Ein Mechanismus zur Serverauswahl. Höhere Gewichte SOLLTEN eine proportional höhere Auswahlwahrscheinlichkeit erhalten. Bereich: 0-65535.

2.3 Lastverteilungsalgorithmus

Der folgende Algorithmus SOLLTE verwendet werden, um SRV-Einträge gleicher Priorität zu ordnen:

  1. Alle Einträge mit weight 0 an den Anfang der Liste setzen
  2. Summe der Gewichte berechnen
  3. Gleichmäßige Zufallszahl zwischen 0 und Summe wählen
  4. Eintrag auswählen, dessen kumulative Summe größer oder gleich der Zufallszahl ist

Mathematische Garantie:

Gegeben n SRV-Einträge mit gleicher Priorität
Gewichte: w₁, w₂, ..., wₙ

Schritte:
1. Gesamtgewicht berechnen: W = Σ wᵢ
2. Kumulative Gewichte: Sᵢ = Σ wⱼ (j=1 bis i)
3. Zufallszahl generieren: R ∈ [0, W]
4. RRᵢ wählen, sodass: Sᵢ₋₁ < R ≤ Sᵢ

Mathematische Garantie: P(RRᵢ) = wᵢ / W

Port

Der Port auf diesem Zielhost. Bereich: 0-65535.

Target

Der Domänenname des Zielhosts. Es MUSS einen oder mehrere Adresseinträge für diesen Namen geben.

Ein Target von "." bedeutet, dass der Dienst in dieser Domäne definitiv nicht verfügbar ist.