[hack] Debian kernel 2.2 --> 2.4.18

Gianni Bianchini giannibi@firenze.linux.it
Mar 22 Apr 2003 15:38:19 CEST


On Mon, Apr 21, 2003 at 04:02:13PM +0200, Hal wrote:

> se uso ipchains mi dice che non va bene lo stesso
> (ipchains funziona dal 2.2.x in poi?)

Funziona col 2.2 e in modo compatibilita' col 2.4 (se abilitato).
Se usi il 2.4 credo sia meglio usare iptables e via.
 
> Vi chiedo per favore di aiutarmi o a abilitare il NAT 
> oppure a passare al kernel 2.4.18. Grazie.

Come gia' segnalato,
apt-cache search kernel-image
e poi
apt-get install kernel-image-<versione scelta>

Un unico appunto: i pacchetti kernel-image utilizzano un ramdisk
iniziale (initrd) per rendere disponibili i vari moduli e fare
operazioni varie prima di montare il filesystem principale e far
partire il sistema. Bisogna pertanto dire a lilo di andarsi a caricare
il ramdisk giusto. Normalmente il .deb installa un
/boot/initrd.img-<versione scelta>. Nel lilo.conf e' opportuno
specificare, tra i campi dell'immagine relativa,
initrd=/boot/initrd.img-<versione scelta>

Nel mio lilo.conf c'e' questo:

image=/vmlinuz
        label=Linux
        read-only
        initrd=/initrd.img

dove /vmlinuz e' un link a /boot/vmlinuz-2.4.18-k7 (il kernel) e
/initrd.img e' un link a /boot/initrd.img-2.4.18-k7 .

Per quanto riguarda il NAT, i moduli necessari dovrebbero esserci
tutti nel kernel di debian, dunque non dovrebbero esserci problemi.
Bisogna in ogni caso abilitare l'ip forwarding

echo 1 > /proc/sys/net/ipv4/ip_forward

Il netfilter di linux 2.4 fa distinzione tra il NAT puro e il
masquerading (ipchains fa solo quest'ultima cosa credo). Il primo
assegna ai pacchetti in uscita l'indirizzo di provenienza che tu
specifichi, e si fa ad es. cosi':

iptables -t NAT -A POSTROUTING -o eth0 -j SNAT --to <ADDR>

che dice che tutti i pacchetti in uscita da eth0 debbono assumere
l'indirizzo di provenienza <ADDR> (che spesso e' l'indirizzo
IP associato a eth0 ma cio' non e' scontato e il NAT non sempre e'
usato in questo modo).
Il secondo piu' semplicemente assegna l'indirizzo di provenienza del
pacchetto sulla base dell'indirizzo associato all'interfaccia da cui
esce, e si usa cosi':

iptables -t NAT -A POSTROUTING -o ppp0 -j MASQUERADE

Quest'ultimo metodo e' il piu' pratico nel caso in cui si usi una
connessione esterna con IP dinamico, con l'altro ci sarebbe da tener
conto dell'indirizzo che ti e' stato assegnato.

Ciao.
Gianni.




Maggiori informazioni sulla lista golem-hack