#linux domanda da ignorante. Come faccio a far sì che tutte le richieste che partono dalla mia macchina verso l'ip X vengano invece passate sull'ip Y? Il primo che risponde vince una bambolina :P
DNAT (Nat sulla destinazione). Sul come farlo, dipende da cosa c'è tra la tua macchina e la macchina X e se sono sulla stessa rete (non fa differenza se la macchina X è spenta).
- spider
e con iptables o route? Non si può fare nulla? :P
- Napolux
from IM
appunto, qual è il comando? :P /me ignorante :P
- Napolux
from IM
Regoletta di iptables. Dammi il tempo di tornare a casa, intanto inizia a gonfiare la bambolina :)
- Matteo
from fftogo
uffa voglio la bambolina di Naplux! ah no scusa la ho già e mi diverto con gli spilloni !
- Daniele_MD
comunque, iptables o route non sono intercambiabili. Mi spiego: se dalla tua macchina apri connessioni alla macchina X, che in realtà vuoi vengano aperte con la macchina Y in modo trasparente, non puoi affidarti a route: l'indirizzo destinazione della connessione resterebbe X ma i pacchetti verrebbero inviati a Y, con il risultato che quest'ultima probabilmente li reindirizza con un ICMP redirect di nuovo a macchina X. Nel tuo caso, se ho capito, l'unico modo è con un DNAT, che si fa con iptables anche direttamente sulla tua macchina.
- spider
ok, quindi come lo faccio con iptables?
- Napolux
from IM
metti che hai un applicazione web sulla tua macchina che si collega a un db sulla macchina X. Per qualsiasi motivo sposti il db su macchina Y e spegni macchina X, ma non vuoi modificare l'applicazione web. Sì, ti serve Iptables ;-)
- spider
uff, sono tornato a casa troppo tardi, niente bambolina :-(
- Matteo
In realtà non ho ancora risolto... A parte leggermi decine di post su forum dove la risposta era praticamente #RTFM non ho cavato un ragno dal buco. E non ho tempo di leggermi il fottuto manuale ;)
- Napolux
allora, primo scenario: N(apolux), X e Y sono sulla stessa sottorete e tu vuoi che ogni pacchetto in uscita da N verso X vada invece verso Y. Qui entra in gioco una regoletta di iptables scritta da Spider, ma al posto di PREROUTING (pacchetti in arrivo che l'host locale girerà da qualche parte) va usato OUTPUT (pacchetti in uscita generati dall'host locale).
- Matteo
Se invece Y è un gateway sulla tua sottorete e vuoi che quel gateway venga usato al posto di quello di default per raggiungere X (che sta all'esterno), bisogna impostare un percorso statico: route add -host X gw Y
- Matteo
In entrambi gli scenari, le soluzioni non sono salvate (al prossimo riavvio dovrai rifare tutto). Comodo per fare prove senza far danni, che non si sa mai nella vita :)
- Matteo
(devi essere root, o usare sudo con un utente abilitato, sia per impostare regole di iptables che percorsi di routing)
- Matteo
la sintassi esatta per IPTABLES (appena provata su Ubuntu 9.10): iptables -t nat -A OUTPUT --destination INDIRIZZOX -j DNAT --to-destination INDIRIZZOY
- Matteo
E per eliminare la regola in caso di problemi?
- Napolux
iptables -t nat -F (così le cancelli tutte)
- Fabrizio
(reboot e torni alla situazione "iniziale")
- Matteo