# Mantenere lo stesso hostname su rete locale e non

## topper_harley

Ho un server domestico nella mia rete casalinga al quale accedo spesso dal laptop, sia quando sono a casa, che quando sono fuori.

All'interno della mia rete locale ha come indirizzo ip 192.168.1.5, il nome del server è "fandango". Nell'/etc/hosts del laptop ho questa riga:

```
192.168.1.5             fandango
```

Lo stesso server è anche registrato ad un servizio tipo dyndns, che gli assegna un indirizzo web statico, tipo fandango.foo.bar, indirizzo al quale mi connetto quando non sono a casa.

Il problema di questa configurazione è che molti servizi richiedono doppie configurazioni, ad esmpio il client di quassel (una per casa con host fandango ed una per internet con indirizzo fandango.foo.bar), lo stesso vale per ssh (devo usare due indirizzi diversi a seconda di dove mi trovo), ed ovviamente le password nel browser devono essere salvate due volte, come anche i segnalibri...

Per risolvere il problema, e contattare SEMPRE il server utilizzando il nome "fandango" ho creato 2 piccoli script da mettere nelle postup function di /etc/conf.d/net, 

```
 postup() {

        if [[ ${IFACE} == "ppp1" ]] ; then

                /root/scripts/hosts.home

        elif [[ ${IFACE} == "ppp2" ]] ; then

                /root/scripts/hosts.world

        fi

return 0

}

```

Primo script: /root/scripts/hosts.home:

```
#!/bin/bash

MYFILE='/etc/hosts.backup'

OLDHOST=`grep fandango $MYFILE | awk '{ print $1 }'`

NEWHOST=192.168.1.5

sed s/$OLDHOST/$NEWHOST/ $MYFILE > /etc/hosts

```

Secondo script: /root/scripts/hosts.world

```
#!/bin/bash

MYFILE='/etc/hosts.backup'

OLDHOST=`grep fandango $MYFILE | awk '{ print $1 }'`

NEWHOST=`host fandango.foo.bar | gawk '{print $4}'`

sed s/$OLDHOST/$NEWHOST/ $MYFILE > /etc/hosts

```

Oltre a non essere molto elegante questa soluzione ha un grosso problema di fondo: spesso e volentieri la connessione del server cade, oppure il suo ip viene cambiato, e, dopo essermi accorto che qualcosa non va, mi trovo a dover lanciare manualmente lo script hosts.world.

Esiste una soluzione più pulita?

----------

## Peach

per quanto riguarda l'ip che cambia hai provato a vedere questa come soluzione?

```
* net-dns/updatedd

     Available versions:  2.5 2.5-r1 ~2.6

     Homepage:            http://updatedd.philipp-benner.de/

     Description:         Dynamic DNS client with plugins for several dynamic dns services
```

----------

## topper_harley

 *Peach wrote:*   

