PDA

View Full Version : Configurare in bonding 2 schede di rete


BananaPower
29-05-2006, 10:09
Serve per usare 2 schede di rete (pc o server) in maniera tale da avere un load balance e aumentare le prestazioni e sicurezza della rete.Una interfaccia di rete speciale chiamata channel bonding interface. Il Channel bonding abilita due o più interfacce di rete ad agire come se fossero una, allo stesso tempo aumentando la larghezza della banda e fornendo una certa ridondanza.

il progetto..
http://linux-net.osdl.org/index.php/Bonding

Come fare:
http://wiki.gentoo-italia.net/index.php/Bonding:_schede_di_rete_ridondanti_e_load_balancing
Spesso capita di dover mettere in funzione dei server ad alta affidabilità. In questa breve guida vedremo come configurare due schede di rete in modo che siano ridondanti tra di loro. In poche parole se una scheda si guasta o la porta sullo switch si blocca, il nostro sistema continuerà ad essere on-line. In ambiente Microsoft questa feature viene chiamata teaming mentre in Linux è conosciuta come bonding.

Devil!
29-05-2006, 21:16
grazie, interessante!

tutmosi3
30-05-2006, 10:40
Interessante, seguirò l'evoluzione dell'idea con attenzione.
Ciao

BananaPower
30-05-2006, 16:43
RAGAZZI FIGATA SPAZIALE !!!!!!!!!! :sofico: :sofico: :sofico:
ecco cosa esce una volta configurato ...

linux-sbut:/home/giulio # ifconfig
bond0 Link encap:Ethernet HWaddr 00:A0:C9:C6:8F:0E
inet addr:10.5.xx.xx Bcast:10.x.xx.255 Mask:255.255.254.0
inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:13531 errors:0 dropped:0 overruns:0 frame:0
TX packets:679 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1050331 (1.0 Mb) TX bytes:59878 (58.4 Kb)

eth0 Link encap:Ethernet HWaddr 00:08:02:1F:9C:C5
inet addr:10.5.xx.xx Bcast:255.255.255.255 Mask:255.255.254.0
inet6 addr: fe80::208:2ff:fe1f:9cc5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:20815 errors:0 dropped:0 overruns:0 frame:0
TX packets:2106 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3054352 (2.9 Mb) TX bytes:455236 (444.5 Kb)

eth1 Link encap:Ethernet HWaddr 00:A0:C9:C6:8F:0E
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:13531 errors:0 dropped:0 overruns:0 frame:0
TX packets:679 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1050331 (1.0 Mb) TX bytes:59878 (58.4 Kb)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1243 errors:0 dropped:0 overruns:0 frame:0
TX packets:1243 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:95330 (93.0 Kb) TX bytes:95330 (93.0 Kb)


Vado di fretta, ma cmq farò una guida per instradarvi e ricordare come ho ho potuto mettere 2 schede di rete su Suse 10.1 in bonding ...

:read: ho cmq 1 solo ip adress su tutte e 2 le schede di rete ...
A PRESTO !!!!!!!!!!!!!!!!!!!!!!!!!!!!

Devil!
30-05-2006, 19:08
bello! ci devo assolutamente provare, 100mbit mi vanno stretti e dato che avanzano schede di rete :stordita:

può funzionare con più di 2 schede?

_YTS_
30-05-2006, 19:51
si funziona con piu di due :D

ciao

BananaPower
31-05-2006, 10:14
Tutta questa fava, in SUSE 10.x viene effettuata tramite script, che ho scoperto DOPO, essermi letto per 3 ore documentazione SPARSA in giro e di diverse distro... vabbè è sempre un modo per imparare e sapere cosa avviene dietro lo script ...
vi metto subito la parte più facile, fatta con lo script...
http://en.opensuse.org/Bonding

Visto che ci ho perso tempo però vi spiego come fare a mano .... :mad: :mad: :mad: :doh:

Bonding schede di rete (EFFETTUATO SU OPENSUSE 10.1).
Documentazione riassunta e semplificata utilizzando F.A.Q di Red-HaT, Novell, Gentoo, Slack

Spesso capita di dover mettere in funzione dei server ad alta affidabilità. In questa breve guida vedremo come configurare due schede di rete in modo che siano ridondanti tra di loro. In poche parole se una scheda si guasta o la porta sullo switch si blocca, il nostro sistema continuerà ad essere on-line. In ambiente Microsoft questa feature viene chiamata teaming mentre in Linux è conosciuta come bonding.

Interfacce Channel Bonding: permette agli amministratori di unire le interfacce di rete multiple insieme in un singolo canale usando il modulo del kernel bonding e una interfaccia di rete speciale chiamata interfaccia channel bonding. Il channel bonding permette a due o più interfacce di agire come se fossero una unica interfaccia, aumentando simultaneamente la larghezza della banda fornendo così una ridondanza. Può risultare utile se in ufficio avete disponibilità di più punti di rete attivi ed inutilizzati nella vostra stanza, l'amministratore di rete avrà poco da dire, visto che utilizzerete un solo ip, al massimo borbotterà solo se lo switch di piano ha quasi finito le porte...stà al vostro buonsenso =)

Ma quante sono le modalita' di Bonding?
+ Le modalita di bonding sono sei, andiamo ad elencarle:

