Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Linux Abilitare ip_forward su ubuntu

Abilitare ip_forward su ubuntu

E-mail Stampa PDF

Nella maggior parte delle distribuzioni linux in circolazione l' IP Forwarding è disabilitato. Infatti la maggior parte delle persone non necessita di tale funzionalità, ma se volessimo usare il PC come un router/gateway linux o anche server VPN (pptp or ipsec) oppure un dial-in server allora sarà necessario abilitare il forwarding, cioè la capacità del sistema operativo di inoltrare il traffico di rete da una interfaccia ad un altra.

Questo può essere fatto in diversi modi, come verrà descritto in seguito.

Come controlalre che l'IP Forwarding sia abilitato

Per fare ciò noi dovremo interrogare il sysctl kernel sullo stato della variabile net.ipv4.ip_forward:
Lo possiamo fare usando direttamente il comando sysctl:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0

o semplicemente controllando il valore presente nel /proc system:

cat /proc/sys/net/ipv4/ip_forward
0

Come è possibile vedere negli esempi precedenti il valore restituito è 0, il che significa che l'ip forwarding  è disabilitato.

Abilitare l'IP Forwarding al volo

Come qualsiasi parametro del sysctl kernel noi, con le autorizzazioni necessarie, possiamo cambiare il valore di net.ipv4.ip_forward al volo, cioè senza riavviare il sistema:

sysctl -w net.ipv4.ip_forward=1

o

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

facendo così il valore verrà impostato istantaneamente, ma non sarà conservato dopo un successivo riavvio del sistema.

Abilitazione permanente usando /etc/sysctl.conf

Se volessimo impostare permanentemente questo parametro il miglior modo è quello di modificare il file /etc/sysctl.conf dove potremo aggiungere una linea contenente net.ipv4.ip_forward = 1

/etc/sysctl.conf:
net.ipv4.ip_forward = 1

Se esistesse già la linea e fosse impostata a 0 è possibile cambiare il valore ad 1. Se fosse commentata,cioè se ad inizio linea ci fosse un "#" allora è sufficiente cancellarlo.

Per abilitare le modifiche fatte sul file sysctl.conf eseguite il comando:

sysctl -p /etc/sysctl.conf

su alcune versioni derivate da Debian/Ubuntu può anche essere fatto riavviando il servizio procps:

/etc/init.d/procps.sh restart

Sui sistemi basati su RedHat questo è anche abilitato eseguendo il riavvio del servizio di rete:

service network restart

Abilitazione permanente usando gli scripts "init"

Sebbene il metodo presentato prima dovrebbe funzionare perfettamente, vorrei proporvi qualche altro modo di abilitare per abilitare IP Forwarding.

Per esempio su distribuzioni basate sulla Debian potremo modificare il file "/etc/network/options":

/etc/network/options:
ip_forward=no

impostando il valore "yes" e riavviando il servizio di rete.
anche nelle distribuzioni RedHat è possibile abilitarlo modificando il file "/etc/sysconfig/network":

/etc/sysconfig/network:
FORWARD_IPV4=true

e di nuovo riavviando il servizio di rete.

Per concludere ricontrollate sempre se l'abilitazione è avvenuta o meno usando i comandi:

sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
cat /proc/sys/net/ipv4/ip_forward
1

Se il risultato è 1 allora il sistema linux sarà abilitato al forwarding.

Ultimo aggiornamento ( Venerdì 18 Giugno 2010 21:07 )