Newsgroup: it.comp.os.linux.debian
Titolo: Forwarding interessante

Salve a tutti.
Ho realizzato un pc (chiamato PC1) che mi effettua la connessione 
Internet con tutta la mia LAN. Ci ho installato debian netinst.
Ha 2 schede di rete: una ethernet (eth0) ed una wireless(eth1).
La eth1 (192.168.1.100) è attaccata tramite un access point (AP1) ad 
Internet , mentre la eth0 (192.168.0.1) è attaccata ad un altro access 
point (AP2).
L'obiettivo è quello che PC1 condivida la connesione Internet presa su 
eth1 con eth0, cioè con l'access point AP2 in maniera tale che qualunque 
  altro pc possa accedere ad Internet attraverso AP2 -> PC1 -> AP1.
A questo proposito su PC1 ho digitato:
echo "1" > /proc/net/sys/ipv4/ip_forward   (per abilitare il forwarding)
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Tutto ok tranne un fatto:
se faccio un ping da un pc connesso ad AP2 all'AP1 connesso ad Internet, 
esso mi risponde;
ma se faccio un ping a 
www.google.it
 no.
Allora ho installato il server dns bind9 su PC1 ed ora tutto ok.
Ma perchè ?
Non c'è qualche altro modo senza installare il server DNS?
Per es. una regola del firewall iptables su PC1, che ridirezioni 
qualsiasi indirizzo proveniente da eth0 su eth1 ???
Spero di nn essere stato troppo lungo, ma credo sia uno scenario 
interessante e comodo in tutti quei casi in cui vogliamo ad es. portarci 
la connessione in un garage o casa della propria ragazza che abita a fianco!
QUalche consiglio ?

[MEGA CUT]
da quello che scrivi capisco che (smentitemi se sbaglio):
1 - vuoi fare una cosa molto delicata (roba da shorewall, in prima
istanza) 
2 - di reti, di pc e (soprattutto) di linux , ne sai meno di poco.
consiglio, conosci prima l'ambiente con il quale lavori, poi impara i
protocolli dei quali vuoi fare un utilizzo avanzato.


Ho preso visione di shorewall già prima di utilizzare gli strumenti che 
ho menzionato, ma in prima battuta non mi sembrava affatto più semplice.
1 - non vedo la delicatezza delle cose che ho descritto. Le cose ho 
funzionano oppure no. Nel caso in cui non funzionino non si è compreso 
bene il problema.
2 - lo so, ma con quel poco che conosco, sono cmq riuscito a far 
funzionare le cose che volevo e questo sottolinea il punto 1, cioè che 
nn è poi una cosa così delicata (c'è di ben peggio credo).
Cmq, ti ringrazio ugualmente anche se sulla domanda che ho posto non ho 
ricevuto affato risposta. (ero interessato al funzionamento del server 
DNS bind9 e se può essere rimpiazzato con qualche regola di firewall 
iptables)
Altri consigli sono sempre ben accetti.

 iptables)
Come può un server DNS essere rimpiazzato da un firewall?
Sono cose completamente diverse...
Penso proprio che RedWiz abbia ragione
-- 
"Le opinioni dei fanatici prescindono dai fatti"
python -c "print 'bG9ybWF5bmFAZ21haWwuY29t'.decode('base64')"
Linux Registered User: 461615
http://lmainardi.blogspot.com

IloAll wrote:

i client cosa hanno impostato come DNS?
se facevi ping su 209.85.135.147 e non su 
www.google.it
 funzionava?

RedWiz wrote:

fare un semplice gateway non mi sembra un utilizzo avanzato

 Altri consigli sono sempre ben accetti.
Studiare i protocolli di rete.
-- 
http://img169.imageshack.us/img169/1054/medioevowb0.jpg

 
Ok, sono d'accordo, però credo di essermi spiegato male.
Non intendevo sostituire il funzionamento di un server DNS con alcune 
regole di un firewall (impossibile).
Siccome in PC1 (senza server DNS) se eseguo "ping 
www.google.it
" ricevo 
risposta e siccome PC1 fa da ponte verso Internet, intendevo dire che 
tutti i pacchetti che riceve sul device eth0(LAN) li "forwardi" verso 
eth1(Internet); comprese le richieste DNS ! Quindi la regola che 
intendevo inserire nel firewall era quella di "forwardare" le richieste 
DNS verso l'esterno.
In tal modo un pc sulla LAN che esegue "ping 
www.google.it
" invierà 
prima una richiesta DNS che attraverso PC1 raggiungerà il DNS del 
provider. Una volta ottenuto l'IP esegue il comando.
Spero di essere stato un pò più chiaro.

 provider. Una volta ottenuto l'IP esegue il comando.
La regola che hai postato fa gia` questa operazione, pertanto il problema 
e` semplicemente da un'altra parte.
Probabilmente in PC2 non hai impostato un server DNS valido.
Pero` una cosa ho notato che non va bene:la regola corretta dovrebbe 
essere
iptables -t nat -A POSTROUTING -i eth0 -j MASQUERADE
In modo da mascherare tutto quello che arriva da eth0, non quello che 
esce su eth1. Ha piu` senso, visto che tu vuoi mascherare la LAN, ma non 
il PC stesso, per esempio.
Bye.


Non funziona: non si può applicare l'opzione -i alla catena POSTROUTING!
Inoltre ad intuizione il maschermento è giusto farlo su un traffico che 
è in uscita altrimenti perchè mascherare del traffico che mi arriva?