Il termine IP Forwarding descrive l'invio di un pacchetto di rete da un'interfaccia di rete a un'altra sullo stesso dispositivo. Dovrebbe essere abilitato quando vuoi che il tuo sistema agisca come un router che trasferisce i pacchetti IP da una rete all'altra.
Su un sistema Linux il kernel Linux ha una variabile denominata 'ip_forward' che mantiene questo valore. È accessibile utilizzando il file '/proc/sys/net/ipv4/ip_forward'. Il valore predefinito è 0 che significa nessun inoltro IP, perché un utente normale che esegue un singolo computer senza ulteriori componenti non ne ha bisogno, di solito. Al contrario, per router, gateway e server VPN è una caratteristica piuttosto essenziale.
Successivamente, ti spiegheremo come abilitare l'inoltro IP temporaneamente e permanentemente.
Inoltro IP come soluzione temporanea
Per abilitare al volo questo parametro del kernel hai due opzioni. L'opzione 1 memorizza semplicemente il valore di 1 nella variabile dall'alto come segue:
# echo 1 > /proc/sys/net/ipv4/ip_forwardL'opzione 2 utilizza il comando 'sysctl' che consente di regolare anche diversi parametri del kernel in fase di esecuzione [2]. Come utente amministratore, esegui il seguente comando:
# sysctl -w rete.ipv4.ip_forward=1Tieni presente che questa impostazione viene modificata istantaneamente. Inoltre, il risultato non verrà conservato dopo il riavvio del sistema.
È possibile interrogare il valore memorizzato come segue:
# cat /proc/sys/net/ipv4/ip_forwardQuesto comando restituisce un valore di 0 per nessun inoltro IP e un valore di 1 per l'inoltro IP abilitato. In alternativa, l'utilizzo di 'sysctl' mostra anche lo stato corrente:
# sysctl net.ipv4.ip_forwardnetto.ipv4.ip_forward = 0
#
Abilitare l'inoltro IP in modo permanente
Per raggiungere questo obiettivo devono essere fatti alcuni altri passaggi. Innanzitutto, modifica il file '/etc/sysctl.conf'. Cerca una riga contenente la voce “#net.ipv4.ip_forward=1” e rimuovi il # all'inizio della riga.
Quindi, salva il file ed esegui il comando 'sysctl' per abilitare le impostazioni regolate:
# sysctl -p /etc/sysctl.confL'opzione '-p' è l'abbreviazione di '-load' e richiede un nome per il file di configurazione da seguire.
Quindi, riavvia il file system proc che fornisce informazioni sullo stato del kernel Linux utilizzando il seguente comando:
# /etc/init.d/procps riavviaIn circa 2015 il nome del file è stato accorciato da "procps".sh' in 'procps'. Quindi, sui vecchi sistemi Debian lo script che devi invocare si chiama 'procps.sh', invece.
Trattare con Systemd
Il prossimo ostacolo è arrivato con il rilascio della versione Systemd 221. L'inoltro IP è disabilitato per impostazione predefinita e l'abilitazione richiede la presenza di un file aggiuntivo. Se non è ancora lì, aggiungilo. Il nome del file è costituito dal nome dell'interfaccia di rete seguito dal suffisso '.rete", ad esempio "eth0.network' per l'interfaccia di rete '/dev/eth0'. Come indicato nella documentazione [4], le altre estensioni vengono ignorate.
Il seguente frammento di codice mostra la configurazione per l'interfaccia di rete '/dev/tun0'. Contiene due sezioni: 'Match' e 'Network'. Nella sezione Match definire il nome dell'interfaccia di rete e nella sezione network abilitare IP Forwarding.
# cat /etc/systemd/network/tun0.Rete[Incontro]
Nome=tun0
[Rete]
IPForward=ipv4
Conclusione
L'attivazione dell'inoltro IP per IPv4 non è un mistero. Pochi passi e ci sei. Felice hacking!
Link e riferimenti
* [1] Configurazione di Systemd-Networkd, Debian Wiki
* [2] Juergen Haas: Impara il comando sysctl di Linux
* [3] Notizie di Systemd per la versione 221
* [4] Documentazione per Systemd