> per quanto riguarda l'ip che cambia hai provato a vedere questa come soluzione?
> 
> ```
> * net-dns/updatedd
> 
> ...

 

Forse non hai capito bene il mio problema...

Il problema dell'ip dinamico è risolto grazie a dyndns (che fa più o meno lo stesso lavoro di updatedd), infatti in internet ho sempre lo stesso indirizzo (fandango.foo.bar), ma con ip diversi.

Quello che non voglio è dovermi ad esempio loggare via ssh in due modi diversi quando sono a casa e quando sono fuori:

ssh andrea@fandango [a casa]

ssh andrea@fandango.foo.bar [quando sono fuori]

Praticamente quello che vorrei dire al mio file /etc/hosts è questo:

<<Se mi trovo nella mia rete locale, allora quando dico "fandango" voglio dire 192.168.1.5, se invece mi trvo connesso ad internet, quando dico "fandango" voglio dire "fandango.foo.bar">>

----------

## cloc3

per definizione, file /etc/hosts assolve una funzione di dns statico.

secondo me, quindi, non esistono alternative a script del tipo che stai usando.

l'unica possibilità sarebbe eliminare del tutto la voce fandango dai file locali ed implementare un servizio di dns per la rete domestica che attribuisca a fandagno.foo.bar l'ip locale, anziché quello distribuito su internet.

ma anche questo, forse, è superfluo.

(probabilmente) quando lanci una richiesta a un dns per la voce fandango.foo.bar, se questo ti restituisce un indirizzo internet che rimanda ad una macchina interna della rete locale, il sistema dovrebbe essere intelligente abbastanza da trattenere il traffico all'interno di essa. di conseguenza avrai un richiesta in più al dns remoto, ma non un rallentamento o una dispersione del traffico successivo.

 :Shocked:  bu? mi sono spiegato?

----------

## Kernel78

scusa ma se anche quando sei in rete locale punti a fandagno.foo.bar non ti va bene ?

----------

## topper_harley

 *cloc3 wrote:*   

> 
> 
> l'unica possibilità sarebbe eliminare del tutto la voce fandango dai file locali ed implementare un servizio di dns per la rete domestica che attribuisca a fandagno.foo.bar l'ip locale, anziché quello distribuito su internet.
> 
> 

 

Effettivamente mi sembra la soluzione più sensata

 *Kernel78 wrote:*   

> 
> 
> scusa ma se anche quando sei in rete locale punti a fandagno.foo.bar non ti va bene ?
> 
> 

 

Non capisco cosa intendi... Far passare tutte le connessioni per internet?

----------

## Kernel78

 *topper_harley wrote:*   

>  *Kernel78 wrote:*   
> 
> scusa ma se anche quando sei in rete locale punti a fandagno.foo.bar non ti va bene ?
> 
>  
> ...

 

beh, io non sono espertissimo di rete ma ho una situazione simile alla tua (anche io uso dyndns) e se dall'interno della rete locale faccio un traceroute dell'URL che uso con dyndns ottengo immediatamente l'ip esterno della macchina senza passare dal router (che fa da gateway) mentre per tutte le altre richieste verso internet il primo punto da cui passa è sempre il gateway

```
traceroute www.google.it

traceroute to www.google.it (64.233.183.147), 30 hops max, 40 byte packets

 1  10.0.0.1 (10.0.0.1)  0.603 ms  1.065 ms  1.335 ms

```

quindi direi che anche se gli fai puntare direttamente l'url non esci su internet ...

oh, correggetemi se ho detto una cazz@a (la @ si legge "at") ...

----------

## topper_harley

 *Kernel78 wrote:*   

> 
> 
> ```
> traceroute www.google.it
> 
> ...

 

Non so... 

```
andrea@revolver ~ $ traceroute fandango

traceroute to fandango (192.168.1.5), 30 hops max, 40 byte packets

 1  fandango (192.168.1.5)  0.771 ms  1.871 ms  2.210 ms

andrea@revolver ~ $ traceroute fandango.foo.bar

traceroute to fandango.foo.bar (79.7.X.X), 30 hops max, 40 byte packets

 1  * * *

 2  hostX-X-dynamic.7-79-r.retail.telecomitalia.it (79.7.X.X)  88.030 ms  90.140 ms  92.836 ms

```

A me sembra che passi comunque per internet... Ad ogni modo passo la palla a qualche esperto di reti...

----------

## cloc3

 *topper_harley wrote:*   

> 
> 
> Non so... 
> 
> ```
> ...

 

per forza  :Smile: 

kernel78 diceva fandango.foo.bar.

il nome breve fandango non sarà mai riconosciuto su internet!

----------

## topper_harley

 *Kernel78 wrote:*   

> 
> 
> quindi direi che anche se gli fai puntare direttamente l'url non esci su internet ...
> 
> oh, correggetemi se ho detto una cazz@a (la @ si legge "at") ...

 

No... Proprio non sembra essere la stessa cosa:

```
andrea@revolver ~ $ sshfs andrea@fandango:/home/andrea remote/

andrea@revolver ~ $ time echo tmp/fileditesto > remote/tmp/prova1

real   0m0.016s

user   0m0.000s

sys   0m0.000s

andrea@revolver ~ $ fusermount -u remote

andrea@revolver ~ $ sshfs andrea@fandango.foo.bar:/home/andrea remote/

Password: 

andrea@revolver ~ $ time echo tmp/fileditesto > remote/tmp/prova2

real   0m0.438s

user   0m0.000s

sys   0m0.001s

```

La differenza è notevole...

----------

## Peach

dovrebbe essere il tuo router a fare il loopback nella sottorete anziché farlo passare all'esterno

com'è sistemata la tua rete? hai modo di mettere mano alle tabelle di routing del router?

----------

## topper_harley

 *cloc3 wrote:*   

>  *topper_harley wrote:*   
> 
> Non so... 
> 
> ```
> ...

 

