Newsgroup: it.comp.os.linux.sys
Titolo: due schede di rete e un ip

Oggi mi arriva un nuovo server da installare che ha due schede di rete
integrate.
Siccome questo server deve essere messo in housing non ho bisogno di dare
un ip diverso ad ogni scheda, piuttosto vorrei fare in modo che in caso di
rottura di una scheda la seconda faccia da backup.
Ok, lo so che non è molto furbo perché le probabilità che una delle due
schede integrate si rompa e l'altra no è ridotta e che in caso di rottura
l'ambata di schede bruciate è quasi sicura, però mi piacerebbe comunque
adottare questa soluzione.
A questo punto però non so come fare. Mi sono venute in mente queste
soluzioni:
* bridge
* bonding delle schede di rete
* script che pinga e se fallisce riconfigura le interfacce
Però nessuna di queste soluzioni di convince. Io penserei al
bonding, ma non so come si comporteranno gli switch cui andrà
connesso il server. Insomma, se loro filtrano in base ai mac address e
vedono che alloo stesso ip sono associati i due indirizzi mac delle due
schede, cosa fanno? So che i cisco supportano questa cosa, ma gli altri
switch non lo so.
Qualcuno di voi si è mai posto il problema?

 
Per esperienza ti dico che è un ginepraio. Nel senso che quello che tu
dici è uno standard chiamato "trunking" con tanto di specifica numerata
802.3qualcosa, ma ogni produttore lo chiama in modo diverso. Il problema
è che occorre vedere come lo realizza Linux. Se, come penso, fa un
trunking effettivo, allora occorre che le porte dello switch
corrispondente siano configurate allo stesso modo, e non puoi essere
connesso ad un hub. In questo modo avresti il doppio vantaggio di load
balancing (ossia i due flussi si sommano ed il carico viene bilanciato) e
della ridondanza (avendo due possibili percorsi di uscita). Il problema
puo' essere però lo switch che supporta solo "a chiacchiere" il trunking)
e che deve essere configurato appositamente. 
Un possibile soluzione potrebbe essere l'ip aliasing, ossia gestire le due
porte come normali ethernet con i loro ip differenti, ed assegnare ad una
delle porte l'ip "vero" in modo alias. Se la porta perde connessione
(alcuni driver di schede di rete segnano nel syslog quando il link è
down) fai partire uno script che assegna l'ip alias all'altra scheda. E'
un sistema simile a quello usato da SUN in molti server SunFire
chiamandolo IP Multipath, ma non da' la somma della banda in quanto solo
una interfaccia per volta è usata.
HTH
-- 
Mario "Reliant" Pascucci
Linux Registered user #327002 
http://counter.li.org/
http://www.geocities.com/ilpettegolo/

Ottavio Campana ha scritto:

Tempo fa ho avuto a che fare con un problema simile, dovendo eseguire il 
tuning di due interfacce di rete ethernet su un server, in modo che se 
una crollasse ci fosse l'altra di backup e ti dirò, non è stata una cosa 
facile.
In realt\'a fui parecchio aiutato dal fatto che le due schede ethernet 
(due gigabit della Intel) avessero un supporto specifico per questo tipo 
di configurazione, per cui, a livello kernel, mi bastò scaricare i 
driver specifici dal sito del produttore e ricompilarli.
E fin lì tutto liscio.
Anche la configurazione iniziale filò liscia... si trattava di demandare 
al driver lo switch tra le due, e configurare il tutto come un'unica 
interfaccia.
Ahimè i problemi sorsero a causa di una congestione delle linea causata 
da una failure da parte del fornitore di collegamento intranet, che 
mandò letteralmente in palla il sistema.
Infatti, la mancata presenza di segnale, mandò in un infinite loop il 
meccanismo di switch, facendo crashare il server, e, a causa della 
struttura della rete (si trattava di una sorta di cluster di 
elaborazione), tutta una sottorete, con le conseguenze del caso.
Il fatto che il bug dell'infinite loop non fosse certificato mi creò 
infine una serie di gratacapi con il responsabile del progetto, che finì 
con un'incresciosa risoluzione del contratto da parte sua... :-(
-- 
  Montag trattenne le bombe, lassù, per un solo istante, col pensiero e
le mani disperatamente brancolanti verso il cielo, a sorreggerle.
-------------------------------------------------------------------------
montagLA_CHIAV...@email.it
 Per rispondere toglere LA_CHIAVE.

 dici è uno standard chiamato "trunking" con tanto di specifica numerata
halt!
Il trunking è la gestione della porta ethernet per il trasporto dei frame
taggati, e ha solamente a che fare con la gestione di VLAN, afaik, che non
è il suo caso...
confondo io?
Tornando all'OP, il bonding delle interfacce ti permette di avere maggiore
velocità (aggrega la banda) ma non fornisce (a meno che il driver sia
cambiato e io non lo so) funzionalità di failover: se ti salta una delle
due eth inizierai a ricevere un frame su due... e inoltre richiede che
l'altro peer (lo switch insomma) supporti tale modalità.
Il metodo classico per il failover delle interfacce è l'apposito driver
del produttore dell'hw, ove disponibile.
Tuttavia sono da parecchio convinto che il semplice fatto di avere le due
interfacce in bridge funzioni correttamente, anche se ammetto di non
averlo mai usato a questo scopo.
Eventualmente, potresti trovare qualche difficoltà se sei inserito in una
rete che fa uso effettivo di STP, oppure se sei in presenza di switch un
po' troppo zelanti che non si fanno i c@##i loro (questo perchè mi è già
capitato con bridge stp su linux, anche se realizzati a scopi diversi..)
In bocca al lupo... ma, soprattutto, se usi il bridging *dimmi_come_ti_va*
:-D
-- 
wash the blood from your hands
bury your secrets in the sand
and forget

 cambiato e io non lo so) funzionalità di failover:
e invece sì, il bonding permette, previo passaggio di un po' di parametri
al modulo al caricamente di avere il funzionamento di alta affidabilità.
Trovi la documentazione nei sorgenti di linux. Si basa su MII e appena
sente la mancanza del link instrada tutto sulla seconda scheda. 
E' stata una bella scoperta.