# Come far aggiornare da solo /etc/hosts ?

## lsegalla

Attaccandomi alla mia LAN aziendale puntualmente se voglio usare i nomi delle macchine al posto dell'indirizzo IP devo tenere aggiornato il file /etc/hosts sulla mia macchina.

Pero' le varie macchine windows, i miei terminal server e tutte ste robe qua risolvono i nomi tranquillamente... è evidente che la mia gentoo-box è da configurare meglio. Per navigare i nomi vengono risolti (infatti vedo /etc/resolv.conf regolarmente aggiornato e qui tutto bene).

Come fare invece per avere l'elenco aggiornato degli host ?

----------

## devilheart

se c'è un dominio windows puoi usare il suo server dns, altrimenti puoi usare avahi. la riga hosts di /etc/nsswitch.conf deve essere modificata così

```
hosts:       files mdns4_minimal [NOTFOUND=return] dns mdns4
```

----------

## lsegalla

Il dominio windows c'è e il suo server dns l'ho già dichiarato in /etc/resolv.conf ma suppongo non basti... o no ?

Non mi è chiaro cosa fa la riga che hai citato.

----------

## Apetrini

Probabilmente hai bisogno di risolvere roba col "wins".

Assicurati che samba-client/server (dipende da cio che usi) abbiano la USE "winbind".

Devi anche aggiungere una entry al file che ti ha menzionato devilheart (/etc/nsswitch.conf), precisamente dopo files infilaci "wins" (separata da uno spazio).

Comunque se segui questa comodissima guida in italiano lo spiega http://www.gentoo.org/doc/it/quick-samba-howto.xml

Cito la sezione per comodità

```

Si renderà necessario poi aggiornare /etc/nsswitch.conf così che i sistemi Windows possano essere trovati semplicemente usando NetBIOS:

Codice 4.4: Modificare /etc/nsswitch.conf

# nano -w /etc/nsswitch.conf

(Modificare la riga hosts:)

hosts: files dns wins

```

----------

## cloc3

 *Apetrini wrote:*   

> 
> 
> Cito la sezione per comodità.

 

Le doc gentoo sono veramente ben fatte.

è facilissimo produrre collegamenti chirurgici.

 :Very Happy: 

----------

## devilheart

 *lsegalla wrote:*   

> Il dominio windows c'è e il suo server dns l'ho già dichiarato in /etc/resolv.conf ma suppongo non basti... o no ?
> 
> Non mi è chiaro cosa fa la riga che hai citato.

 prova a fare un

```
dig nome_host @indirizzo_del_server_dns
```

la riga dice di provare a risolvere gli indirizzi provando prima con avahi e poi via dns

 *Apetrini wrote:*   

> Probabilmente hai bisogno di risolvere roba col "wins".

 active directory usa dns non wins

----------

## Apetrini

@cloc3: ehm, mea culpa...

 *devilheart wrote:*   

> prova a fare un
> 
> ```
> dig nome_host @indirizzo_del_server_dns
> ```
> ...

 

Assolutamente. Quando hai problemi coi dns (problemi di vario tipo), usa "dig" per fare il check, ti da una risposta "grezza" del dns e puoi interrogare uno specifico dns usando la sintassi sopra citata (@<indirizzo del dns>), nonche i vari campi della entry dns (es. -t mx, -t soa etc... ).

dig lo trovi in "net-dns/bind-tools".

 *devilheart wrote:*   

> 
> 
> active directory usa dns non wins

 

Non ho prestato abbastanza attenzione al thread e mi sono perso la storia del active directory, scusate.

Piccola domanda, ma la macchina gentoo ha effettuato il join dentro il dominio?

----------

## devilheart

 *Apetrini wrote:*   

> Non ho prestato abbastanza attenzione al thread e mi sono perso la storia del active directory, scusate.
> 
> Piccola domanda, ma la macchina gentoo ha effettuato il join dentro il dominio?

 

l'autore parla di un generico dominio windows, potrebbe essere nt4-style piuttosto che active directory ma per quello che ricordo anche il primo usa obbligatoriamente un dns

----------

## lsegalla

Ecco i test che mi chiedete, mi son appena scaricato il pacchetto che contiene dig:

```
user8-gentoo etc # ping srvdbeq

ping: unknown host srvdbeq

```

```
user8-gentoo etc # dig srvdbeq@192.168.1.101

; <<>> DiG 9.4.3-P3 <<>> srvdbeq@192.168.1.101

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8591

;; flags: qr aa; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;srvdbeq\@192.168.1.101.                IN      A

;; AUTHORITY SECTION:

.                       86400   IN      SOA     A.ROOT-SERVERS.NET. NSTLD.VERISIGN-GRS.COM. 2009112700 1800 900 604800 86400

;; Query time: 29 msec

;; SERVER: 192.168.1.101#53(192.168.1.101)

;; WHEN: Fri Nov 27 17:08:06 2009

;; MSG SIZE  rcvd: 114

```

