Ulteriori correzioni e materiale sul name service switch
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 4 Jul 2004 23:05:50 +0000 (23:05 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 4 Jul 2004 23:05:50 +0000 (23:05 +0000)
sockctrl.tex
system.tex

index 5efe128ba47c01c7c95b5ad630c5c2993f2d4de5..7a7d12fd6c7ad7e8efb9f6fd6df074f9b259df5b 100644 (file)
@@ -66,43 +66,66 @@ necessarie a fornire la risposta, che possono essere la lettura delle
 informazioni mantenute nei relativi dei file statici presenti sulla macchina,
 una interrogazione ad un DNS (che a sua volta, per il funzionamento del
 protocollo può interrogarene altri) o la richiesta ad altri server per i quali
-sia fornito il supporto, come LDAP.
-
-La configurazione del resolver attiene più alla amministrazione di sistema che
-alla programmazione, ciò non di meno, prima di trattare le varie funzioni che
-vale la pena farne una panoramica. Originariamente la configurazione
+sia fornito il supporto, come LDAP.\footnote{la sigla LDAP fa riferimento ad
+  un protocollo, il \textit{Lightweight Directory Access Protocol}, che
+  prevede un meccanismo per la gestione di \textsl{elenchi} di informazioni
+  via rete; il contenuto di un elenco può essere assolutamente generico, e
+  questo permette il manenimento dei più vari tipi di informazioni su una
+  infrastruttura di questo tipo.}
+
+La configurazione del \textit{resolver} attiene più alla amministrazione di
+sistema che alla programmazione, ciò non di meno, prima di trattare le varie
+funzioni di librerie utilizzate dai programmi, vale la pena fare una
+panoramica generale.  Originariamente la configurazione del \textit{resolver}
 riguardava esclusivamente le questioni relative alla gestione dei nomi a
 dominio, e prevedeva solo l'utilizzo del DNS e del file statico
-\file{/etc/hosts}. 
+\file{/etc/hosts}.
 
-In questo caso il file di configurazione principale è \file{/etc/resolv.conf}
-che contiene in sostanza l'elenco dei server DNS da contattare, a cui si
-affianca il file \file{/etc/host.conf} il cui scopo principale è indicare
-l'ordine in cui eseguire la risoluzione dei nomi (se usare prima i valori di
-\file{/etc/hosts} o il DNS); tralasciamo i dettagli relativi alle varie
-direttive che possono essere usate in questi file, che si trovano nelle
-relative pagine di manuale.
+Per questo aspetto il file di configurazione principale del sistema è
+\file{/etc/resolv.conf} che contiene in sostanza l'elenco dei server DNS da
+contattare; a questo si affianca il file \file{/etc/host.conf} il cui scopo
+principale è indicare l'ordine in cui eseguire la risoluzione dei nomi (se
+usare prima i valori di \file{/etc/hosts} o quelli del DNS). Tralasciamo i
+dettagli relativi alle varie direttive che possono essere usate in questi
+file, che si trovano nelle rispettive pagine di manuale.
 
 Con il tempo però è divenuto possibile fornire diversi sostituti per
 l'utilizzo delle associazione statiche in \file{/etc/hosts}, inoltre oltre
 alla risoluzione dei nomi a dominio ci sono anche altri nomi da risolvere,
 come quelli che possono essere associati ad una rete (invece che ad una
-singola macchina) o ai gruppi di macchine definiti dal servizio NIS, o come
-quelli dei protocolli e dei servizi che sono mantenuti nei file statici
-\file{/etc/protocols} e \file{/etc/services}. Tutte queste sono informazioni
-che normalmente non si trovano su un DNS, ma che in un ambiente distribuito
-possono essere centralizzate su opportuni server (ad esempio su LDAP) in grado
-di mantenerle.
-
-
-
-Il sistema del \textit{Name Service Switch} (cui faremo riferimento in seguito
-con l'acronimo NSS) è un sistema di librerie dinamiche che permette di
-definire in maniera generica sia i supporti su cui mantenere i dati di
-corrispondenza fra nomi e valori numerici, sia l'ordine in cui effettuare le
-ricerche sui vari supporti disponibili. Il sistema prevede una serie di
-possibili classi di corrispondenza, riportate in
-tab.~\ref{tab:sys_NSS_classes}.
+singola macchina) o ai gruppi di macchine definiti dal servizio
+NIS,\footnote{il \textit{Network Information Service} è un servizio, creato da
+  Sun, e poi diffuso su tutte le piattaforme unix-like, che permette di
+  raggruppare all'interno di una rete (in quelli che appunto vengono chiamati
+  \textit{netgroup}) varie macchine, centralizzando i servizi di definizione
+  di utenti e gruppi e di autenticazione, oggi è sempre più spesso sostituito
+  da LDAP.} o come quelli dei protocolli e dei servizi che sono mantenuti nei
+file statici \file{/etc/protocols} e \file{/etc/services}.  Molte di queste
+informazioni non si trovano su un DNS, e poi in un ambiente distribuito può
+essere molto utile centralizzare il mentenimento di alcune di esse su
+opportuni server. Inoltre l'uso di diversi supporti possibili per le stesse
+informazioni (ad esempio il nome delle macchine può essere mantenuto sia
+tramite \file{/etc/hosts}, che con il DNS, che con NIS) comporta il problema
+dell'ordine in cui questi vengono interrogati.\footnote{con le implementazioni
+  classiche i vari supporti erano introdotti modificando direttamente le
+  funzioni di liberia, prevedendo un ordine di interrogazione predefinito e
+  non modificabile (a meno di una ricompilazione delle librerie stesse).}
+
+Per risolvere questa serie di problemi il sistema del \textit{resolver} è
+stato incluso all'interno di un meccanismo generico per la risoluzione di
+corripondenze fra nomi ed informazioni ad essi associate chiamato \textit{Name
+  Service Switch}\footnote{il sistema è stato introdotto la prima volta nelle
+  librerie standard di Solaris, le \acr{glibc} hanno ripreso lo stesso schema,
+  si tenga presente che questo sistema non esiste per altre librerie standard
+  come le \acr{libc5} o le \acr{uclib}.} cui abbiamo accennato anche in
+sez.~\ref{sec:sys_user_group} per quanto riguarda la gestione dei dati
+associati a utenti e gruppi.  Il \textit{Name Service Switch} (cui spesso si
+fa riferimento con l'acronimo NSS) è un sistema di librerie dinamiche che
+permette di definire in maniera generica sia i supporti su cui mantenere i
+dati di corrispondenza fra nomi e valori numerici, sia l'ordine in cui
+effettuare le ricerche sui vari supporti disponibili. Il sistema prevede una
+serie di possibili classi di corrispondenza, quelle attualmente definite sono
+riportate in tab.~\ref{tab:sys_NSS_classes}.
 
 \begin{table}[htb]
   \footnotesize
@@ -137,39 +160,29 @@ tab.~\ref{tab:sys_NSS_classes}.
   \label{tab:sys_NSS_classes}
 \end{table}
 
+Il sistema  del \textit{Name Service  Switch} è controllato dal  contenuto del
+file \file{/etc/nsswitch.conf}; questo contiene una riga\footnote{seguendo una
+  convezione  comune per  i  file  di configurazione  le  righe vuote  vengono
+  ignorate  e  tutto  quello  che  segue un  carattere  ``\texttt{\#}''  viene
+  considerato un  commento.} di configurazione per ciascuna  di queste classi,
+che  viene inizia  col nome  di tab.~\ref{tab:sys_NSS_classes}  seguito  da un
+carattere ``\texttt{:}'' e  prosegue con la lista dei  \textsl{servizi} su cui
+le  relative informazioni sono  raggiungibili, scritti  nell'ordine in  cui si
+vuole siano interrogati.
 
-
-Questo ha portato alla creazione di un sistema di risoluzione più ampio, il
-\textit{Name Service Switch} di cui il \textit{resolver} viene a costituire un
-sottoinsieme. Questo sistema permette di definire in maniera generica
-(attraverso una serie di librerie dinamiche) sia i supporti su cui mantenere i
-dati di corrispondenza fra nomi e valori numerici, sia l'ordine in cui
-effettuare le ricerche sui vari supporti disponibili.  Il sistema è
-controllato dal file \file{/etc/nsswitch.conf}, ed anche per questo si può
-fare riferimento alle pagine di manuale ed al relativo capitolo nel manuale
-\cite{glibc} delle \textsl{glibc}.
-
-Il
-sistema è controllato dal file \file{/etc/nsswitch.conf}, ed anche per questo
-si può fare riferimento alle pagine di manuale ed al relativo capitolo nel
-manuale \cite{glibc} delle \textsl{glibc}.
+Ciascun servizio è specificato a sua volta da un nome, come \texttt{file},
+\texttt{dns}, \texttt{db}, ecc. che identifica la libreria dinamica che
+realizza l'interfaccia con esso, che per ciascuno di essi sarà realizzata in
+un file \texttt{libnss\_NAME} dove \texttt{NAME} è appunto il nome 
 
 
 
-Per questo motivo anche il sistema del \textit{resolver} è stato poi incluso
-all'interno del sistema sistema di risoluzione più ampio costituito dal
-\textit{Name Service Switch} che abbiamo visto in
-sez.~\ref{sec:sys_user_group}, dove sono previste le funzionalità di controllo
-per la risoluzione anche di questo tipo di corrispondenze.  Questo significa
-allora, per quanto riguarda la risoluzione dei nomi a dominio, che oltre ai
-file che abbiamo appena illustrato, dovremo tenere in considerazione anche il
-contenuto del file \file{/etc/nsswitch.conf}.
 
 In ogni caso, qualunque sia la modalità con cui ricevono i dati o il supporto
 su cui vengono mantenuti, e che si usino o meno funzionalità aggiuntive
 fornire dal sistema del \textit{Name Service Switch}, dal punto di vista di un
-programma che deve effettuare la risoluzione di un nome, tutto quello che
-conta sono le funzioni che il \textit{resolver} mette a
+programma che deve effettuare la risoluzione di un nome a dominio, tutto
+quello che conta sono le funzioni classiche che il \textit{resolver} mette a
 disposizione,\footnote{è cura della implementazione fattane nelle \acr{glibc}
   tenere conto della presenza del \textit{Name Service Switch}.} e sono queste
 quelle che tratteremo nelle sezioni successive.
index 3834b5183db003843f9cc527ecf917248c0a3950..8986058cf2f64076dbecf1ae9b7786405fffd65b 100644 (file)
@@ -930,7 +930,7 @@ dall'altra con il diffondersi delle reti la necessit
 informazioni degli utenti e dei gruppi per insiemi di macchine, in modo da
 mantenere coerenti i dati, ha portato anche alla necessità di poter recuperare
 e memorizzare dette informazioni su supporti diversi, introducendo il sistema
-del \textit{Name Service Switch} che tratteremo in dettaglio più avanti (in
+del \textit{Name Service Switch} che tratteremo brevemente più avanti (in
 sez.~\ref{sec:sock_resolver}) dato che la maggior parte delle sua applicazioni
 sono relative alla risoluzioni di nomi di rete.