mode=0
balance-rr, questo e' la modalita' load-balancing con algoritmo
round-robin vista sopra. In pratica i pacchetti vengono trasmessi
in sequenza a partire dalla prima sheda di rete all'ultima
appartenente al raggruppamento. In parole povere supponendo di
avere 3 Slave: eth0, eth1, eth2 che appartengono al Master bond0,
il pacchetto numero 1 passa dalla eth0, il 2 dalla eth1, il 3
dalla eth2, il 4 di nuovo dalla eth0 e cosi' via.

mode=1
active-backup, questa e' la modalita' in cui e' attiva solo una
slave per volta, la successiva scheda appartenente alla bond0
diventa attiva solo nel caso in cui la slave primaria, attualmenta
attiva, perdesse il collegamento. Il MAC address visibile
all'esterno e' solo il MAC assegnato alla bond0 (che corrisponde
al MAC di una scheda fisica).
Viene usata per garantire il Fault Tollerace del collegamento.

mode=2
balance-xor, questa modalita' usa un algoritmo basato sull' XOR
logico tra MAC address di destinazione e quello sorgente per
garantire la selezione della medesima slave in base alla
sorgente. Viene usata per garantire load-balancing e
contemporaneamente fault-tollerance.

mode=3
broadcast, questa modalita' viene usata per trasmettere tutti i
pacchetti su tutte le schede di rete aggregate. Viene usata per
garantire fault-tollerance.

mode=4
802.3ad, vengono utilizzate tutte le schede di rete attive facenti
parte della bond0 in accordo con le specifiche 802.3ad.
Richiede Nic e Switch che supportino le specifiche 802.3ad.

mode=5
balance-tlb, in questa modalita' si ha il load-balancing
adattativo (in funzione del traffico) solo in trasmissione.

mode=6
balance-alb, questa e' la modalita' di load-balancing
adattativo in entrambe le direzioni.

PRIMA DI CREARE IL BOND FATE UN BEL IFCONFIG E SEGNATEVI (salvateli su di un file giusto per ricordare) I PARAMETRI DI BROADCAST, GATEWAY, NETMASK, INDIRIZZO IP che serviranno in seguito.
Aprire il gestore delle schede di rete (con Yast2 o simili), e praticamente dovrete configurare eth0 ed eth1 con lo stesso ip address (quindi non userete il DHCP se siete in ufficio o cmq utilizzerete 1 solo ip address, visto che cmq il server DHCP ci mette anche settimane a rilasciare il vostro indirizzo ip) e lo stesso netmask, mettere lo stesso indirizzo/i ip del vostro DNS, e alla voce 'routing' immettere nel GATEWAY lo stesso gateway.

Per creare una interfaccia channel bonding, una volta aperto il terminale e diventato root, creare un file nella directory /etc/ e chiamarlo modules.conf (per chi non mastica VI potete usare il file manager- modalità superutente ed utilizzare Kwrite o altro)
Aggiungere questa stringa:
alias bond0 bonding.
options bonding mode=3 (scegliete secondo vostre necessità) miimon=100 downdelay=200 updelay=200

salviamo il file ed usciamo dall'editor.

Per creare l'interfaccia Bond dobbiamo anche creare un configuration file in /etc/sysconfig/network/ facendo le seguenti cose:

1. Aprire un terminale come superutente con il comando 'su' e diventare root.
2. Cambiare directory ed andare in /etc/sysconfig/network/.
3. Creare il bond configuration file chiamando il file (con vi o Kwrite e simili) ifcfg-bond0.
4. Nel configuration file, mettete quanto segue:


DEVICE='bond0'
IPADDR='xxx.xxx.xxx.xxx'
NETMASK='yyy.yyy.yyy.yyy'
BROADCAST='zzz.zzz.zzz.zzz'
GATEWAY='***.***.***.***'
BOOTPROTO='static'
STARTMODE='onboot'
ONBOOT=yes
BONDING_MASTER='yes'
BONDING_SLAVE_1='eth0'
BONDING_SLAVE_1='eth1'



nel dettaglio:
IPADDR='dovrete mettere l'indirizzo ip che avevate con una sola interfaccia di rete eth0'
NETMASK='yyy.yyy.yyy.yyy' (mi pare abbastanza chiaro..)
BROADCAST='zzz.zzz.zzz.zzz'(anche quì mettere l'indirizzo della vostra vecchia e sola eth0)
GATEWAY='***.***.***.***' (indirizzo del gateway ...)

Da parte della configurazione delle schede di rete eth0 ed eth1, praticamente bisogna aggiungere alcune cosine, giusto per dire che diventano 2 SLAVE della
scheda Bond...

Nella cartella /etc/sysconfig/network troverete 2 files per esempio io ho : ifcfg-eth-id-00:08:02:1f:9c:c5 ed il secondo ifcfg-eth-id-00:a0:c9:c6:8f:0e dove all'interno una volta aperto bisogna aggiungere delle cose (da fare su tutte e 2 le schede di rete ...)

BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='xxx.xxx.xxx.xxx'
MTU=''
NAME='Compaq EtherExpress PRO/100 VM'
NETMASK='255.255.xxx.xxx'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='auto'
UNIQUE='rBUF.zXYYdIgwK5F'
USERCONTROL='no'
_nm_name='bus-pci-0000:02:08.0'

da aggiungere :
MASTER='bond0'
SLAVE='yes'

in questo modo eth0 ed eth1 diventeranno appunto slave... con un master che sarà bond0..

Una volta fatto questo bisogna dare il comando da terminale: ifenslave bond0 eth0 eth1
poi attivare l'interfaccia bond0, con il comando: ifup bond0
poi riavviare la rete: rcnetwork restart
verificare il risultato, come da me già messo con : ifconfig.

Questo è tutto ...