CreateYourVPN Academy
Corso: come funziona

Route e bilanciamento del carico

Cos'è una route in CreateYourVPN, come crearne una in un minuto, perché le route vuote sono utili e come il sistema distribuisce gli utenti tra i server.

Una route è il ponte tra la tua infrastruttura e ciò che vede l'utente. Tu gestisci server e inbound, mentre l'utente vede una breve lista di "server" nella sua app — e ogni voce di quella lista è in realtà una route.

Una route = una riga nell'app dell'utente

Una route è un gruppo di inbound sotto un unico nome nell'abbonamento del client. La regola è semplice:

Una route non vuota = una voce nella lista dei server dell'utente.

Una route può contenere un singolo inbound — o dieci di essi su server diversi. L'utente non lo vede mai: sceglie "🇺🇸 USA", e su quale server specifico finisca lo decide il load balancer — ne parliamo più avanti.

Nel frattempo, il nome che vede l'utente è il nome dell'inbound selezionato: dai nomi chiari ai tuoi inbound ("🇺🇸 New York", "🇺🇸 Dallas") ed è esattamente quello che vedrà l'utente.

Quando colleghi il tuo primo server, il sistema crea da solo una route predefinita e vi inserisce il primo inbound — ecco perché tutto funziona fin da subito senza una sola impostazione. Le route entrano in gioco quando vuoi di più: più paesi, una route "streaming" dedicata, e così via.

Creare una route

Nella pagina del cluster, nella sezione "Route", clicca su "Nuova route". La procedura guidata ha tre sezioni:

  1. Come i client vedono questa route — il nome (es. 🇺🇸 USA) e una bandiera. Questa è "l'insegna" della route.
  2. Algoritmo di bilanciamento del carico — "Meno carico per traffico" (predefinito) o "Round-robin". La differenza è spiegata sotto.
  3. Inbound nel pool — quali inbound appartengono alla route. Questa sezione è facoltativa: puoi creare una route vuota e riempirla dopo trascinando.

Un inbound può appartenere a una sola route. Se scegli un inbound già occupato da un'altra route, esso si sposta nella nuova. È così che il sistema garantisce che il traffico di ogni punto di ingresso sia governato esattamente da un unico insieme di regole.

Il diagramma della topologia: le route a colpo d'occhio

Nella pagina del cluster, le route sono mostrate su un diagramma live: i server con i loro inbound a sinistra, i riquadri delle route a destra. Gli inbound possono essere trascinati con il mouse: prendi un inbound, rilascialo in un'altra route — fatto. C'è anche una zona "Non assegnato" — rilascia lì un inbound per staccarlo da tutte le route.

Anche i riquadri delle route possono essere riordinati (usando la maniglia di trascinamento o le frecce) — è puramente un ordinamento visivo per tua comodità.

Route vuote

Una route senza un solo inbound viene disegnata con un bordo tratteggiato e non ha alcun "tubo" verso il nodo di distribuzione — un indizio che gli utenti non possono vederla. Le route vuote sono comodi segnaposto: crea "🇯🇵 Giappone" in anticipo, e quando compare un server giapponese, trascina dentro un inbound — la route prende vita.

Anche la situazione opposta viene evidenziata: se hai inbound al di fuori di qualsiasi route, il pannello ti avvisa — "inbound non presenti in nessuna route — i client non possono ancora vederli".

Bilanciamento del carico: chi finisce su quale server

Quando un utente richiede una connessione, per ogni route il sistema sceglie un inbound dal pool — in tempo reale, in base alle metriche aggiornate del server (le stesse della lezione 3). Ci sono due algoritmi:

"Meno carico per traffico" (predefinito)

Il sistema osserva quanta larghezza di banda residua per utente ha ancora ogni server: prende la capacità del canale, sottrae il traffico attuale, e divide per il numero di utenti connessi. Vince il server con il margine maggiore. È un bilanciamento equo "per carico reale": un server debole e saturo non riceverà nuovi utenti, anche se formalmente ha meno persone su di sé.

Il sistema stima da solo la capacità del canale — dai picchi osservati del traffico reale (un picco si "raffredda" gradualmente se il server non è stato carico per un po').

"Round-robin"

Una regola semplice: un nuovo utente va sul server che attualmente ha meno persone — regolato dal coefficiente del server. Il coefficiente è un peso: un server con coefficiente 2.0 viene trattato come "il doppio più capiente" e riceverà all'incirca il doppio degli utenti rispetto a un vicino con 1.0. Questo ti permette di caricare in modo equo macchine di dimensioni diverse.

Se qualche server nel pool non ha ancora una stima della capacità (ad esempio, il server è nuovo di zecca e non ha ancora visto picchi di traffico), la route ricade elegantemente sul round-robin — così le decisioni si basano sempre sui dati che esistono davvero.

Quando avviene il ribilanciamento

Costantemente — e automaticamente. La scelta del server viene ricalcolata a ogni richiesta usando metriche aggiornate: se il carico si sposta, i nuovi utenti iniziano a finire sui server più liberi. Allo stesso tempo, il sistema cerca di mantenere la stessa scelta per un dato utente a parità di condizioni, così il suo "server" non rimbalza avanti e indietro.

E un'ulteriore rete di sicurezza: i server che il monitoraggio considera non disponibili vengono esclusi dalla selezione — ne parliamo nella lezione 7.

Punti chiave

  • Una route è "l'insegna" per un gruppo di inbound; una route non vuota = una riga nell'app dell'utente.
  • Un inbound appartiene a una sola route. Un inbound fuori da qualsiasi route è invisibile ai client.
  • Le route vuote sono un segnaposto perfettamente normale: un riquadro tratteggiato, nascosto agli utenti.
  • Due algoritmi: per larghezza di banda residua (intelligente, predefinito) e round-robin con pesi.
  • Il bilanciamento è in tempo reale: ricalcolato a ogni connessione usando le metriche attuali.

Prossima lezione

On this page