Regole iproute2 e iptables NAT ... qual è la differenza?


8

Abbiamo 2 diverse connessioni ISP. Il nostro precedente "ragazzo IT" ha impostato il nostro firewall in questo modo:

Quando è /etc/rc.localstato eseguito all'avvio, ha eseguito una serie di ip rule adde ip route addcomandi per instradare determinati host interni per utilizzare determinate connessioni ISP.

Quindi, alla fine /etc/rc.local, ha eseguito le nostre iptablesregole del firewall generate da Firewall Builder. Queste iptablesregole hanno sia le regole che le regole NAT configurate al loro interno.

Quello che non capisco, è perché ha usato iproute2per specificare regole e percorsi ma anche per specificare le regole NAT iptables? Perché non ha fatto tutto in uno o nell'altro invece di usarli entrambi? Avrebbe potuto sbarazzarsi delle iproute2regole e delle rotte e mettere tutte quelle stesse regole nelle iptablesimpostazioni NAT?

Risposte:


13

Mentre c'è una certa sovrapposizione nella funzionalità tra i due strumenti, ci sono molte cose che puoi fare solo da uno degli strumenti. iproute2non può fare nulla con le regole del firewall netfilter. iptablesnon può fare cose come assegnare indirizzi IP.

Anche in luoghi in cui la funzionalità sembra sovrapporsi, in realtà non si sovrappone. Ad esempio, puoi fare la traduzione dell'indirizzo con entrambi iproute2e iptables. Ma la traduzione dell'indirizzo che puoi fare con iproute non tiene conto di nessuno stato e non riscrive assolutamente il pacchetto. Esistono diversi protocolli di rete come FTP, SIP, H.323, ecc. In cui gli indirizzi IP sono inclusi nel pacchetto e non solo nelle intestazioni. Se si utilizza il metodo iproute per la traduzione degli indirizzi, tali tipi di protocolli verranno interrotti. Netfilter svolge un lavoro molto migliore nella traduzione degli indirizzi.

Nella maggior parte dei casi in cui la funzionalità si sovrappone, viene gestita in diversi modi. È possibile con un modulo eseguire il routing iptables, ma l'ultima volta che ho verificato che il modulo non era sulla maggior parte delle distribuzioni per non avere netfilter / iptablespatch con il target ROUTE . Se tale obiettivo non è disponibile, non è possibile utilizzare netfilter per il routing a meno che non si abbia voglia di compilare i propri kernel. La tua decisione su quale strumento utilizzare verrà presa semplicemente perché la funzione non è disponibile nella versione degli strumenti in esecuzione. Anche se hai il target ROUTE, da quello che ho capito, non è così efficiente utilizzare netfilter per le decisioni di routing come lo è fare il routing con le tabelle di routing standard con iproute2manipola.

Gran parte utilizza anche lo strumento giusto per il lavoro giusto. iproute2è progettato principalmente per la gestione di routing e indirizzi sul tuo computer. iptables/ Netfilter è progettato per il firewalling.

Penso che nei luoghi in cui una persona potrebbe usare entrambi gli strumenti di solito useranno lo strumento con cui hanno più familiarità. So di usare il target MARK di iptablesper contrassegnare alcuni pacchetti per una rotta o per l'altra anche se potrei scrivere la stessa regola con iproute2.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.