Appunto per questo nelle connessioni locali è assurdo usare fandango.foo.bar... Sbaglio??

----------

## topper_harley

 *Peach wrote:*   

> dovrebbe essere il tuo router a fare il loopback nella sottorete anziché farlo passare all'esterno
> 
> com'è sistemata la tua rete? hai modo di mettere mano alle tabelle di routing del router?

 

Purtroppo è un router castrato... Nel senso che non ho accesso telnet ma solo un'interfaccia web che non permette di fare quasi nulla.

Giusto per la cronaca è questo: http://cgi.ebay.com.sg/ws/eBayISAPI.dll?ViewItem&item=200242906574&indexURL=

----------

## Kernel78

Ovviamente non è la stessa cosa ma se puoi accettare quel minimo di rallentamento hai la soluzione più semplice per il tuo problema ...

nessuno script e nessun cambiamento di configurazioni ...

----------

## cloc3

 *topper_harley wrote:*   

> 
> 
> ```
> andrea@revolver ~ $ sshfs andrea@fandango:/home/andrea remote/
> 
> ...

 

un momento.

riprova con /tmp/versione_illustrata_della_bibbia, e vediamo se la differenza rimane notevole.

il problema è verificare se il ritardo sia legato alla richiesta verso il dns o al percorso della transazione.

il vero ritardo, probabilmente, avviene se, da remoto, esegui molti accessi indipendenti, perché, di fatto, ripeti cento volte la stessa richiesta al dns esterno. in questo però, è probabile che la soluzione migliore sia proprio lo scriptino che avevi all'inizio, oppure un server dns locale (/usr/portage/net-dns).

credo che dnsmasq sia tra i più semplici da utilizzare.

----------

## X-Act!

A livello di teoria delle reti la cosa è molto diversa: hai (almeno) un hop in più, una richiesta dns e due nat (c'è da dire che poi l'applicazione di questa teoria varia molto tra un router e un altro...).

In pratica però questa differenza su una rete casalinga è di sicuro quasi inapprezabile: sono daccordo con cloc3 che quei 3 o 4 decimi di secondo (un abisso rispetto a qualche millesimo) resterebbero pressoché gli stessi al variare della dimensione del file che scarichi (o in genere della durata del processo) diventando presto insignificanti...

Certo il discorso cambia notevolmente se il tuo router ha costantemente qualche centinaio di connessione contemporanee!

Il vero problema a mio avviso dell'usare sempre un indirizzo esterno, sta nel fatto che se per qualche motivo cade la tua connessione ad internet non raggiungeresti neanche il tuo server locale perché non potresti ottenerne l'ip.

La cosa che mi sembra più semplice è usare il proxydns che sta sul router, ma non so il tuo ce l'ha e se anche ce l'avesse non credo tu riesca a configurarlo dall'interfaccia web.

In alternativa (visto che hai già un server) mettici su anche un dhcp-dns interno e usi quello (e magari lo usi pure come gateway relegando il tuo ruter a fare solo da modem).

L'ultima possibilità resta lo script che comunque potresti semplificare un po': intanto potresti farne solo uno parametrizzato e poi potresti lasciare solo la riga con l'indirizzo interno e farla commentare o decommentare se sei fuori casa o dentro.

Capisco che la soluzione non sia delle più eleganti per i puristi, però sarebbe funzionale allo scopo!

Infine una mia curiosità: perchè anche all'interno della tua rete hai sempre un'interfaccia ppp e non una eth?

----------

## nikko96

 *topper_harley wrote:*   

>  *Peach wrote:*   per quanto riguarda l'ip che cambia hai provato a vedere questa come soluzione?
> 
> ```
> * net-dns/updatedd
> 
> ...

 

Scusa dai al tuo host lo stesso nome che usa in rete:

```

127.0.0.1 fandango.foo.bar fandango localhost

::1 localhost

192.168.1.5 fandango.foo.bar fandango localhost

```

Così usi sempre quello

----------

## cloc3

 *nikko96 wrote:*   

> 
> 
> Scusa dai al tuo host lo stesso nome che usa in rete:
> 
> 

 

secondo me, lui non ha una macchina fissa, ma portatile.

