PDA

View Full Version : iptables & cicli CPU


bort_83
20-10-2004, 15:13
Supponiamo che io dovessi fare una regola di nat per nattare gli indirizzi 192.168.x.x su 172.16.x.x ad uno ad uno...

for n in `(seq 0 254)`; do
for i in `(seq 1 254)`; do
iptables -t nat -A POSTROUTING -i eth1 -s 192.168.$n.$i -j SNAT --to-source 172.16.$n.$i
iptables -t nat -A PREROUTING -d 172.16.$n.$i -j DNAT --to-destination 192.168.$n.$i
done
done


avrei quasi 65.000 * 2 = 130.000 :sbavvv: regole di nat...

una cosa del genere quanto mi rallenterebbe la mia cpu ?

stefanoxjx
20-10-2004, 15:18
Potresti provare a lanciare lo script e poi dirci quanto rallenta.
Secondo me, na montagna!!!!!
130.000 regole da controllare, non sono proprio pochine :(

bort_83
20-10-2004, 15:35
Originariamente inviato da stefanoxjx
Potresti provare a lanciare lo script e poi dirci quanto rallenta.
Secondo me, na montagna!!!!!
130.000 regole da controllare, non sono proprio pochine :(


Bravo!!! se glielo lancio qui sul server e mi si pianta mi tagliano le @@

LOL :D :D :D :D

#!/bin/sh
20-10-2004, 16:48
ma perchè devi fare una roba simile?

Banus
20-10-2004, 17:06
Non puoi usare le network mask?
Con iptables sono ancora alle prime armi ma ho trovato qui (http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-6.html) che è possibile.
Esempio:

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 \
-j SNAT --to 1.2.3.0/24

bort_83
20-10-2004, 17:21
tnx ma purtroppo nn ci ho capito molto.. la parte a cui tu fai riferimento è questa ?: Multiple Mappings, Overlap and Clashes


se qualcuno ha possibilità di provare fatemi sapere... io proverò non appena ho una macchina disponibile... o altrimenti sta sera a casa :)

tnx_

Banus
20-10-2004, 17:56
Sì è quella.
Ho notato che anche l'help di iptables specifica (address[/mask]) la possibilità di usare network mask.
La tua regola dovrebbe diventare:

iptables -t nat -A POSTROUTING -i eth1 -s 192.168.0.0/16 -j SNAT --to 172.16.0.0/16
iptables -t nat -A PREROUTING -d 172.16.0.0/16 -j DNAT --to 192.168.0.0/16

Ho guardato la guida di iptables (man iptables) e ho visto che --to-source è --to-destination accettano solo singoli indirizzi IP. Con -to credo che funzioni ma non dovrebbe cambiare l'IP di sorgente (destinazione) del pacchetto come un vero NAT dovrebbe fare.

bort_83
21-10-2004, 09:11
ho provato a inserire la regola tipo :

iptables -t nat -A POSTROUTING -i eth1 -s 192.168.0.0/16 -j SNAT --to 172.16.0.0/16

ma pare che a iptables nn piaccia il -j SNAT --to 172.16.0.0/16

in quanto l'indicazione della subnetmask nn gli va bene..

ora volevo creare un "ambiente di test" ( :sofico: )

e provare come scritto su NAT HOWTO questa regola :




iptables -t nat -A POSTROUTING -i eth1 -s 192.168.0.0/24 -j SNAT --to 172.16.0.0-172.16.0.254

bort_83
21-10-2004, 11:02
http://www.valtellinux.it/howto/netfilter-nat/NAT-HOWTO-6.html#ss6.3


:( mi sa che nn fa quello che volevo io..

Banus
21-10-2004, 12:03
Prova a guardare questo:
http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.html

è la versione inglese ma è sul sito ufficiale di iptables, non saprei dove cercare di meglio.
In particolare guarda http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO-9.html.

Se ho capito bene vuoi mappare un set di indirizzi in una rete locale via NAT, invece di mapparli direttamente.
Se non sei sicuro di aver capito bene come funziona il NAT (è abbastanza incasinato) prova qui:
http://www.netfilter.org/documentation/HOWTO/it/netfilter-hacking-HOWTO-4.html#ss4.3

Non conosco iptables abbastanza bene da dirti quale potrebbe essere la soluzione. La regola che ho postato era una modifica ingenua della tua :p