# Aggiornamento automatico Gateway

## Pancu

Salve ragazzi,

ho questo problema.

Ho il server Gentoo collegato ad un modem Ethernet.

Il problema è che ogni volta che il server si collega via DHCP al modem, non aggiorna il Gateway e se voglio collegarmi ad internet tramite il server devo aggiornare manualmente il Gateway.

Qualcuno sà indicarmi qualche metodo o programmino per farlo automaticamente??

Grazie 

Andrea

----------

## Kernel78

 *Pancu wrote:*   

> Salve ragazzi,
> 
> ho questo problema.
> 
> Ho il server Gentoo collegato ad un modem Ethernet.
> ...

 

 :Shocked: 

teoricamente il dhcp lo fa in automatico ...

il modem fa da server dhcp ? è configurato correttamente ?

tu dici che il server è collegato al modem e quindi mi viene da pensare che sia sempre collegato ma poi specifichi che hai il problema quando il server si collega al modem ... sei tu che stacchi e riattacchi il cavo ? puoi essere più chiaro ?

Grazie.

----------

## Pancu

Allora partiamo dal principio.

Ho una connessione Alice, quindi con Ip dinamico.

Teoricamente l'aggiornamento del Gateway dovrebbe farlo il modem Ethernet che fà anche da server DHCP, ma invece su server Linux questo non avviene (non chiedetemi il xchè  :Sad:  ) ed internet non funziona finchè non viene aggiornato il Gw manualmente. 

Il server è collegato sempre al modem, ma se capita che per qualche motivo il modem perda la connessione, e si riconnette da solo, l'indirizzo IP pubblico di rete (che è dinamico) cambia, e a sua volta, non avendo aggiornato tramite DHCP anche il Gateway sul server, Internet non và più, a meno che non reimposti io manualmente il nuovo indirizzo IP del gateway.

Spero di essermi spiegato.

----------

## Kernel78

 *Pancu wrote:*   

> Allora partiamo dal principio.
> 
> Ho una connessione Alice, quindi con Ip dinamico.
> 
> Teoricamente l'aggiornamento del Gateway dovrebbe farlo il modem Ethernet che fà anche da server DHCP, ma invece su server Linux questo non avviene (non chiedetemi il xchè  ) ed internet non funziona finchè non viene aggiornato il Gw manualmente. 
> ...

 

Mi spiace ma non sono ancora sicuro di aver capito il tuo problema e soprattutto la tua situazione ...

il modem funge anche da router ?

nel caso in cui il tuo ip pubblico cambi cambia anche l'ip del gateway ???

suppongo che sia il modem a fare da gateway ma non riesco a capire come mai dovrebbe cambiare il suo indirizzo ip interno, potresti provare a descrivere con più particolari la tua situazione (dal punto di vista hw e di funzionalità di rete) ?

Grazie.

----------

## devilheart

 *Pancu wrote:*   

> Allora partiamo dal principio.
> 
> Ho una connessione Alice, quindi con Ip dinamico.
> 
> Teoricamente l'aggiornamento del Gateway dovrebbe farlo il modem Ethernet che fà anche da server DHCP, ma invece su server Linux questo non avviene (non chiedetemi il xchè  ) ed internet non funziona finchè non viene aggiornato il Gw manualmente. 
> ...

 una configurazione di rete sana prevede che il cambiamento dell'ip pubblico non implichi il cambiamento di qualcosa all'interno della rete privata interna

----------

## djinnZ

 *devilheart wrote:*   

>  *Pancu wrote:*   connessione Alice configurazione di rete sana 

 non è un controsenso?   :Mr. Green: 

----------

## Apetrini

Dalla tua descrizione sembra che il modem è configurato come ponte layer 2. (precisamente half bridge).

Non è una configurazione malsana, anzi, è usata molto spesso. In pratica il modem non fa da gateway, bensi da ponte; il risultato pratico è che la tua macchina riceve direttamente l'ip publico dal dhcp (il modem fa appunto da ponte e da alla tua macchina l'ip publico che riceverebbe lui).

Il problema è come dici tu, quando il modem perde la sincronizzazione/connessione bisogna richiedere all'isp il nuovo indirizzo ip, e siccome il modem fa solo da ponte( tecnicamente si dice che il modem è in half bridge se oltre che da ponte possiede un proprio indirizzo ip (privato) col quale è raggiungibile, full bridge se completamente invisibile) è la tua macchina che deve rinnovare la richiesta dhcp.

Ad essere sincero non saprei dirti come si dovrebbe gestire questo problema, anche perche i modem bridge con cui ho avuto a che fare erano su reti hdsl dove difficilmente saltava la connessione. La soluzione piu sporca che mi viene in mete è quella con cron.

In alternativa puoi configurare il tuo modem come gateway al posto di bridge, cosi si dovrebbe arrangiare lui. Lo svantaggio evidente è che non hai una macchina con direttamente un ip publico ma sei dietro il modem, quindi devi forwardare alcune porte se vuoi esporre certi servizi.

P.s. Questo è quello che ho capito io dalle tue informazioni, ma puo essere che ho frainteso il problema.

Edit: Ah gia, ovviamente puoi anche provare a configurare il dhclient(o simili), provando varie impostazione di (cito il man di dhclient.conf):

```

...

        renew date;

        rebind date;

        expire date;

       The renew statement defines the time at which the dhcp client should begin trying to contact its server

       to renew a lease that it is using.   The rebind statement defines the time at  which  the  dhcp  client

       should  begin  to  try  to  contact any dhcp server in order to renew its lease.   The expire statement

       defines the time at which the dhcp client must stop using a lease if it has not been able to contact  a

       server in order to renew it.

       These  declarations  are automatically set in leases acquired by the DHCP client, but must also be con‐

       figured in predefined leases - a predefined lease whose expiry time has passed will not be used by  the

       DHCP client.

       Dates are specified as follows:

        <weekday> <year>/<month>/<day> <hour>:<minute>:<second>

...

```