quello che dici funziona dentro, ma si pianta fuori.

----------

## X-Act!

 *nikko96 wrote:*   

> Scusa dai al tuo host lo stesso nome che usa in rete:
> 
> ```
> 
> 127.0.0.1 fandango.foo.bar fandango localhost
> ...

 

Non si tratta di dare due nomi ad un ip, ma al contrario di dare due ip diversi (a seconda dei casi) allo stesso nome!

----------

## nikko96

Non sto dando 2 nomi ad un ip, ma un nome al dominio locale,lo stesso nome di dominio che ha con il servizio dyndns

----------

## topper_harley

 *X-Act! wrote:*   

> 
> 
> Infine una mia curiosità: perchè anche all'interno della tua rete hai sempre un'interfaccia ppp e non una eth?

 

L'intercaccia eth c'è sempre, ma ho bisogno (o almeno credo) di avere ppp per connettermi ad internet, in specifico ppp0 e ppp1 per l'adsl (wired o wireless) e ppp1 per la connessione gprs. Ecco il mio /etc/conf.d/net:

```
config_eth0=( "192.168.0.1 netmask 255.255.255.0 ")

config_ppp0=( "ppp" )

link_ppp0="eth0"

plugins_ppp0=( "pppoe")

username_ppp0='********'

password_ppp0='********'

pppd_ppp0=(

        "noauth"

        "defaultroute"

        "usepeerdns"

        "default-asyncmap"

        "ipcp-accept-remote"

        "ipcp-accept-local"

        "lcp-echo-interval 15"

        "lcp-echo-failure 3"

        "mru 1492"

        "debug"

)

modules_wlan0=( "wpa_supplicant" ) # tell eth1 to use wpa_supplicant

wpa_supplicant_wlan0="-Dwext"       # additional options for wpa_supplicant

associate_timeout_wlan0="15"        # how long to wait for association

config_wlan0=( "192.168.1.10" )

config_ppp1=( "ppp" )

link_ppp1="wlan0"

plugins_ppp1=( "pppoe")

username_ppp1='*******'

password_ppp1='*******'

pppd_ppp1=(

        "noauth"

        "defaultroute"

        "usepeerdns"

        "default-asyncmap"

        "ipcp-accept-remote"

        "ipcp-accept-local"

        "lcp-echo-interval 15"

        "lcp-echo-failure 3"

        "mru 1492"

        "debug"

)

config_ppp2=( "ppp" )

link_ppp2="/dev/rfcomm0"

username_ppp2='********'

password_ppp2='********'

pppd_ppp2=(

"noauth"

"defaultroute"

"usepeerdns"

)

phone_number_ppp2=( "*99***1#" )

chat_ppp2="

ABORT '\nBUSY\r'

ABORT '\nERROR\r'

ABORT '\nNO ANSWER\r'

ABORT '\nNO CARRIER\r'

ABORT '\nNO DIALTONE\r'

ABORT '\nRINGING\r\n\r\nRINGING\r'

'' '\rAT'

TIMEOUT 12

OK ATZ

OK 'AT+cgdcont=1,\"IP\",\"internet.wind\"'

OK 'ATDT\T'

TIMEOUT '60'

CONNECT ''

TIMEOUT '5'

'~--' ''

"

postup() {

        if [[ ${IFACE} == "ppp1" ]] ; then

                /root/scripts/hosts.home

        elif [[ ${IFACE} == "ppp2" ]] ; then

                /root/scripts/hosts.world

        fi

return 0

}

