← Torna all’elenco

Load balancing spiegato a fondo: conosciuto anche come F5, con casi reali

itadol5j

Chi fa operations e sicurezza prima o poi inciampa in un termine: il load balancing. E appena se ne parla, il primo dispositivo che salta in mente a molti è l'“F5”. La cosa curiosa è che F5 è in realtà il nome di un'azienda (F5 Networks), ma i suoi prodotti sono diventati così famosi che il nome è finito per indicare il load balancer stesso, proprio come “fare una ricerca su Baidu” è diventato il modo comune di dire “cercare online”.

Load balancing F5

In questo articolo lo spieghiamo a fondo: cos'è davvero F5, dove differiscono il layer 4 e il layer 7, come si configura nei casi reali.

1. A quale problema risponde davvero il load balancing

Il load balancing (bilanciamento del carico), in sostanza, distribuisce i compiti su più unità operative, per esempio server web, server FTP o server di applicazioni aziendali critiche, affinché completino il lavoro insieme.

Dal punto di vista tecnico, verso l'esterno presenta unindirizzo di server virtuale. Quando un utente si connette, tramite NAT (Network Address Translation) bidirezionale instrada la connessione verso il server reale più adatto. L'utente vede sempre lo stesso punto d'ingresso; dietro c'è un gruppo di macchine che regge il carico.

Deve risolvere tre problemi:il timore del crash(single point of failure),il timore di non reggere il carico(collo di bottiglia nelle prestazioni),il timore di non poter scalare(impossibilità di scalare orizzontalmente).

2. Layer 4 vs layer 7: dove si sbaglia più spesso

La differenza di fondo sta in una frase:bisogna o meno interpretare i protocolli del livello applicativo. Questa differenza determina direttamente i limiti di capacità e le prestazioni.

Load balancing di layer 4 (livello di trasporto)

  • Livello di lavoro: livello 4 OSI, protocolli TCP/UDP
  • Criteri di inoltro: IP sorgente, IP destinazione, porta: nessun tocco ai dati applicativi
  • Capacità chiave: inoltro di porte, riutilizzo delle connessioni TCP, health check di layer 4 (handshake TCP), protezione DDoS di base
  • Prestazioni: efficienza di inoltro altissima, vicino ai limiti dell'hardware, latenza in microsecondi
  • Scenari tipici: database (MySQL/Redis), servizi TCP (server di gioco, servizi Netty), bilanciamento di link tra data center
  • Prodotti rappresentativi: LVS, F5 (modalità layer 4), HAProxy (modalità layer 4), Nginx (modulo stream)

Load balancing di layer 7 (livello applicativo)

  • Livello di lavoro: livello 7 OSI, protocolli applicativi come HTTP/HTTPS, DNS, FTP
  • Criteri di inoltro: URL, cookie, header HTTP, parametri di richiesta, contenuto JSON
  • Capacità chiave: routing basato sul contenuto, offload SSL, caching, rate limiting e circuit breaker, integrazione WAF, persistenza di sessione, rilascio canary
  • Prestazioni: ricco di funzioni, ma deve interpretare i protocolli applicativi; latenza leggermente più alta (millisecondi), compensata scalando con cluster
  • Scenari tipici: applicazioni web, API di microservizi, servizi HTTPS, rilascio canary, API gateway
  • Prodotti rappresentativi: Nginx, HAProxy (modalità layer 7), F5 (modulo layer 7), Kong, Spring Cloud Gateway

Regola a memoria in una frase: il layer 4 legge il “cartello stradale” (IP e porta) e inoltra; il layer 7 “apre il pacco” (guarda il contenuto) prima di decidere dove inviarlo. Serve prestazione, scegli il layer 4; servono funzioni raffinate, il layer 7.

3. Dove sta davvero la forza di F5 BIG-IP

Il prodotto di punta di F5, il BIG-IP LTM, ha nome ufficialeLocal Traffic Manager: gestisce load balancing dal layer 4 al layer 7. Non è un semplice forwarder: la lista di funzioni è lunghissima. Application switching, session switching, monitoraggio di stato, NAT intelligente, persistenza universale, gestione degli errori di risposta, gateway IPv6, routing avanzato, accelerazione SSL, compressione HTTP intelligente, ottimizzazione TCP, buffering dei contenuti, cifratura dei cookie, filtri contro gli attacchi applicativi, protezione DoS e SYN Flood, packet filtering da firewall...

Vediamo le più utili in pratica:

