View Full Version : [NAT] non riesco a fare il natting con indirizzo ip dinamico
kurtcobain85na
13-10-2011, 13:46
salve ragazzi, ho una rete costituita da un pc e da una macchina linux ubuntu, la macchina linux(192.168.100.1) fa da dhcp server e assegna gli indirizzi ip in maniera dinamica, ho controllato che il dhcp funzioni bene e effettivamente la macchina windows ha il suo ip.
Quando dalla macchina windows faccio il ping a www.google.it, ma il time out scade, ciò succede perchè sulla macchina linux non è abilitato il nat, ho seguito una guida ed ho inserito questi comandi:
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.100.5
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.0.1-10.0.0.14
questi comandi vanno bene se assegno l'indirizzo ip statico alla macchina windows, ovvero, se l'ip è statico la macchina windows riesce a navigare su internet, se assegno l'ip in maniera dinamica ciò non succede più.
Cosa devo modificare per far si che tutto funzioni assegnando l'ip dinamicamente?
grazie mille :)
creare una regola di rete basata su un IP fisso per fornire servizi ad un client che si collega in DHCP è una operazione totalmente inutile per logica, forse solo deleteria per la sicurezza della rete stessa, a questo punto faresti prima ad usare l'Upnp
kurtcobain85na
13-10-2011, 14:43
Appunto, io vorrei assegnare l'ip dinamico e fare il natting...come posso fare? : )
eclissi83
13-10-2011, 16:01
e' sufficiente abilitare il forwarding:
echo "1" > /proc/sys/net/ipv4/ip_forward
e fare il masquerade con iptables (ipotizzando che la eth0 sia l'interfaccia verso internet):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
e' consigliabile assegnare i server dns del provider attraverso il DHCP, in modo da non dover cambiare i dns manualmente.
ciao
kurtcobain85na
13-10-2011, 16:34
ho abilitato l'ip forward ma non cambia nulla, però ho scoperto una cosa.
la rete è fatta cosi (caso ip statico)
Client (192.168.100.2)------(192.168.100.1 eth0)firewall linux(192.168.100.34 eth1)-------gateway linux(192.168.100.35)
la rete tra il client e il firewall è una subnet diversa da quella tra il firewll e il gw.
ora ho abilitato l'ip forward sul gw e sul firewall, il ping con il firewall funziona, ora (sto parlando della situazioen ip statico) quando al client windows assegno l'ip statico e assegno come gw predefinito (192.168.100.1 oppure 192.168.100.34) va tutto ok, ovvero il ping funziona.
quando assegno l'ip dinamicamente succede che l'indirizzo ip al client viene assegnato dal firewall ma nelle impostazione (ipconfig) ho visto il gw predefinito è il 192.168.100.35, quindi il gw della subnet2.... come posso impostare l'ip dinamico ma il gw predefinito il firewall(192.168.100.1-192.168.100.34)?
eclissi83
13-10-2011, 17:30
ecco scoperto l'arcano: la rete nattata deve essere in una subnet diversa.
sulla macchina linux avrai due schede di rete con ip: 192.168.100.34 (eth verso internet) e 10.1.1.1 (eth verso lan)
la macchina windows dovra avere ip 10.1.1.x (da 2 in poi), il cui gateway e' 10.1.1.1 .
ovviamente puoi farlo fare anche con il dhcp
ciao
kurtcobain85na
14-10-2011, 08:07
eclisse grazie per la risposta ma in realtà la rete è già come dici tu
ho due subnet diverse
una 192.168.100.0/32
e un'altra 192.168.100.32/32
ora, il firewall linux ha come gateway per la subnet 2 il 192.168.100.35, la macchina windows quando utilizzo il dhcp ha come gateway il 192.168.100.35 e ciò è sbagliato, perchè per uscire dalla subnet1 deve avere come gateway il firewall linux, ora come faccio a dire alla macchina windows che il suo ip deve essere assegnato dal dhcp ma il gateway deve essere il firewall linux?
eclissi83
14-10-2011, 08:19
eclisse grazie per la risposta ma in realtà la rete è già come dici tu
ho due subnet diverse
una 192.168.100.0/32
e un'altra 192.168.100.32/32
ma che senso ha fare le reti punto-punto?
e' MOLTO piu' semplice fare come ti dico io. poi ognuno fa come gli pare :)
ora, il firewall linux ha come gateway per la subnet 2 il 192.168.100.35, la macchina windows quando utilizzo il dhcp ha come gateway il 192.168.100.35 e ciò è sbagliato, perchè per uscire dalla subnet1 deve avere come gateway il firewall linux, ora come faccio a dire alla macchina windows che il suo ip deve essere assegnato dal dhcp ma il gateway deve essere il firewall linux?
dovresti poter configurare il server dhcp in modo appropriato...
kurtcobain85na
14-10-2011, 08:26
non ha senso è vero, ma è per scopi di formazione, volevo capire un po come fare tutto qui :)
kurtcobain85na
14-10-2011, 08:49
Problema risolto, ho fatto come ha detto eclissi, ho modificato il file dhcpd.conf e ho impostato l'ip del gateway quello del firewall linux. Grazie mille :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.