```

 *cloc3 wrote:*   

> un momento.
> 
> riprova con /tmp/versione_illustrata_della_bibbia, e vediamo se la differenza rimane notevole. 
> 
> 

 

La differenza in questo caso diventa notevolissima, tanto da essere sicuro che i dati stanno passando per internet (iotop dice she scrivo su disco a circa 34k al secondo, che è più o meno la velocità massima in upload che fornisce il mio provider).

 *nikko 96 wrote:*   

> Scusa dai al tuo host lo stesso nome che usa in rete:
> 
> Codice:
> 
> 127.0.0.1 fandango.foo.bar fandango localhost
> ...

 

Non ti seguo... Questo sarebbe l'etc/hosts del server?

----------

## X-Act!

 *topper_harley wrote:*   

> L'intercaccia eth c'è sempre, ma ho bisogno (o almeno credo) di avere ppp per connettermi ad internet, in specifico ppp0 e ppp1 per l'adsl (wired o wireless) e ppp1 per la connessione gprs.

 

Ma tu hai un router? Se è così non ti serve una ppp (che dovrebbe essere necessaria solo se hai un modem) perché la connessione la fa lui. Ti serve invece assolutamente per il gprs, ma penso che tu non lo usi da casa. Comunque non sono troppo esperto (mai usato un ppp  :Smile:  ) e poi siamo OT...

 *topper_harley wrote:*   

>  *cloc3 wrote:*   un momento.
> 
> riprova con /tmp/versione_illustrata_della_bibbia, e vediamo se la differenza rimane notevole. 
> 
>  
> ...

 

Questo non mi torna... potresti postare un traceroute da dentro la rete verso l'ip esterno (e magari uno verso google per riferimento)?

@nikko 96: a parte che /etc/hosts non serve affatto per dare "un nome al dominio locale" (per quello si usano hostname e fratelli), ma in questo caso comunque non servirebbe. Impostandolo così dici semplicemente alla macchina che sia fandango.foo.bar che fandango devono essere risolti in 192.168.1.5 senza mandare una query al dns e questo risolve il problema quando il client è dentro la rete, ma rende il server assolutamente irraggiungibile quando il client è fuori, dove cioè gli indirizzi privati non hanno senso.

Inoltre localhost non dovrebbe mai essere assegnato a qualcosa di diverso da un indirizzo di loopback...

 *topper_harley wrote:*   

> 
> 
> ```
> ...
> 
> ...

 

Hai gli indirizzi delle due schede su classi diverse e se l'ip del server è 192.168.1.5 dovresti avere problemi a raggiungerlo dalla wired... Fai qualche controllo anche in questo senso.

----------

## nikko96

In effetti quel localhost in più sull'indirizzo di rete mi era scappato,in effetti è inutile usato in quel modo ma non nocivo .

Scusa X-Act! se ti rispondo in ritardo,avevi capito bene nel senso che si trattava del /etc/hosts del server,così da risolvere lal

cosa quando ti trovi dentro la rete.

Quando sei fuori rete dovrebbe essere il router a indirizzarti verso il server,nattando la porta ssh su quella interna del server.

Per fare questo dovresti usare l'accrocchio alice come router/gateway e non solo come modem,(non so se questa funzione è supportata da alice gate).

----------

## X-Act!

 *nikko96 wrote:*   

> avevi capito bene nel senso che si trattava del /etc/hosts del server,così da risolvere lal cosa quando ti trovi dentro la rete.

 

Se cambi /etc/hosts del server cosa cambierebbe per il cliente?

 *nikko96 wrote:*   

> Quando sei fuori rete dovrebbe essere il router a indirizzarti verso il server

 

Si, ma da fuori come lo raggiungi il server? Devi usare l'ip pubblico (corrispondente al nome dyndns)! E' proprio questo il problema!

----------

## topper_harley

 *X-Act! wrote:*   

>  *topper_harley wrote:*   L'intercaccia eth c'è sempre, ma ho bisogno (o almeno credo) di avere ppp per connettermi ad internet, in specifico ppp0 e ppp1 per l'adsl (wired o wireless) e ppp1 per la connessione gprs. 
> 
> Ma tu hai un router? Se è così non ti serve una ppp (che dovrebbe essere necessaria solo se hai un modem) perché la connessione la fa lui. Ti serve invece assolutamente per il gprs, ma penso che tu non lo usi da casa. Comunque non sono troppo esperto (mai usato un ppp  ) e poi siamo OT...
> 
> 

 

No, non fa la connessione... Quindi ho bisogno di ppp.

 *X-Act! wrote:*   

> Questo non mi torna... potresti postare un traceroute da dentro la rete verso l'ip esterno (e magari uno verso google per riferimento)? 

 

Ecco:

