Newsgroup: it.comp.os.linux.sys
Titolo: Domanda semplice di routing

Ciao a tutti,
ho la necessità di impostare questo routing in questa situazione:
 client di ----- router ----- server di ----- server
 rete locale     gateway      rete interno    esterno
I client, il router e il server stanno sulla stessa classe locale,
mentre il server "esterno" sta su un'altra rete collegato al primo
server: come faccio a rendere raggiungibile il server esterno alla prima
rete locale?
--
Ciao
leandro
Per rispondermi direttamente togli le MANISUDICIE dal mio nome

 rete locale?
Hai due modi:
1) impostare una route-to-host sul client, che gli dica che 
$SERVER_ESTERNO è traggiungibile attraverso $SERVER_INTERNO:
route add -host $SERVER_ESTERNO gw $SERVER_INTERNO
2) impostare una route-to-host analoga sul router/gateway: provvederà 
lui a dirottare i client verso l'altro gateway (il server interno) 
attraverso icmp redirect
Nel primo caso hai necessità di fare la stessa operazione su ogni client 
che deve poter raggiungere il server esterno, nella seconda s'arrangia 
il gateway.
In entrambi i casi, bisogna che
- $SERVER_INTERNO accetti di fare routing tra le interfacce
- $SERVER_ESTERNO abbia una rotta che gli dice che la tua LAN è 
raggiungibile attraverso l'IP con cui lui vede $SERVER_INTERNO
-- 
http://bofhskull.wordpress.com/


Se posso intromettermi, nel caso in cui client e router siano su una rete
es.: 192.168.0.0 e server interno sia su 172.16.0.0 non potendo mettere le
mani su router e senza usare tunnel come potrei fare?
Vorrei dirgli per raggiungere "server esterno" devi passare per "server
interno". In pratica, posso mettere le mani su client e su server interno,
ma non su router.

 mani su router e senza usare tunnel come potrei fare?
Sostanzialmente, non fai...
Al limite (ma *molto* al limite) puoi barbatruccare qualcosa usando NAT: 
aggiungi un IP della 172.16.0.0 a $SERVER_INTERNO, e usi il firewall 
onboard per nattare tutto il traffico diretto a questo IP affinchè venga 
rediretto a $SERVER_ESTERNO.
Ovviamente, a patto che
- tu possa aggiungere l'IP
- i protocolli che userai per la comunicazione con $SERVER_ESTERNO
   digeriscano il NAT senza problemi
- $SERVER_INTERNO abbia gli strumenti che servono allo scopo
- $SERVER_ESTERNO venga impostato con le opportune rotte di ritorno
   (oppure il traffico venga ulteriormente SNATtato, oltre al DNAT già
   applicato)
-- 
http://bofhskull.wordpress.com/

 rediretto a $SERVER_ESTERNO.
Ok per il nat, che è l'unico modo che ho di imbrogliarlo, però il mio
problema è che se dal client tento di chiamare server esterno 80.x.y.z,
router gateway mi fa girare la richiesta per internet (lenta), mentre se mi
indirizzasse il traffico tramite server di rete interno avrei una
connessione più veloce ecc. Router gateway è configurato in modo da inviare
a server di rete interno solo il traffico destinato a 172.160.0.0 e non
quello destinato a 80.x.y.z
Da quello che sta scritto sul manuale di tcp, l'informazione del router da
utilizzare, non è scritta nel pacchetto ip, ma in quello arp (che viaggia
soltanto all'interno del segmento di rete locale), quindi non mi sembra di
vedere soluzione.
- Client tenta di raggiungere 80.x.y.z
- genera il pacchetto ip con destinazione 80.x.y.z
- client vede che è su un'altra sottorete, quindi quando il pacchetto ip
viene incapsulato dentro al pacchetto arp, l'indirizzo mac di destinazione,
sarà quello di router gateway.
- Quando router gateway riceve il pacchetto, vede che l'ip non è il suo,
quindi in base all'indirizzo di destinazione e alla tabella di routing
decide di inoltrarlo sull'interfaccia wan piuttosto che sull'altra
interfaccia locale collegata a server interno.
E' così o mi manca qualche passaggio?

 E' così o mi manca qualche passaggio?
Sostanzialmente è così, ma quell'"ARP" che tiri dentro lo puoi 
sostanzialmente ignorare, dato che non ha alcun ruolo in quanto descrivi 
(e per alcune tipologie di reti non esiste nemmeno).
Dal che si desume che se vuoi reinstradare da IP pubblico (e routato 
attraverso internet) ad IP privato (routato attraverso link più 
performanti) l'unica maniera è che "qualcosa" attraverso cui la 
comunicazione sta passando provveda a cambiare la destinazione dei 
pacchetti.
In pratica, dato che l'unico oggetto attraverso cui la comunicazione 
passa è il tuo gateway, è costui a doverlo fare (tenendo conto poi di 
qualche complicazione come il NAT inverso della sessione di ritorno)...
-- 
http://bofhskull.wordpress.com/