Spero ti sia d'aiuto.

----------

## djinnZ

 *Apetrini wrote:*   

> Non è una configurazione malsana, anzi, è usata molto spesso

 in ambito domestico? come impostazione predefinita? ma fammi il piacere...  :Laughing: 

Per chi sa quel che fa sarà anche un'opzione comodissima (è da un pò che ci penso) ma mettere un utente ignaro in queste condizioni mi pare una grande cavolata, all'italiana.

Mi sa che la tua sfera di cristallo funziona meglio della mia in ogni caso.

----------

## Apetrini

 *djinnZ wrote:*   

>  *Apetrini wrote:*   Non è una configurazione malsana, anzi, è usata molto spesso in ambito domestico? come impostazione predefinita? ma fammi il piacere... 
> 
> 

 

Magari è come dici tu, però pensa a un po' di tempo fa quando le connessioni erano 56k/isdn etc.. i modem erano su usb, seriale o direttamente dentro il pc via pci e (quasi)tutti davano questa situazione: l'utene si ritrovava direttamente con l'ip publico.

Ora non so come sia configurata(attualmente) la maggior parte dei modem ethernet di default, ma la situazione in cui si ha l'ip publico direttamente dovrebbe essere una situazione nota da tempo agli utonti, visto che sono anni che c'è.

----------

## Pancu

Grazie delle risposte ragazzi.

La mia configurazione è esattamente come spiegato da Apetrini.

Il mio Modem fà da half bridge e il mio server ottiene direttamente l'ip pubblico.

Ho creato due script in Perl per aggiornare ogni minuto l'ip e il gateway della mia eth0 sul server.

```
#!/usr/bin/perl

use strict;

my $IP;

my $GW;

my $IF = $ARGV[0];

my $Data;

exit(1) if ((!($ARGV[0])) || (!($ARGV[1])));

if ($ARGV[1] eq 'ip')

{

        $Data = `/sbin/ifconfig $IF`;

        $Data =~ m/inet addr:[0-9\.]+/i;

        my $IP = $&;

        $IP =~ s/inet addr://ig;

        print("$IP");

} elsif ($ARGV[1] eq 'gw')

{

   $Data = `/sbin/ip route | grep $IF`;

   $Data =~ m/default.*via.*/ig;

   $GW = $&;

   $GW =~ s/default via\s*//ig;

   $GW =~ s/\s+.*//ig;

   print("$GW");

}
```

Questo sopra serve per capire quale IP e GW ha la mia interfaccia ethernet sul server (eth0).

```

#!/usr/bin/perl

$IP = `/root/refreshGW.pl eth0 ip`;

$GW = `/root/refreshGW.pl eth0 gw`;

if ($IP eq $GW){

        print('ok');

}else{

        print `$IP`;

        print `$GW`;

        `/sbin/route del default gw $GW`;

        `/sbin/route add default gw $IP`;

}

```

Questo sopra invece, controlla ogni minuto (tramite crontab) che l'IP di eth0 e il relativo GW siano uguali. Se non coincidono, cancello il vecchio GW e aggiungo il nuovo.

Non deritemi, non ho mai programmato in Perl e avevo fretta di risolvere il problema.   :Confused: 

Che ne pensate??

Avete suggerimenti??

Grazie.

----------

## Pancu

Ragazzi qualche suggerimento??

Il mio script non sembra funzionare, ogni tanto la connessione internet si blocca e non riparte più...  :Sad: 

Il problema deriva dal fatto che non viene cancellato correttamente il vecchio gw impostato...

Potete gentilmente aiutarmi??

----------

## Kernel78

meno elegantemente potresti ogni minuto rimuovere il gw presente e aggiornarlo senza fare alcun controllo così almeno vedi se lo script funziona e poi fai sempre in tempo ad aggiungere una condizione  :Wink: 

----------

## djinnZ

ho dato ancyhe io uno sguardo in giro e sembra che il problema del gateway sia una croce comune a tutti gli os. Ragione per la quale è preferito il nat od il full bridge in genere quando la connessione è instabile. Anche se mi pare strano che ti cada la linea tanto spesso, hai dei margini di attenuazione folli od il tuo impianto telefonico è strampalato per caso?

La soluzione comunemente adottata è ridurre il lease e contemporaneamente forzare l'aggiornamento del gw. Non ho il tempo di trovarlo ma c'è uno script apposito per risolvere il problema.

----------

## Pancu

Niente da fare non riesco a trovare un benedetto script che possa aiutarmi...

Il modem funziona solo da halfBridge....

Sono fregato  :Sad:   :Sad: 

----------

## devilheart

vuoi una soluzione veramente elegante? o elimini la modalità half bridge o prendi un router adsl (soluzione migliore). se non hai esigenze di wireless te la cavi anche con 50€

 *djinnZ wrote:*   

>  *devilheart wrote:*    *Pancu wrote:*   connessione Alice configurazione di rete sana  non è un controsenso?  

 solo se hai altri operatori in ULL disponibili  :Mr. Green: 

----------

## Pancu

 *devilheart wrote:*   

> vuoi una soluzione veramente elegante? o elimini la modalità half bridge o prendi un router adsl (soluzione migliore). se non hai esigenze di wireless te la cavi anche con 50€
> 
>  *djinnZ wrote:*    *devilheart wrote:*    *Pancu wrote:*   connessione Alice configurazione di rete sana  non è un controsenso?   solo se hai altri operatori in ULL disponibili 

 

A beh, grazie...a questa soluzione ci arrivava chiunque...  :Shocked:   :Shocked: 

----------

