Passa al contenuto principale

2. Formato del record SRV

2.1 Formato di base

Ecco il formato del record SRV, il cui codice tipo DNS è 33:

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

2.2 Specifiche dei campi

Service

Il nome simbolico del servizio desiderato, come definito in Assigned Numbers [STD 2]. Un underscore (_) precede l'identificatore del servizio.

Proto

Il nome simbolico del protocollo desiderato, con underscore (_) preposto. _TCP e _UDP sono i valori più utili.

Priority

La priorità di questo host di destinazione. Un client DEVE tentare di contattare l'host con la priorità più bassa. Intervallo: 0-65535.

Weight

Un meccanismo di selezione del server. I pesi più alti DOVREBBERO ricevere una probabilità proporzionalmente più alta di essere selezionati. Intervallo: 0-65535.

2.3 Algoritmo di bilanciamento del carico

Il seguente algoritmo DOVREBBE essere utilizzato per ordinare i record SRV con la stessa priorità:

  1. Posizionare tutti i record con weight 0 all'inizio della lista
  2. Calcolare la somma dei pesi
  3. Scegliere un numero casuale uniforme tra 0 e la somma
  4. Selezionare il record la cui somma cumulativa è maggiore o uguale al numero casuale

Garanzia matematica:

Dati n record SRV con stessa priorità
Pesi: w₁, w₂, ..., wₙ

Passaggi:
1. Calcolare il peso totale: W = Σ wᵢ
2. Pesi cumulativi: Sᵢ = Σ wⱼ (j=1 a i)
3. Generare numero casuale: R ∈ [0, W]
4. Selezionare RRᵢ tale che: Sᵢ₋₁ < R ≤ Sᵢ

Garanzia matematica: P(RRᵢ) = wᵢ / W

Port

La porta su questo host di destinazione. Intervallo: 0-65535.

Target

Il nome di dominio dell'host di destinazione. Ci DEVE essere uno o più record di indirizzi per questo nome.

Un Target di "." significa che il servizio non è decisamente disponibile su questo dominio.