Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Linux Come impostare un bridge tra due schede di rete su Ubuntu

Come impostare un bridge tra due schede di rete su Ubuntu

E-mail Stampa PDF

Questa piccola guida spiega come impostare su un pc con due schede di rete un bridge tra queste ultime.

Facciamo un esempio io ho un notebook, che chiamo N, e mi connetto ad internet tramite un router adsl , che chiamo R.

Risulterebbe uno schema così:

[N][R]------>internet

Ora io voglio inserire nel mezzo un secondo PC, che chiamo F . Se avessi voluto usare un secondo pc per collegarmi ad internet lo avrei potuto collegare direttamente al router o magari usare uno switch, ma io voglio proprio che questo pc faccia da filtro per il mio portatile. quindi o schema sarebbe :

[N][F][R]----->internet

Il mio pc F quindi dovrà avere 2 schede ethernet e quindi 2 interfacce, che chiameremo eth0 ed eth1.

Ecco il bridge, letteralmente ponte, che andremo a creare servirà proprio a far fluire i dati in modo trasparente tra queste 2 interfacce.

Incominciamo installando il software necessario:

sudo apt-get install bridge-utils

dopo di che potremo verificare la funzionalità del comando brctl:

$sudo brctl

commands:
    addbr                 add bridge
    delbr                 delete bridge
    addif             add interface to bridge
    delif             delete interface from bridge
    setageing             set ageing time
    setbridgeprio            set bridge priority
    setfd                 set bridge forward delay
    sethello              set hello time
    setmaxage             set max message age
    setpathcost        set path cost
    setportprio        set port priority
    show                      show a list of bridges
    showmacs              show a list of mac addrs
    showstp               show bridge stp info
    stp           {on|off}    turn stp on/off


I comandi che ci interessano sono principalmente 2 : addbr, per creare il ponte, e addif per aggiungervi le interfacce.

Crea il ponte br0

$sudo brctl addbr br0

Aggiungi le interfacce Ethernet da usare nel ponte

$sudo brctl addif br0 eth0
$sudo brctl addif br0 eth1

Configura le interfacce Ethernet

$sudo ifconfig eth0 0.0.0.0
$sudo ifconfig eth1 0.0.0.0
$sudo ifconfig br0 up

Ora il ponte è creato e si può usare, per verificare ciò basta fare un ping dal portatile verso il router, se risponde vuol dire che tutto è andato bene, nel caso ci fossero problemi provate a riavviare i servizi di networking col comando :

$sudo /etc/init.d/networking restart 

Ora pero se volessimo utilizzare internet dal pc F sarebbe impossibile perché il ponte non ha un indirizzo così come le altre interfacce e manca anche il gateway. quindi ci serviranno altri pochi comandi:

$sudo route add default gateway 192.168.1.254 

con questo comando imposto come gateway il router R col quale mi connetto ad internet, naturalmente questo ip nel vostro caso potrebbe essere diverso, comunque se voi siete in grado di navigare in internet col portatile...beh allora guardate li come è impostato il gateway e poi copiate l'ip col comando precedente.

Non abbiamo ancora assegnato un IP al nostro bridge, quindi se vogliamo impostare l'assegnazione automatica dell'indirizzo ip usiamo:

$sudo dhclient br0  

Con questo comando, infatti, imposto la configurazione ip dinamica sul ponte, che gli verrà assegnata dal router R come avviene anche per il portatile.

Se invece vogliamo assegnargli subito un indirizzo statico allora useremo:

$sudo ifconfig br0 192.168.1.32

Con questo si conclude la guida, e nel caso vogliate ripristinare le condizioni iniziali:

$sudo ifconfig br0 down
$sudo brctl delbr br0

cioè elimino l'interfaccia virtuale e distruggo il ponte rilasciando le 2 interfacce.

Nel caso voleste rendere le cose permanenti...dato che al riavvio perdereste tutto, potrete procedere in 2 modi:

  1. Fare uno script contenente tutte le istruzioni elencate sopra e farlo eseguire all'avvio del pc
  2. Modificare il file /etc/network/interfaces in maniera tale da far avviare il servizio di rete come ci fa comodo

Entrambe sono valide soluzioni ma la seconda è veramente semplice infatti modificando il file :

$sudo nano /etc/network/interfaces

e inserendo questo

auto lo
iface lo inet loopback

auto br0
iface br0 inet dhcp
bridge_ports eth0 eth1

iface eth0 inet static
address 0.0.0.0

iface eth1 inet static
address 0.0.0.0

cancellate il resto oppure commentatelo con degli "#" all'inizio di ogni riga

dopo di che salvate il file e riavviate il servizio di rete

$sudo /etc/inidìt.d/networking restart

così avete risolto.

Per configurazioni più complicate vi riporto qualche esempio:

iface br0 inet manual
bridge_ports eth1 eth2
bridge_maxwait 0

Con questa avete impostato un bridge anonimo e trasparente senza assegnare alcun ip.

auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
bridge_ports all

con questa avete impostato un ip statico.

Se volessimo far eseguire un comando prima o dopo che l'interfaccia venga attivata dal servizio di rete useremo i comandi pre-up e post-up :

auto br0
iface br0 inet static
address 192.168.1.2
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
bridge_ports all


pre-up iwconfig wlan0 mode master essid myESSID

Così, se come interfaccia avessi una scheda wifi che fa da access point , verrebbe impostata insieme al ponte senza ulteriori script.

 

 

Ultimo aggiornamento ( Sabato 19 Giugno 2010 07:35 )  
Loading

Login




Chiudi