Newsgroup: it.comp.reti.ip-admin
Titolo: DNS su rete privata

Ciao a tutti,
le esigenze della mia rete stanno aumentando ed adesso mi ritrovo
costretto ad installare un DNS per risolvere i nomi delle macchine
interne, associate ad indirizzi nella classe C 192.168.x.x
Le macchine interne attualmente usano un proxy che contatta il DNS
sulla rete esterna, pubblica.
Mi sembra di capire che mi sia necessario installare sulla rete
interna 192.168.x.x un DNS a cui tutte le macchine facciano
riferimento e, in caso questo non riesca a risolvere, poiche' si
tratta di indirizzi a lui sconosciuti (internet), questo contatti il
DNS esterno per la risoluzione.
Abbiamo comunque intenzione di affiancare al Proxying il NAT per cui
non ci dovrebbero essere problemi di accessibilita' tra i due DNS
Mi rimane pero' qualche dubbio:
il DNS interno e le macchine da lui indirizzate farebbero parte del
mio dominio ? Ovvero se il mio dominio fosse 
xxx.it
, le macchine
interne, quelle con indirizzo 192.168.x.x, sarebbero referenziate
anch'esse come 
nomehost.xxx.it
 ?
Come si fa a dirgli di non comunicare all'esterno (Internet),
replicandoli sul DNS esterno gerarchicamente superiore, questi
nomi/indirizzi ?
Come configurare il tutto ? Ovvero sapete suggerirmi riferimenti,
libri, URL, RFC che mi scendano nel dettaglio delle istruzioni da
implementare ?
Stiamo comunque parlando tipicamente di ambiente UNIX; il DNS attuale
e' su Sun Solaris, mentre quello interno dovrebbe essere o sempre su
Sun o su Linux/x86
Ciao e grazie anticipatamente
Sergio

ai provider che usano linux (echo subscribe|mail linux-isp-request@...).

Non capisco.
Spero di essermi spiegato meglio questa volta.... 
Ciao e grazie ancora
Sergio

 Come un normale dominio e una normale zona di reverse mapping.
Nella soluzione che ho prospettato:
- Il primo DNS va configurato come un "DNS esterno puro", fatto per
  non fare da "resolver" ma solo per gestire un dominio, con la sua zona
  di dominio normale e il suo reverse normale... praticamente la soluzione
  piu' scontata del mondo come configurazione. L'unico accorgimento e' che
  esso deve essere configurato in modo da rifiutarsi di risolvere "per conto
  terzi", ovvero deve rispondere quando e' autoritativo e dire "non so"
  altrimenti.
- Il secondo va configurato come "fascist-slave" o "cache only", 
  eventualmente forwardante sul DNS di chi ti vende la banda, trovi 
  l'esempio su 
www.isc.org
 con tale nome, non l'ho inventato io :-), 
  va solo modificato il "listen-on" per farlo restare in ascolto 
  sull'indirizzo "interno" e fargli rispondere alla LAN, poi eventualmente 
  devi aggiungere le zone "
lan.azienda.it
" e "168.192.in-addr.arpa" per 
  poter settare nomi/indirizzi "interni" delle macchine. E' ovviamente 
  meglio che esso sia dichiarato autoritativo anche per le zone "esterne" 
  del nostro dominio con un opportuno zone-transfer dal primo DNS (che 
  resta il primario) per evitare giri strani per risolvere un nostro nome.
Ciao,
-- 
Andrea

  resta il primario) per evitare giri strani per risolvere un nostro nome.
e' questo il modo di evitare che il dns esterno mi debba risolvere gli
indirizzi di quello interno ?
Allora forse ho capito:
se una ws chiede una risoluzione di una macchina sconosciuta, il DNS
contattera' direttamente quello del provider e non quello esterno (che
a sua volta contattera' quello del provider). E' cosi' ? 
Il come realizzare il tutto mi rimane un po nebuloso ma adesso mi
metto a studiare per vedere di risolvere. 
Grazie mille !!
Ciao
Sergio

 a sua volta contattera' quello del provider). E' cosi' ? 