```
andrea@revolver ~ $ traceroute fandangofoo.bar

traceroute to fandango99.ath.cx (79.41.X.X), 30 hops max, 40 byte packets

 1  * * *

 2  hostX-X-dynamic.41-79-r.retail.telecomitalia.it (79.41.X.X)  75.410 ms  77.937 ms  81.530 ms

andrea@revolver ~ $ traceroute www.google.com

traceroute to www.google.com (209.85.129.99), 30 hops max, 40 byte packets

 1  * * *

 2  host89-158-static.36-88-b.business.telecomitalia.it (88.36.158.89)  38.720 ms  41.547 ms  45.142 ms

 3  r-ve34-vl2.opb.interbusiness.it (217.141.109.132)  47.547 ms *  52.642 ms

 4  172.17.4.1 (172.17.4.1)  63.431 ms  66.303 ms  68.500 ms

 5  host185-8-static.20-80-b.business.telecomitalia.it (80.20.8.185)  70.722 ms  73.756 ms  77.107 ms

 6  mil30-ibs-resid-4.seabone.net (195.22.192.189)  79.061 ms  44.214 ms  44.159 ms

 7  72.14.198.233 (72.14.198.233)  44.778 ms 72.14.196.141 (72.14.196.141)  45.461 ms 72.14.198.233 (72.14.198.233)  43.751 ms

 8  209.85.251.108 (209.85.251.108)  38.648 ms  39.720 ms  40.882 ms

 9  209.85.251.113 (209.85.251.113)  51.083 ms  51.068 ms  50.750 ms

10  72.14.232.165 (72.14.232.165)  57.919 ms 72.14.232.167 (72.14.232.167)  50.939 ms 72.14.232.165 (72.14.232.165)  50.665 ms

11  72.14.239.174 (72.14.239.174)  62.817 ms 72.14.239.170 (72.14.239.170)  50.319 ms  50.073 ms

12  fk-in-f99.google.com (209.85.129.99)  48.166 ms  47.593 ms  47.838 ms
```

 *X-Act! wrote:*   

> Hai gli indirizzi delle due schede su classi diverse e se l'ip del server è 192.168.1.5 dovresti avere problemi a raggiungerlo dalla wired... Fai qualche controllo anche in questo senso.

 

Si, hai ragione... Mi sono connesso wired solo alla prima installazione di gentoo, e poi ho sempre usato il wireless, non me ne ero mai accorto  :Smile: 

----------

## nikko96

 *X-Act! wrote:*   

>  *nikko96 wrote:*   avevi capito bene nel senso che si trattava del /etc/hosts del server,così da risolvere lal cosa quando ti trovi dentro la rete. 
> 
> Se cambi /etc/hosts del server cosa cambierebbe per il cliente?
> 
>  *nikko96 wrote:*   Quando sei fuori rete dovrebbe essere il router a indirizzarti verso il server 
> ...

 

Esternamente il problema non si pone,visto che riesce a collegarsi al server interno alla rete con ssh -p numero_porta utente@fandango.foo.bar(servendosi del servizio dyndns),da dentro oltre a usare il file sopracitato per il server è normale che deve

aggiungere un riga consona allo stesso file del cliente,o non ti pare?

/etc/hosts cliente:

```

127.0.0.1 nome_host_cliente.dominio nome_host_cliente localhost

192.168.1.x nome_host_cliente.dominio nome_host_cliente

192.168.1.5 fandango.foo.bar fandango
```

In questo modo potrai usare sempre ssh -p numero_porta utente@fandango.foo.bar per collegarti al server

da dentro o fuori che sia.

E' questo che topper_harley  vuole ottenere o non aggio capito na m???a\?

----------

## X-Act!

Quello che forse non hai capito è che topper_harley ha un solo pc e lo usa a volte dalla sua rete e a volte da internet.

Se lui scrive nel suo /etc/hosts (suo del pc, non del server che non serve a niente!) che sia fandago che fandango.foo.bar corrispondono a 192.168.1.5 vuol dire che quando il suo pc dovrà chiamare questi nomi non farà mai una query al dns ma li risolverà sempre come 192.168.1.5. Ora se è a casa la cosa è perfetta, ma se è fuori (con lo stesso computer) l'indirizzo privato 192.168.1.5 non sarà mai raggiungibile!!

La soluzione a questo è cambiare di volta in volta il file /etc/hosts e topper_harley lo fa con uno script. La sua domanda è: c'è un modo ragionevolmente semplice per farlo senza dover cambiare alcun file (e quindi senza dover usare alcuno script)?

E su questo stiamo ragionando...

 *topper_harley wrote:*   

> No, non fa la connessione... Quindi ho bisogno di ppp. 

 

