"IP forwarding" è sinonimo di "routing". Si chiama "forwarding IP del kernel" perché è una caratteristica del kernel Linux.
Un router ha più interfacce di rete. Se il traffico arriva su un'interfaccia che corrisponde a una sottorete di un'altra interfaccia di rete, un router lo inoltra all'altra interfaccia di rete.
Quindi, supponiamo che tu abbia due NIC, una (NIC 1) si trova all'indirizzo 192.168.2.1/24 e l'altra (NIC 2) è 192.168.3.1/24. Se l'inoltro è abilitato e un pacchetto arriva su NIC 1 con un "indirizzo di destinazione" di 192.168.3.8, il router rinvia quel pacchetto fuori da NIC 2.
È comune che i router che funzionano come gateway verso Internet abbiano una route predefinita in base alla quale qualsiasi traffico che non corrisponde a nessuna NIC passerà attraverso la NIC della route predefinita. Quindi nell'esempio sopra, se si dispone di una connessione Internet su NIC 2, si imposta NIC 2 come percorso predefinito e quindi tutto il traffico proveniente da NIC 1 che non è destinato a qualcosa su 192.168.2.0/24 andrà tramite NIC 2. Speriamo che ci siano altri router oltre NIC 2 che possano instradarlo ulteriormente (nel caso di Internet, l'hop successivo sarebbe il router del tuo ISP, e quindi i loro router upstream dei provider, ecc.)
L'abilitazione ip_forward
dice al tuo sistema Linux di farlo. Per essere significativo, sono necessarie due interfacce di rete (2 o più schede NIC cablate, schede o chipset WiFi, collegamenti PPP su un modem 56k o seriale, ecc.).
Quando si esegue il routing, la sicurezza è importante ed è qui che iptables
viene coinvolto il filtro pacchetti di Linux . Quindi avrai bisogno di una iptables
configurazione coerente con le tue esigenze.
Si noti che abilitare l'inoltro con iptables
disabilitato e / o senza tenere conto del firewall e della sicurezza potrebbe lasciarti aperto alle vulnerabilità se una delle NIC si trova di fronte a Internet o a una sottorete su cui non hai il controllo.