Si... piu' o meno e' cosi', ipotesi:
a) Un giapponese che deve accedere al tuo sito web "dal mondo esterno"
   cerca 
www.azienda.it
, in qualche modo (dettagli a parte) qualcuno 
   gli fa sapere che deve chiedere al tuo DNS, il tuo DNS "esterno" gli 
   risponde che "
www.azienda.it
 e' 12.34.56.782 (Nome "pubblico" su IP
   "pubblico"), il DNS "visibile all'esterno" deve fare *solo* questo,
   rispondere alle richieste della rete esterna per i nomi e gli IP
   che sono "pubblici" e gestiti da lui, NON deve fare invece per nessuno
   la risoluzione di indirizzi non "suoi" perche' altrimenti qualcuno
   potrebbe usarlo come DNS di appoggio e sovraccaricarlo (non tanto lui
   quanto la tua connessione...). Questo e' il DNS da mettere come
   "autoritativo" nella registrazione del dominio al NIC e cosi' via.
b) Una macchina della tua LAN chiede di risolvere un nome, la richiesta va
   indirizzata sempre al DNS "interno", cioe' a quello visibile ed usabile 
   solo dalla LAN, questo DNS non prendera' nemmeno in considerazione le
   richieste che non vengono dalla tua LAN (listen-on su un indirizzo 
   interno in named.conf...), esso fara' cosi':
   Se il nome e' 
qualcosa.lan.azienda.it
 essendo lui autoritativo (o almeno
   aoutodichiaratosi tale) per 
lan.azienda.it
 risponde secco dal suo zone 
   name in cui ci sono gli indirizzi _interni_), stesso dicasi per 
   *.10.in-addr.arpa o qualsiasi sia il gruppo di IP riservati usi in LAN.
   Se il nome e' 
altro.azienda.it
 esso risponde O chiedendo "al mondo" (che
   finira' per dirgli che deve chiedere al tuo DNS esterno, il che e' un po'
   uno schifo dal punto di vista dell'ottimizzazione) oppure meglio in base
   al fatto che si dichiara "autoritativo secondario" per tutto il dominio
 
azienda.it
 e accetta il zone-transfer dall'altro DNS, cosi' ricevera' 
   ovviamente per i nomi esterni gli indirizzi esterni (ad esempio la
   macchina potrebbe essere in LAN 10.1.2.3 == 
pc10.lan.azienda.it
 ma
   fare da webserver con un NAT su 54.98.75.32 == 
www.azienda.it
, le 
   richieste della LAN dovrebbero dare correttamente entrambe le risposte,
   cioe' se uno "accede" a 
www.azienda.it
 da dentro la lan e' giusto
   che vada a finire su 54.98.75.32).
   Se il nome e' esterno alla tua azienda chiede al DNS del provider
   (forward on) oppure scende la catena dei domini dai root servers
   (hint .. root.servers), essendo un bind e non il giocattolo di client
   DNS di Win fara' la sua brava cache locale, usera' correttamente i
   "forwarders" e se essi son morti andra' per la sua strada partendo
   dai root servers, il che vuol dire che le tue macchine non si siedono
   se muore il DNS del provider che ti da la banda e che hai una *grossa*
   cache locale che ti fa risparmiare traffico sulla linea esterna...
 
   Per fare cio' il DNS interno deve poter "dialogare" con il mondo, 
   ovviamente, ma "rispondere" solo ala lan, il che nel mondo unix non
   e' un problema (macchina multihomed, listen on su indirizzo della LAN,
   query on su indirizzo Internet).
Tutto chiaro ?
Ciao,
-- 
Andrea

rasp...@mail.eng.it
 wrote:
 >Scusa, i due DNS si devono parlare, no ? ed in tal caso come fa il DNS
 >esterno a parlare a quello interno se non facendogli un reverse
 >proxying o un NAT ? Vedo la seconda una soluzione
 >piu'..."trasparente".
