1) Procurarsi ed estrarre i sorgenti del kernel (http://www.kernel.org).
2)Scaricare la patch del kernel. I kernel successivi al 2.2 (dal 2.4 e successivi) non hanno bisogno dell a patch perchè il codice è già integrato nell' archivio.Tuttavia è necessaria una patch per l'utilizzo del bridge firewalling (solo con iptables!!!)
Tutti i sorgenti possono essere scaricati da qui:
http://bridge.sourceforge.net/download.html
In particolare, abbiamo usato la patch: bridge-nf-0.0.7-against-2.4.19.diff
Assumendo che il kernel e la patch siano in /usr/src/linux
#cd /usr/src/linux
#pathc -p1 < bridge-nf-0.0.7-against-2.4.19.diff
e ricompilare il kernel (vedi sezione successiva).
Bisogna ache aver installato le bridge-utils (anche dopo la ricompilazione del kernel).
Ne esistono sia gli rpm che i sorgenti tar.gz (http://bridge.sourceforge.net/download.html)
Ricompilazione del kernel
#bash: cd /usr/src/linux
#bash: make mrproper; make make xconfig;
#bash: make dep; make bzImage; make modules; makem modules_install
Configurare il bridge
Assicurarsi che le interfacce coninvolte nel bridge funzionino e siano attive.
Consultare la guida di ifconfig e/o
Non preoccuparsi di assegnare IP-addresses o net-masks alle interfacce coinvolte.
Se avete compilato il bridge come modulo, assicuratevi la sua presenza con:
#bash: modprobe -v bridge
Se le bridge-utils sono state correttamente installate, avete a disposizione il nuovo comando brctl.
Sintassi del comando brctl
6.1. brctl Command Synopsis
root@mbb-1:~ # brctl
commands:
addbr <bridge> add bridge (1)
addif <bridge> <device> add interface to bridge (2)
delbr <bridge> delete bridge (3)
delif <bridge> <device> delete interface from bridge (4)
show show a list of bridges (5)
showbr <bridge> show bridge info (6)
showmacs <bridge> show a list of mac addrs (7)
setageing <bridge> <time> set ageing time (8)
setbridgeprio <bridge> <prio> set bridge priority (9)
setfd <bridge> <time> set bridge forward delay (10)
setgcint <bridge> <time> set garbage collection interval (11)
sethello <bridge> <time> set hello time (12)
setmaxage <bridge> <time> set max message age (13)
setpathcost <bridge> <port> <cost> set path cost (14)
setportprio <bridge> <port> <prio> set port priority (15)
stp <bridge> <state> {dis,en}able stp (16)