Newsgroup: it.comp.os.linux.sys
Titolo: Lentezza "inspiegabile" con iptables in port forwarding

Ciao, sto mettendo su un ambiente LAMP che avra' alcuni webserver (su 
rete privata 192.168) e un firewall/loadbalancer/reverse proxy ancora 
da definire. Come sistemi operativi sto usando Centos 6.
Qualche settimana fa ho installato l'Astaro Security Gateway essential 
edition che sembra molto molto carino ed è free anche per uso business.
E' un prodotto commerciale ma è comunque basato su linux/iptables.
Vado a provare a esporre un web server sull'IP pubblico 
(nell'interfaccia di ASG si chiama DNAT): provo (da un proxy/ip 
pubblico diverso quindi nessun "loop" di mezzo) e funziona pero'... una 
semplice pagina con phpinfo() impiega 10 minuti a venire giu' (e il web 
server funziona regolarmente).
Penso sia "colpa" di ASG e allora mi installo una macchina con Centos6, 
iptables etc etc, configuro (con l'aiuto dell'interfaccia grafica) il 
Port Forwarding e... il risultato è identico a prima.
Allora riprovo lanciando tcpdump sul "mio" firewall fw01 e mi dice una 
cosa interessante ma che non so interpretare bene:
"fw01.mon.local > web01.mon.local: ICMP fw01.mon.local unreachable - 
need to frag (mtu 1500), length 556"
dove fw01 è la macchina con due NIC e iptables e web01 quella con 
apache.
Sembra quindi un problema a layer2. Le MTU su tutte le nic non le ho 
toccate e ifconfig me le da tutte a 1500.
Dove e' l'inghippo? :-(
Grazie in anticipo
-- 
Tinto

Dove e' l'inghippo? :-(
L'unica spiegazione che mi viene in mente è che web01 invii un pacchetto
troppo largo a un host esterno, e fw01 inietti un bit di dont-frag (o e'
possibile che gia' ci sia?), fw01 sia collegato in uplink con MTU 576 al
successivo hop, per cui il pacchetto n'arimbarza, col payload che poteva
passare - 556 bytes, piu' i 20 di intestazione.
La cosa del bit DF non me la spiego, ma: hai visto mai che sia lo script
di Astaro che confligge con il router ADSL?
Una soluzione rapida per vedere se è il caso, è di mettere l'interfaccia
esterna di fw01 con MTU 576:
	ifconfig eth12345 mtu 576
Altre possibilita' mica male sono di vedere che fa il router, e chi va a
mettere quel bit di dont-fragment.
Leonardo già briao di quest'ora
-- 
Surstangas via akcipitr', la ceval' fojnumas nur:
Jen vigla damo en brakum', kaj vi pensas pri forkur'?
Do li turnis sin, kaj turnis sin, kaj ekdormis sen singard';
Kaj lin apudis je l' vekigx, soldatoj kaj Barnard'.

 mettere quel bit di dont-fragment.
prima di tutto ti ringrazio :)
ho provato sul mio firewall fatto con un linux+iptables a forzare la 
MTU dell'interfaccia pubblica a 550 e cosi' funziona: la pagina viene 
giu' abbastanza velocemente e non vedo piu' quei messaggi "cattivi" con 
tcpdump.
Ho provato a fare la stessa cosa sul firewall Astaro ma non ha sortito 
gli stessi effetti.
Adesso faccio un po' di prove relative all'isp: ho un router (wind) che 
serve due classi non contigue e quindi impersona 2 IP differenti: 
finora ho lavorato sulla classe che non avevamo mai usato. Provero' a 
mettere il fw01 sulla classe collaudata e/o su una classe di un altro 
isp.
-- 
Tinto

 sulla classe collaudata.
stesso risultato :(
-- 
Tinto

MTU dell'interfaccia pubblica a 550 e cosi' funziona
Non ho capito com'e' la geometria della rete. La rete che NON funziona
è questa?
	WEB01 --- FW01 --- ROUTER/MODEM ---> INTERNET
...o no?
Leonardo


 	WEB01 --- FW01 --- ROUTER/MODEM ---> INTERNET
si' esatto,
web01(eth1 192.168.21.61) --- (eth2)FW01(eth03) --- ROUTER --- Internet
se puo' essere utile posto le regole
a proposito, avrei attivato il masquerading ma da web01 non riesco a 
"surfare".
(ps: grazie ;)
[root@fw01 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state 
RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
REJECT     all  --  anywhere             anywhere            
reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state 
RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             isweb01.monrif.local state NEW 
tcp dpt:http
REJECT     all  --  anywhere             anywhere            
reject-with icmp-host-prohibited
[root@isfwl01 ~]# iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth2 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT
-A FORWARD -o eth2 -j ACCEPT
-A FORWARD -d 
192.168.21.61/32
 -i eth3 -p tcp -m state --state NEW -m 
tcp --dport 80 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-- 
Tinto

...
risolto: era un problema del tipo di scheda di rete con il driver 
usato... nelle macchine che fanno da fw da dei problemi.
Grazie 1000 ancora ;)
-- 
Tinto