Il ns interno (quello per gli indirizzi e domain privati) non deve
essere contattato dall'esterno, facile. Puo` contattare l'esterno (se lo
vuoi usare anche come caching server per i client, come e` probabile se
il traffico e` basso) o attraverso una delle sue interfaccie o
attraverso un altro name server.
 >> >il DNS interno e le macchine da lui indirizzate farebbero parte del
 >> >mio dominio ? Ovvero se il mio dominio fosse 
xxx.it
, le macchine
 >> >interne, quelle con indirizzo 192.168.x.x, sarebbero referenziate
 >> >anch'esse come 
nomehost.xxx.it
 ?
 >>E` indifferente, dipende da come sono visti questi domini dall'esterno.
 >Io non voglio che queste macchine vengano viste dall'esterno.
Allora basta che non replichi quei domain sulla zona vista dall'esterno.
 >Oltretutto avrebbero indirizzi privati, non tradotti e quindi non
 >potrebbero essere pubblicati su Internet.
Pero` potrebbero per esempio avere MX, oppure essere raggiungibili via
NAT 1:1.
 >>Personalmente trovo poco estetici i domini interni e quindi ti consiglio
 >>di mettere tutto all'interno del tuo, eventualmente in un subdomain.
 >E' quello che volevo evitare perche' questi nomi ed i relativi
 >indirizzi verrebbero propagati a livello Internet. O no ?
No, non dovresti metterli nella zona esterna ma in una sottozona
separata, per esempio aggiungendo in named.conf:
zone "1.168.192.in-addr.arpa" {
        type master;
        file "192.168.1";
};
zone "
domaininterno.tuodomain.it
" {
        type master;
        file "domaininterno";
};
esattamente come se fossero domain delegati al server.
Il resto di 
tuodomain.it
 sara` accessibile tramite l'altro name server
contenente la zona esterna (e quindi senza configurazioni particolari su
nessuno dei due).
Tieni presente che il name server esterno non deve MAI chiedere qualcosa
a quello interno perche` altrimenti rischia di inquinare la sua cache
con gli indirizzi del domain interno.


Il secondo va configurato come "fascist-slave" o "cache only"
sono due nomi che rappresentano la stessa configurazione o due
possibili configurazioni diverse ? 
Inoltre su 
www.isc.org
 non ho trovato nessun esempio.....
Ma va be', me li trovero' da solo, a meno che tu non ne abbia uno a
portata di ...mouse !
Ciao
Sergio


... dovresti trovare degli spunti utili.
Tieni presente che negli "slave" da cui parti per configurare
il DNS interno devi cambiare i "listen-on 127.0.0.1" con 
l'IP _interno_ del DNS (quello sulla LAN), altrimenti il server
"ascolta" sull'interfaccia loopback e non risponde alle altre
macchine della LAN stessa, idem per "allow-query" che deve diventare
10.0.0.0/8
 per accettare le query da 10.* e cosi' via...
Come base per il DNS "esterno" puoi prendere named.conf.ns1 dove c'e'
piu' roba da togliere che da aggiungere :)
ciao,
-- 
Andrea

Sun o su Linux/x86
Ricapitoliamo: perche' il tuo DNS Server possa comunicare con l'esterno devi
avere 2 IP sulla stessa macchina.
Perche' le macchine della tua rete (192.168.0.x) vedano i nomi delle altre
macchine della rete locale devi aggiungere dei record di tipo A nel database
del server DNS associando al nome della macchina l'ip della macchina, ad
esempio se il dominio che hai creato e' "ciao" e vuoi associare la macchina
"atutti" devi mettere 'sta riga nella definizione della zona
atutti                     IN A 192.168.0.x.
dove al posto della x ci metti il numero corrispondente alla macchina.
Una volta impostato il DNS primario, nei client ti bastera' chiamare
"atutti.ciao" per accedere alla macchina in questione.
Anche se il tuo DNS parlasse con l'esterno risponderebbe alla chiamata per
l'host "atutti.ciao" con un indirizzo privato e il chiamante si ritroverebbe
con un bel network error nel client.
--
Memento Audere Semper
Nettuno
159° MASSM
10° C.I.N.G.H.I.A.L.E.
Please remove ziazc.imei to reply