Ora capisco: il tuo non è un router, ma è solo un modem dico bene? Non ha dns, nat, firewall e niente, tu fai ppp dal pc e il tuo primo op è il dsalm del provider! Per questo passi comunque per la linea esterna (e quindi mi rimangio tutto quello che ho detto a proposito del fatto che la differenza fosse trascurabile...).

In queste condizioni vedo tre possibilità:

1) ti compri un router (magari di quelli basati su linux così ti ci sbizzarrisci un po')

2) usi il tuo server come gateway per la rete interna: fai collegare lui a internet via ppp e gli fai ruotare (e nattare) la tua rete privata. Così ci metti un dhcp-dns e hai risolto tutti i problemi

3) sistemi un po' il tuo script: come ti dicevo prima, io toglierei questo:

```
NEWHOST=`host fandango.foo.bar | gawk '{print $4}'` 
```

e userei la logica di forzare l'ip privato quando sei dentro, mentre non scrivere nulla se sei fuori (cosi chiedi sempre al dns di dyndns e non ti fissi su un ip risolto solo una volta al momento della connessione).

----------

## cloc3

 *X-Act! wrote:*   

> 
> 
> 3) sistemi un po' il tuo script

 

ma sì. lo script non è una brutta soluzione.

puoi fare uno script di init che seleziona una particolare versione di /etc/hosts in base allo stato di una istruzione contenuta in /proc/cmdline .

finisce che diventa più elegante di tutti i servizi di dns locale della terra.

 :Smile: 

----------

## topper_harley

 *nikko96 wrote:*   

> 
> 
> ```
> 
> 127.0.0.1 nome_host_cliente.dominio nome_host_cliente localhost
> ...

 

Incredibile ma vero mi hai risolto tutti i problemi. Mettendo questa riga nell'etc/hosts del client

```
192.168.1.5             fandango        fandango.foo.bar
```

riesco a connettermi dalla rete locale usando il nome dns senza passare per internet:

```
andrea@revolver ~ $ traceroute fandango.foo.bar

traceroute to fandango.foo.bar (192.168.1.5), 30 hops max, 40 byte packets

 1  fandango (192.168.1.5)  2.277 ms  2.542 ms  2.778 ms