Allego anche le use flag che ho in make.conf, fa sempre comodo:

```
user8-gentoo etc # less /etc/make.conf|grep USE

USE="X directfb fbcon kde qt3 rdesktop encode bluetooth usb xulrunner gtk symlink mp3 bzip2 hal mmx sse mtrr acl cups kerberos -ldap -ldapsam pam -swat winbind samba jpeg png tiff gif accessibility dbus qt-static -esd cdda glitz svg aiglx qt3support ssl zlib cdio utempter gcj dvd dvdr ffmpeg flac sndfile laptop mjpeg mpeg acpi foomaticdb ppds java eapi-2 xine png truetype apm alsa consolekit mysql sql webkit opengl vnc"

```

Specifico inoltre che:

1. non faccio l'accesso al dominio

2. le altre macchine che fanno accesso al dominio comunque non hanno wins impostato (una volta sì, ma ora non piu'... ma erano i tempi del win98 per quanto ricordo)

Per come si è sviluppato il discorso, supponendo che il wins non serva quindi non ho fatto la modifica a /etc/nsswitch.conf 

Quindi come posso procedere ?

----------

## danydany

Potresti aggiungere anche questo?

```
cat /etc/resolv.conf
```

----------

## danydany

Aggiungo: la query è sbagliata: ci va uno spazio (c'è nelle indicazioni di devilheart) tra il nome della macchina e l'indirizzo preceduto da @, così:

```
dig srvdbeq @192.168.1.101
```

----------

## lsegalla

Vi ringrazio, procedo subito a rifare la query

```
user8-gentoo etc # dig srvdbeq @192.168.1.101

; <<>> DiG 9.4.3-P3 <<>> srvdbeq @192.168.1.101

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 39441

;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;srvdbeq.                       IN      A

;; Query time: 0 msec

;; SERVER: 192.168.1.101#53(192.168.1.101)

;; WHEN: Fri Nov 27 18:39:40 2009

;; MSG SIZE  rcvd: 25

```

ed ecco il buon resolv, come avevo scritto all'inizio il nameserver c'è

```
user8-gentoo etc # cat /etc/resolv.conf

nameserver 192.168.1.101

```

----------

## Apetrini

Credo che ti sei risposto da solo, probabilmente manca il join nel dominio.

Prova a vedere se il sysadmin ha lasciato qualche robaccia che usa wins e impostalo. L'alternativa è di seguire la guida gentoo per il join nei domini windows.

----------

## lsegalla

 *Apetrini wrote:*   

> 
> 
> Prova a vedere se il sysadmin ha lasciato qualche robaccia che usa wins e impostalo.

 

Questa frase non mi è tanto chiara, per il resto preferisco star fuori dal dominio.

-- EDIT --

Non è che potrei fare il join al dominio da konsole quando mi serve ?

----------

## devilheart

il join lo devi fare solo una volta, poi resta attivo fino a quando non lo rimuovi esplicitamente

----------

## X-Act!

Secondo me non serve affatto joinarsi al dominio. Prova semplicemente a risolvere nomehost.nomedominio invece che solo nomehost. Se funziona poi aggiungi un search in /etc/hosts e sei a posto.

----------

## lsegalla

Funziona come hai detto tu facendo da console ping nomepc.dominio.

Ho provato pero' a mettere la stringa search dominio oppure search xxx.xxx.xxx.xxx ma così non funziona.

Devo rispettare qualche formato o sintassi?

----------

## X-Act!

Se specifichi in /etc/hosts "search nomedominio", quando cerchi di risolvere nomehost (che da solo non è un FQDN) il sistema fa direttamente una query per nomehost.nomedominio. E' la stessa cosa che fa anche windows ed è per questo che le macchine di dominio possono chiamarsi solo per nome.

----------

## lsegalla

No, purtroppo così non funziona.

----------

## danydany

Quindi se il tuo resolv.conf diventa

```
nameserver 192.168.1.101

domain provadominio
```

oppure

```
nameserver 192.168.1.101

search provadominio
```

e poi da console provi un ping con

```
ping srvdbeq.provadominio
```

e

```
ping srvdbeq
```

danno risultati diversi?

----------

## X-Act!

Non la vorrei dire grossa, ma credo ci sia differenza tra:

```
nameserver 192.168.1.101

search provadominio
```

e

```
search provadominio

nameserver 192.168.1.101

```

prova col secondo e vedi se cambia qualcosa...

----------

## devilheart

 *X-Act! wrote:*   

> Secondo me non serve affatto joinarsi al dominio. Prova semplicemente a risolvere nomehost.nomedominio invece che solo nomehost. Se funziona poi aggiungi un search in /etc/hosts e sei a posto.

 è possibile che il domain controller blocchi l'accesso al dns a chi non appartiene al dominio

invece, qualcuno sa se è normale che aggiungendo la riga "search local" in resolv.conf si blocchi tutta la risoluzione dei nomi?

----------

