Newsgroup: it.comp.os.linux.sys
Titolo: routing delle connessioni entranti con due ip su reti diverse

Salve,
sono ormai 5 ore che ci sbatto la testa e non ne vengo fuori, mi tocca
chiedere aiuto. :)
Sto configurando una macchina per avere due IP. Uno e` pubblico, diciamo
1.2.3.4, l'altro e` privato, 192.168.1.2.
Ora, l'IP pubblico e` su una dedicata, ha il suo router (1.2.3.1, diciamo) e
funziona.
Ho messo un alias sulla scheda di rete per l'ip privato.
Ho poi una adsl con router, che ho configurato per fare NAT della porta 25
direttamente a quel computer.
Il NAT funziona senza dubbio, il mio problema e` la configurazione della
tabella di routing. Ora ho
eth0          1.2.3.4
eth0:1        192.168.1.2
routing:
192.168.1.0	0.0.0.0		U		eth0
1.2.3.0		0.0.0.0		U		eth0
0.0.0.0		1.2.3.1		UG		eth0
e cosi` funzionano tutte le connessioni dalla dedicata e dalla rete interna,
ma NON quelle che vengono forwardate dall'ADSL.
Se aggiungo un default gw, mi trovo:
192.168.1.0	0.0.0.0		U		eth0
1.2.3.0		0.0.0.0		U		eth0
0.0.0.0		192.168.1.1	UG		eth0
0.0.0.0		1.2.3.1		UG		eth0
E funzionano SOLO le connessioni in arrivo dall'ADSL, cosiccome se tolgo il
default gw da 1.2.3.1
Io voglio che funzionino contemporaneamente. Come faccio?
Grazie.

  Io voglio che funzionino contemporaneamente. Come faccio?
Per far funzionare il DNAT, le risposte del server devono essere routate
attraverso la macchina che fa il NATting.
Nel tuo caso non ho capito se la linea dedicata punta verso internet (e
quindi puo' raggiungere anche il client SMTP senza passare per
192.168.1.1) o solo ad alcune determinate reti private. 
Nel secondo caso, basta inserire il router 1.2.3.1 come gateway per
quelle reti, e 192.168.1.1 come default gw; Nel primo caso la situazione
e` piu` complessa, e l'unica cosa che mi viene in mente e` di usare
iptables per mettere un mark sui pacchetti in uscita dalla 25, e poi
utilizzare iproute2 per instradarli attraverso 192.168.1.1.
-- 
 ____(_)__ ____   ___ _(_)__  _______/ /__ ____  ___   
/ __/ / _ `/ _ \_/ _ `/ / _ \/ __/ _  / _ `/ _ \/ _ \_ 
\__/_/\_,_/\___( )_, /_/\___/_/  \_,_/\_,_/_//_/\___(_)
               |/___/       ( address rot13 encoded. )

 per instradarli attraverso 192.168.1.1.
Ho dato un'occhiata ed effettivamente dovrebbe fare quello che serve a me, ma
ho un piccolo problema: su quella macchina c'e` Debian Potato e kernel 2.2.
Non mi sono ancora fidato a mettere woody o kernel 2.4 perche` e` praticamente
il server piu` importante in azienda.
C'e` una soluzione simile con ipchains?
Ho guardato il manuale, ma alla voce "mark" dice che dovrebbe essere usato
solo da kernel-hacker. La versione di iproute disponibile in debian, inoltre,
e` la 991023. Tra la documqntazione (incomprensibile...) ho trovato dei
riferimenti a iproute 2, quindi forse e` incluso.
Ma il mio dubbio e`: il mark di ipchains e` lo stesso di iptables?
Grazie ancora. Bye.

  dubbio e`: il mark di ipchains e` lo stesso di iptables?
Purtroppo non lo so, anche se immagino che sia uguale. Per la
documentazione puoi guardare il "Linux Advanced Routing & Traffic
Control HOWTO" a:
 
http://www.tldp.org/HOWTO/Adv-Routing-HOWTO.html
Anche se parla solo di iptables. In particolare nel capitolo 11 trovi
un esempio che e` molto simile alla tua situazione, se hai tempo puoi
provare a sostituire ipchains ad iptables e farmi sapere come va ;).