1. Load balancing multi-link e ridondanza

Le attività critiche spesso si collegano a più linee ISP per garantire la qualità ed eliminare i single point of failure. Due direzioni:

  • traffico OUTBOUND(dalla rete interna verso l'esterno): BIG-IP LC distribuisce intelligentemente il traffico sulle diverse interfacce Internet e applica il NAT sull'indirizzo sorgente
  • traffico INBOUND(dall'esterno verso la rete interna): vincola gli indirizzi pubblici dei due ISP, risolve le richieste DNS di entrambi e risponde in modo intelligente in base allo stato di salute dei server e ai tempi RTT

2. Server load balancing

Espone il servizio tramite VIP (Virtual IP, composta da indirizzo IP e porta TCP/UDP) ed esegue controlli di salute continui dai layer 4 al 7 sui server di destinazione. Non appena individua un server guasto lo rimuove dal gruppo di bilanciamento. Con gli iRules può inoltre aprire i pacchetti TCP/UDP e applicare regole in base alle caratteristiche del contenuto, per esempio instradando il traffico a server diversi in base all'URL.

3. Alta disponibilità del sistema

È il punto su cui F5 vanta di più. In modalità ridondante a due dispositiviil failover avviene in millisecondi(entro 200 ms nel migliore dei casi), con una disponibilità dichiarata del 99,999%. Il principio: tutte le sessioni che transitano dal dispositivo Active vengono sincronizzate tramite la linea dati di sincronizzazione al dispositivo Backup, per cui il failover non interrompe l'accesso degli utenti. Il chip watchdog di ciascun dispositivo monitora tramite la linea di heartbeat il segnale dell'altro; se l'Active cade, il Backup viene subito informato e prende in carico Shared IP e VIP.

4. Sicurezza

BIG-IP segue i principi di design di un firewall:negazione predefinita. Può smontare le connessioni inattive per prevenire il DoS, eseguire source route tracking contro lo spoofing IP e respingere i SYN senza ACK contro gli attacchi SYN. La funzione Dynamic Reaping elimina in modo efficiente le connessioni inattive durante un attacco DoS, eaccelera il ritmo di chiusura delle connessioni al crescere del volume dell'attacco: un dettaglio notevole. La tecnologia Delay Binding offre invece ai server backend una protezione completa contro il SYN Flood.

5. Accelerazione SSL

Ogni BIG-IP ha un chip di accelerazione SSL hardware e include una licenza da 100 TPS senza costi aggiuntivi. Se in seguito serve scalare, basta aggiornare la licenza.

Load balancer F5 BIG-IP

4. F5 o Nginx? Il confronto per la scelta

È la domanda più frequente sul lavoro. I due non sono in competizione: più che altro si completano a vicenda.

F5 BIG-IP (hardware)

  • Forma di deployment: appliance hardware dedicata (con chip personalizzati)
  • Prestazioni: connessioni TCP nell'ordine dei milioni, latenza di inoltro in microsecondi
  • Funzioni: tuttofare: layer 4+7, offload SSL, protezione DDoS, WAF, VPN, bilanciamento dei link
  • Affidabilità: ridondanza hardware (hot standby a due dispositivi), 99,999% di disponibilità
  • Costi: elevatissimi (dalle decine alle centinaia di migliaia), richiede ingegneri specializzati per la manutenzione
  • Scalabilità: dipende dagli upgrade hardware, flessibilità ridotta
  • Operations: complesse, richiedono familiarità con l'interfaccia di configurazione proprietaria e la CLI

Nginx (software)

  • Forma di deployment: software, su server generici o istanze cloud
  • Prestazioni: connessioni TCP nell'ordine delle centinaia di migliaia, latenza in millisecondi, scalabile via cluster
  • Funzioni: leggero ed efficiente: al centro il layer 7, con supporto al layer 4, offload SSL, caching, rate limiting, reverse proxy
  • Affidabilità: l'hot standby va configurato a mano (Keepalived), dipende dalla stabilità dell'hardware dei server
  • Costi: open source gratuito, anche Nginx Plus costa poco
  • Scalabilità: supporta deployment in cluster, in cloud si scala elasticamente
  • Operations: semplici, file di configurazione leggibili, un ingegnere backend si orienta in fretta

Ai bivi della scelta, seguite questa bussola:

  • Servizi TCP ad alta concorrenza (giochi, finanza) + disponibilità massima → F5 layer 4
  • Ingresso del business critico + requisiti di sicurezza (WAF/DDoS) → F5 layer 7
  • API gateway di microservizi + deployment in cloud → Nginx layer 7
  • Carico su database/Redis + ottimo rapporto qualità/prezzo → Nginx layer 4
  • Business di piccola-media scala + iterazione rapida → Nginx (layer 4/7)
  • Data center enterprise + multi-link → F5 all'ingresso, Nginx per il bilanciamento interno

Quest'ultima combinazione è molto diffusa nelle grandi aziende: F5 custodisce il confine, Nginx governa l'interno.

5. Caso pratico: quanto è tortuosa la configurazione di F5

La prima reazione di molti davanti a un F5 è:questa logica non c'entra nulla con quella degli switch, non si sa da dove iniziare. La sua logica di configurazione è un mondo a parte.

Scenario: due server web servono l'esterno con IP 192.168.192.10-20/24; occorre fare load balancing tramite la porta 80 dell'indirizzo esterno 192.168.27.100.

Il load balancing più semplice richiede solo tre parametri, legati a cascata l'uno all'altro:

  • Node (nodo): la definizione più elementare; ogni server è un Node
  • Pool (gruppo di risorse): un insieme di Node che ricevono ed elaborano il traffico, per esempio il cluster di server web
  • Virtual Server (server virtuale): il punto d'ingresso verso l'esterno, collegato a un Pool

Flusso dei dati: richiesta del cliente → Virtual Server → Pool → Node.

Passi operativi (interfaccia di gestione BIG-IP):

  • Primo passo: attivare il dispositivo. Appena arriva il F5, attivatelo: la procedura guidata è semplice, ma ricordateserve assolutamente la connessione a Internet, meglio completarla prima dell'installazione in rack: è esperienza maturata a proprie spese
  • Secondo passo: login. Nel browser aprite https://IPdiGestione, nome utente e password predefiniti sono entrambi admin
  • Terzo passo: creare le VLAN. Network → VLANs, create la VLAN e aggiungete le interfacce (selezionando Untagged)
  • Quarto passo: configurare gli IP. Networks → Self IPs, definite un indirizzo per ogni VLAN
  • Quinto passo: configurare le rotte. Networks → Routes, impostate il gateway predefinito o le rotte statiche
  • Sesto passo: configurare il Pool. Local Traffic → Virtual Servers → Pools, impostate nome, health check (per esempio TCP), algoritmo di bilanciamento (per esempio il metodo observed-member), IP e porte dei server reali
  • Settimo passo: configurare il Virtual Server. Local Traffic → Virtual Servers, collegate il Pool di sopra e scegliete il metodo a rotazione (il più usato è RoundRobin)
  • Ottavo passo: configurare i Monitor. Local Traffic → Monitors, verificate lo stato di salute dei server e collegate i Pool
  • Nono passo: configurare il Redundant, per la ridondanza a due dispositivi

6. I parametri chiave del Virtual Server

Il cuore di F5 è il Virtual Server: se trascurate alcuni parametri, i guai arrivano.

VS Type (tipo), i tre più comuni:

  • Performance L4: inoltro puramente di layer 4; il TMM si occupa solo di distribuire le connessioni, non modifica i parametri TCP, e la connessione client-server è 1:1. Inoltro rapidissimo, molto usato nelle aziende. Per ridurre l'impatto sull'applicazione,se potete scegliete sempre prima questo
  • Standard VS: le connessioni TCP client e server sono completamente indipendenti. Si usa quando servono funzioni di layer 7 (persistenza via cookie, persistenza di Session ID, persistenza di header, split di connessioni persistenti per transazione, protezione dagli attacchi SYN). Attenzione a una caratteristica:la sua porta resta sempre aperta verso l'esterno: anche se tutti i Node backend sono down, la porta 80 della VIP risponde ancora al telnet, solo che la pagina non si apre. Tenerlo a mente quando lo usate per il troubleshooting
  • Forwarding IP: serve per le connessioni tra rete interna ed esterna, non ha Pool Member e l'inoltro dipende dal routing locale. Per impostazione predefinita F5 non ha funzioni di routing: per attivarle bisogna creare un VS con indirizzo tutto 0

I Timeout vanno allineati(questa è una trappola vera). Se sul VS è configurato un TCP Profile, le connessioni UDP non vengono accettate. E soprattutto fate caso al valore di Idle Timeout nel profilo tcp:deve coordinarsi con il server. Se su F5 è impostato a 150 secondi e sul server IIS a 300, si generano errori a raffica. I tempi dei due lati vanno messi d'accordo.

Address/Port Translation: entrambi attivi per impostazione predefinita. Attivate l'Address Translation quando l'IP del VS differisce dall'IP reale della macchina; attivate la Port Translation quando la porta 8080 del VS corrisponde alla porta 80 dell'indirizzo reale.

SNAT AutoMap: l'indirizzo sorgente SNAT è il Self IP della VLAN da cui la richiesta esce. Se su una VLAN ci sono più Self IP, vengono usati a rotazione.

7. Perché la “persistenza di sessione” è un must

È il concetto più trascurato e più fonte di guai in tutto il load balancing.

In sistemi come l'e-commerce o l'autenticazione online, un cliente attraversa più interazioni per completare una transazione. Queste interazioni sonostrettamente collegate: per elaborare il secondo passo, il server spesso deve conoscere il risultato del primo. Ciò richiede che tutte queste interazioni sianogestite dalla stessa macchina, senza che il load balancer le disperda su macchine diverse.

È esattamente la ragion d'essere della persistenza di sessione (Persistence). F5 la realizza tramite Connectivity, con modalità selezionabili:

  • persistenza per indirizzo sorgente: vincola in base all'IP sorgente del client
  • persistenza via cookie: F5 inserisce automaticamente il cookie di sessione, il più usato al layer 7
  • persistenza SSL Session ID: riusa la sessione SSL
  • tabella di persistenza di sessione: supporta più regole di timeout e di matching

Cosa succede se è configurata male? L'utente aggiunge un articolo al carrello, ricarica la pagina e sparisce: la richiesta è finita su un altro server. Incidenti di questo tipo online sono molto faticosi da diagnosticare.

8. Alcuni dettagli pratici da cui non si sfugge

Chiudo con qualche trappola già scavalcata da altri, arrivando subito alla conclusione:

  • L'health check va scelto al livello giusto: se guardate solo l'handshake TCP, un server con la porta viva ma l'applicazione giù continua a ricevere traffico; per verificare il livello applicativo usate un Monitor di tipo HTTP che interroghi endpoint come /actuator/health
  • I firewall vanno disposti a “panino”: un singolo firewall spesso raggiunge solo il 30% del throughput di linea; per migliorare bisogna accumularne più unità. Ma i firewall vogliono i dati che entrano ed escono dalla stessa via, altrimenti le connessioni vengono respinte: la soluzione di firewall load balancing di F5 risolve il problema e garantisce la persistenza verso dispositivi trasparenti
  • L'offload SSL è il risparmio di CPU più grande: lasciate a F5 l'handshake HTTPS e la cifratura/decifratura; l'applicazione Java dietro lavora solo in HTTP, con un guadagno di prestazioni evidente
  • Prima di andare in produzione, fate load test: il layer 4 è veloce, ma se attivate la persistenza di sessione su un VS di layer 4 introducete stato, e le stime di prestazione vanno ricalcolate
  • Fissate tre metriche da monitorare: stato dei pool, throughput del virtual server, salute dei nodi
  • Comandi di troubleshooting: tmsh show ltm pool <pool-name> per lo stato del pool, tmsh show ltm virtual <vs-name> per lo stato del virtual server
Load balancing di layer 4 e 7

Per concludere

Il load balancing sembra un semplice “dispositivo di inoltro”, in realtà occupa il punto più delicato dell'intera architettura: tutto il traffico passa dalle sue mani. Se è ben configurato, l'utente non ne percepisce l'esistenza; se è mal configurato, le telefonate notturne arrivano da te.

Nell'era cloud native, soluzioni software come LVS, Nginx e HAProxy bastano ampiamente per gli scenari piccoli e medi, con un vantaggio di costo evidente. Ma quando si tratta di ingressi critici in finanza, borsa o grande e-commerce, il valore dell'hardware di load balancing in stabilità, failover in millisecondi e sicurezza integrata non è ancora sostituibile a breve.

Quanto al nome “F5”, il suo percorso da azienda a categoria di prodotto parla da sé: quando un prodotto viene usato come verbo, ha già vinto quel mercato.

Il layer 4 legge i cartelli, il layer 7 apre i pacchi; per la prestazione scegli il layer 4, per le funzioni raffinate il layer 7.

Riferimenti: materiale ufficiale F5 BIG-IP LTM, caso di load balancing F5 da “Network Operations and Management”, confronto tecnico tra load balancing di layer 4/7