```

GRAZIE MILLE

----------

## X-Act!

 *topper_harley wrote:*   

> riesco a connettermi dalla rete locale usando il nome dns senza passare per internet:

 

Si, certo, ma da fuori?

----------

## topper_harley

 *X-Act! wrote:*   

>  *topper_harley wrote:*   riesco a connettermi dalla rete locale usando il nome dns senza passare per internet: 
> 
> Si, certo, ma da fuori?

 

Porca miseria, hai ragione... Ora mi trovo fuori e ovviamente non funziona una mazza...

Forse la soluzione "meno peggio" sta nel creare uno script da inserire nelle postup functions /etc/conf.d/net che aggiunge fandango.foo.bar alla linea del server nel mio /etc/hosts quando sono nella rete locale, e lo toglie quando ne esco.

----------

## X-Act!

 *topper_harley wrote:*   

> Porca miseria, hai ragione... Ora mi trovo fuori e ovviamente non funziona una mazza...

 

 :Rolling Eyes: 

 *topper_harley wrote:*   

> Forse la soluzione "meno peggio" sta nel creare uno script da inserire nelle postup functions /etc/conf.d/net che aggiunge fandango.foo.bar alla linea del server nel mio /etc/hosts quando sono nella rete locale, e lo toglie quando ne esco.

 

Secondo me messa così migliori anche i "problemi di stabilità" che avevi e credo ti serva sempre di meno lanciare gli script a mano.

----------

## nikko96

 *topper_harley wrote:*   

>  *X-Act! wrote:*    *topper_harley wrote:*   riesco a connettermi dalla rete locale usando il nome dns senza passare per internet: 
> 
> Si, certo, ma da fuori? 
> 
> Porca miseria, hai ragione... Ora mi trovo fuori e ovviamente non funziona una mazza...
> ...

 

E' qui che faccio confusione, forse;

quando sei dentro la rete locale riesci a risolvere il nome mediante /etc/hosts, quando questo non è possibile

 (quindi sei fuori lan) non dovrebbe esserci una query al server dns?

Inoltre all'inizio del tuo post hai detto che riuscivi a collegarti da fuori,cosa è cambiato, mi sfugge qualcosa?

Ciao e perdonatemi se batto lo stesso chiodo petulantemente.

----------

## Kernel78

 *nikko96 wrote:*   

> 
> 
> E' qui che faccio confusione, forse;
> 
> quando sei dentro la rete locale riesci a risolvere il nome mediante /etc/hosts, quando questo non è possibile
> ...

 

il fatto è che se il sistema riesce a risolvere un nome dal file hosts non fa nessuna query ma suppone che l'ip ottenuto sia quello corretto, se l'ip non risponde è considerato un problema a valle quindi non vengono tentate altre strade per la risoluzione ...

Quindi se metti un nome in hosts verrà SEMPRE usato l'ip che gli hai associato li e non verrà MAI fatta alcuna query.

----------

## nikko96

 *Kernel78 wrote:*   

>  *nikko96 wrote:*   
> 
> E' qui che faccio confusione, forse;
> 
> quando sei dentro la rete locale riesci a risolvere il nome mediante /etc/hosts, quando questo non è possibile
> ...

 

Ti ringrazio, adesso è tutto molto chiaro   :Embarassed: 

non tenevo conto del fatto che non si poteva andare al livello successivo (query dns) proprio perchè

il nome era già stato risolto dal file hosts,ciao.

----------

## topper_harley

 *X-Act! wrote:*   

> 
> 
> La cosa che mi sembra più semplice è usare il proxydns che sta sul router, ma non so il tuo ce l'ha e se anche ce l'avesse non credo tu riesca a configurarlo dall'interfaccia web.
> 
> In alternativa (visto che hai già un server) mettici su anche un dhcp-dns interno e usi quello (e magari lo usi pure come gateway relegando il tuo ruter a fare solo da modem).
> ...

 

Praticamente usare il server come router, giusto?

Il problema è questo, il mio server è un vecchio laptop che ha solo un'interfaccia ethernet e una wireless (che però non regge il master mode). In questa guida sembra che occorrano 2 interfacce di rete. Posso ovviare al problema?

----------

## X-Act!

Temo di no, almeno non in modo semplice e poco dispendioso. (certo se avessi uno switch da qualche centinaio di euro...)

Devi vedere se riesci a procurarti ad un prezzo accettabile una seconda scheda di rete, ma considera che ormai a 40-50 euro compri un buon router adsl e risolvi il tutto facilmente!

----------

## Peach

 *topper_harley wrote:*   

>  *X-Act! wrote:*   
> 
> La cosa che mi sembra più semplice è usare il proxydns che sta sul router, ma non so il tuo ce l'ha e se anche ce l'avesse non credo tu riesca a configurarlo dall'interfaccia web.
> 
> In alternativa (visto che hai già un server) mettici su anche un dhcp-dns interno e usi quello (e magari lo usi pure come gateway relegando il tuo ruter a fare solo da modem).
> ...

 

non so se era già venuta fuori come cosa, ma se hai modo di impostare un server dns a tuo piacimento che venga rilasciato dal dhcp server presente sul modem/router (magari anche solo per la connessione ppp) puoi installarti qualcosa di molto semplice tipo dnsmasq sul serverino e usare quello per la risoluzione delle query.

Ciò significa che sul tuo pc avrai 

```
dns_servers_ppp0="ip-serverino"
```

 e sul serverino dnsmasq, il quale attingerà ad un file /etc/hosts che ha "ip-che-vuoi-tu host-che-vuoi-tu" e in resolv.conf due ip OpenDNS per le restanti query esterne.

In questo modo bypassi completamente l'uso del router come dns e lo usi solo come dhcp server e router.

Imho questa dovrebbe essere la soluzione migliore (sempre che non mi sia sfuggito nulla dei post precedenti) e non hai bisogno di schede aggiuntive o smontare il router.

dico male?

----------

## topper_harley

 *X-Act! wrote:*   

> Temo di no, almeno non in modo semplice e poco dispendioso. (certo se avessi uno switch da qualche centinaio di euro...)
> 
> Devi vedere se riesci a procurarti ad un prezzo accettabile una seconda scheda di rete, ma considera che ormai a 40-50 euro compri un buon router adsl e risolvi il tutto facilmente!

 

Un buon router wireless?

----------

