Ethernet Bonding: come garantire ridondanza e/o massimizzare la banda disponibile: differenze tra le versioni

Riga 19: Riga 19:
== Tipi di bonding ==
== Tipi di bonding ==
Esistono diversi tipi di bonding, relativi a come il kernel gestirà i flussi di dati in entrata e in uscita dal sistema:
Esistono diversi tipi di bonding, relativi a come il kernel gestirà i flussi di dati in entrata e in uscita dal sistema:
* <code> '''mode=0 (balance-rr)'''</code>: viene configurato un round-robin tra le due interfacce. I pacchetti vengono trasmessi attraverso la scheda di rete scarica e se una delle due va KO viene usata solo la scheda di rete funzionante. Questa  modalità fornisce sia il load balance e sia il fault tolerance e non prevede switch di rete con particolari funzionalità;
* <code> '''mode=0 (balance-rr)'''</code>: viene configurato un round-robin tra le due interfacce. I pacchetti vengono trasmessi attraverso la scheda di rete scarica e se una delle due va KO viene usata solo la scheda di rete funzionante. Questa  modalità fornisce sia il load balance e sia il fault tolerance, ma richiede che tutto il traffico passante per il bond converga prima o poi in uno stesso switch;
* <code>'''mode=1 (active-backup)'''</code>: una sola schede di rete viene usata. Se questa si rompe il MAC address viene associato all'altra funzionante (di backup) e quindi il flusso di rete viene garantito. Questa modalità fornisce un sistema di fault tolerance e non è necessario uno switch che abbia funzionalità avanzate;
* <code>'''mode=1 (active-backup)'''</code>: una sola schede di rete viene usata. Se questa si rompe il MAC address viene associato all'altra funzionante (di backup) e quindi il flusso di rete viene garantito. Questa modalità fornisce un sistema di fault tolerance e non è necessario uno switch che abbia funzionalità avanzate. Questa modalità è utile solo per garantire ridondanza.
* <code>'''mode=2 (balance-xor)'''</code>: il traffico di rete viene inoltrato sulla scheda in base a questa regola di XOR: ((source MAC) XOR (dest MAC)).  Questa modalità garantisce load balance e fault tolerance e non necessita di particolati switch;
* <code>'''mode=2 (balance-xor)'''</code>: il traffico di rete viene inoltrato sulla scheda in base a questa regola di XOR: ((source MAC) XOR (dest MAC)).  Questa modalità garantisce load balance e fault tolerance;
* <code>'''mode=3 (broadcast)'''</code>: vengono usate tutte le interfacce per trasmettere e ricevere. Il fault tolerance è garantito senza switch preposti;
* <code>'''mode=3 (broadcast)'''</code>: vengono usate tutte le interfacce per trasmettere e ricevere, il fault tolerance è garantito senza switch preposti. Questa modalità è di norma utile nel caso sia necessario servire due o più gruppi di host tra loro indipendenti;
* <code>'''mode=4 (802.3ad)'''</code>: è una modalità di supporto allo standard IEEE 802.3ad Dynamic link aggregation. È necessario uno switch che supporti lo standard 802.3ad;
* <code>'''mode=4 (802.3ad)'''</code>: è una modalità di supporto allo standard IEEE 802.3ad Dynamic link aggregation. È necessario uno switch che supporti lo standard 802.3ad;
* <code>'''mode=5 (balance-tlb)'''</code>: Adaptive Transmit Load Balancing. Il traffico in entrata è ricevuto solo sullo slave attivo, il traffico in uscita viene distribuito a seconda del carico su ogni slave. Non necessita di particolari switch;
* <code>'''mode=5 (balance-tlb)'''</code>: Adaptive Transmit Load Balancing. Il traffico in entrata è ricevuto solo sullo slave attivo, il traffico in uscita viene distribuito a seconda del carico su ogni slave. Non necessita di particolari switch, ma è necessario che il traffico passante per il bond possa raggiungere ogni destinazione possibile a prescindere dalla scheda fisica effettivamente usata per trasmettere un certo pacchetto dati;
* <code>'''mode=6 (balance-alb)'''</code>: Adaptive Load Balancing. Fornisce bilanciamento del carico sia in ricezione che in trasmissione. Non necessita di switch particolari, ma richiede la capacità di cambiare l’indirizzo MAC del dispositivo di rete senza che questo interrompa il traffico.
* <code>'''mode=6 (balance-alb)'''</code>: Adaptive Load Balancing. Fornisce bilanciamento del carico sia in ricezione che in trasmissione. Valgono limiti e benefici indicati per il modo 5, inoltre richiede la capacità di cambiare l’indirizzo MAC del dispositivo di rete senza che questo interrompa il traffico.
 
=== Requisiti degli switch ===
Con "switch" si può intendere sia un dispositivo switch vero e proprio che un altro computer linux, il termina identifica cioè il dispositivo in cui confluiscono i cavi delle schede componenti il bond.
 
* Modalità 1, 5, 6: nessun requisito.
* Modalità 0, 2, 3: possibilità di "raggruppare" le singole porte dello switch.
* Modalità 4: supporto per lo standard 802.3ad, possibilità di "raggruppare" le singole porte dello switch e altre eventuali in base allo specifico modello.
 
== Installazione ==
== Installazione ==
Il bonding su Linux è gestito dal programma <code>ifenslave</code>:
Il bonding su Linux è gestito dal programma <code>ifenslave</code>:
3 040

contributi