<para>&lisa; è un programma progettato per fornire una specie di <quote>vicinato di rete</quote> usando solo la pila di protocolli TCP/IP, non è necessario <acronym>SMB</acronym> o altro.</para>
<para>Questo manuale copre sia il <acronym>LAN</acronym> Information Server (&lisa;) che il Restricted <acronym>LAN</acronym> Information Server (&reslisa;) </para>
<para>&lisa; è un programma progettato per fornire una specie di <quote>vicinato di rete</quote> usando solo la pila di protocolli TCP/IP, non <acronym>SMB</acronym> o altro.</para>
<para>Si può fornire a &lisa; una sequenza di indirizzi <acronym>IP</acronym>, in questo caso &lisa; invierà richieste di eco <acronym>ICMP</acronym> a tutti gli indirizzi <acronym>IP</acronym>, ed aspetterà le risposte.</para>
<para>Si può dire a &lisa; di eseguire <command>nmblookup</command> <option>"*"</option>. Lo strumento da linea di comando <command>nmblookup</command> del pacchetto Samba deve essere installato. <command>nmblookup</command> <option>"*"</option> invia una richiesta broadcast alle reti a cui siamo collegati, e tutti gli host dotati di servizi <acronym>SMB</acronym> risponderanno a questa trasmissione.</para>
<para>Nel file di configurazione si fornisce un elenco di indirizzi IP che &lisa; deve controllare per vedere se sono attivi.</para>
<para>Nel caso più semplice questo potrebbe essere l'indirizzo di rete/maschera di sottorete della stazione di lavoro. In questo caso, &lisa; verificherebbe tutti gli host della rete per vedere se è in esecuzione.</para>
<para>La verifica degli host è fatta usando richieste di eco <acronym>ICMP</acronym>. Per poter inviare e ricevere le richieste di eco <acronym>ICMP</acronym> e le risposte, il programma deve aprire un cosiddetto <quote>socket raw</quote>. Quindi ha bisogno dei privilegi di <systemitem class="username">root</systemitem>. Questo socket è aperto all'inizio dell'esecuzione del programma, e subito dopo l'apertura del socket i privilegi di root sono immediatamente lasciati cadere. (vedi <filename>main.cpp</filename> e <filename>strictmain.cpp</filename>).</para>
<para>Se &lisa; è configurato per usare <command>nmblookup</command>, eseguirà <literal>popen("nmblookup \"*\"")</literal> e ne valuterà il risultato.</para>
<para>Dal momento che le richieste <acronym>ICMP</acronym> e le trasmissioni broadcast possono congestionare la rete se c'è più di un server di questo tipo su una rete, i server cooperano tra di loro. Prima di iniziare i ping (o <command>nmblookup</command>), inviano una richiesta broadcast sulla porta 7741.</para>
<para>Se qualcuno risponde alla richiesta broadcast, ottengono la lista completa degli host attivi attraverso la porta <acronym>TCP</acronym> 7741 di chi ha risposto, e non eseguono alcun ping (o onym> 7741 di chi ha risposto, e non eseguono alcun ping (o <command>nmblookup</command>).</para>
<para>Se nessuno risponde, l'host che ha inviato la richiesta broadcast inizerà a fare ping (o <command>nmblookup</command>) sugli host e poi apre un socket in ascolto per la richiesta broadcast menzionata. Se l'host aveva ricevuto risposta alla richiesta, non apre alcun socket per l'ascolto di richieste broadcast. In questo modo, tipicamente, esattamente uno dei server avrà il socket aperto, e solo questo host eseguirà i ping (o <command>nmblookup</command>) per gli altri host. </para>
<para>In altre parole, i server sono pigri, lavorano pensando <quote>Farò qualcosa solo se nessun altro lo può fare al mio posto</quote>.</para>
<para>C'è un'altra funzione che riduce il carico di rete.</para>
<para>Diciamo che hai configurato &lisa; per un aggiornamento ogni dieci minuti. Ora non accedi molto spesso al server. Se nessuno accede al server per l'intero periodo fra un aggiornamento e l'altro, il server eseguirà un aggiornamento (o direttamente o attraverso quello che fa effettivamente il lavoro) e poi raddoppia il proprio periodo di aggiornamento, &ie; il successivo aggiornamento avverrà dopo venti minuti.</para>
<para>Questo avverrà quattro volte, per cui se nessuno accede al server con un periodo di aggiornamento di dieci minuti per molto tempo, l'intervallo di aggiornamento crescerà fino a centosessanta minuti, quasi tre ore. Se a questo punto qualcuno accede ai dati dal server, otterrà una lista vecchia (anche di centosessanta minuti). Accedendo al server si reimposta l'intervallo di aggiornamento al valore iniziale, &ie; dieci minuti, e se l'ultimo aggiornamento è più vecchio di dieci minuti, eseguirà un aggiornamento immediatamente. Quindi, se si ottiene una lista molto vecchia, si può riprovare dopo pochi secondi per avere una lista corrente.</para>
<para>Questo avrà un effetto evidente sui server che non fanno ping (o nmblookup) per proprio conto, dal momento che tipicamente un solo utente vi accederà, ed un effetto minore sul server che fa il ping (o <command>nmblookup</command>), visto che questo è interrogato dagli altri server della rete.</para>
<para>In questo modo è possibile che molti host di una rete abbiano questo server attivo, ma che il carico di rete rimanga basso. Per l'utente non è necessario sapere se c'è un server (&ie; un nameserver o un server di file o altro) sulla rete che contiene anche &lisa;, Può sempre attivare &lisa; in locale e &lisa; farà il necessario in modo trasparente per l'utente.</para>
<para>Il primo client di &lisa; è un ioslave di &kde; 2, quindi si può accedere alla rete con l'URL <userinput>lan:://localhost/</userinput> o <userinput>lan:/</userinput>, che contattano entrambi &lisa; sulla macchina locale.</para>
<para>Se c'è una macchina sempre accesa e questa ha &lisa; abilitato, si può usare direttamente il client &lisa; con il server attivo su questa (cioè con l'ioslave menzionato <userinput>lan://nome_del_server/</userinput>).</para>
<para>Volendo evitare che &lisa; prenda parte alla rete di broadcast, ma faccia la scansione in modo autonomo, si può forzare l'uso di una porta differente con l'opzione da linea di comando <option>--port</option> o <option>-p</option>. L'uso di questa opzione nel caso generale è vivamente sconsigliato!</para>
<para>&lisa; rilegge il file di configurazione ogni volta che riceve un <command>SIGHUP</command>. Inoltre, stampa su stdout alcune informazioni sul proprio stato.</para>
<para>I dati forniti sul socket hanno un formato molto semplice: <computeroutput><indirizzo ip decimale in network byte order><uno spazio 0x20><nome completo dell'host><uno '\0' di terminazione><a-capo '\n'<</computeroutput> e l'ultima linea <computeroutput>0 succeeded<'\n'></computeroutput> </para>
<para>Su una rete con politica di sicurezza molto stretta, i ping potrebbero essere considerati un potenziale attacco. Se questo è un problema, prova ad usare &reslisa;.</para>
<para>Se la rete ha regole di sicurezza molto strette, e non vuoi avere un'ulteriore porta aperta, puoi usare &reslisa;.</para>
<para>Con &reslisa; non si possono eseguire ping a reti o sequenze di indirizzi, si può solo passare a &reslisa; fino a sessantaquattro host per nome nel file di configurazione. Questi riceveranno il ping. Si può ancora usare <command>nmblookup</command>.</para>
<para>&reslisa; fornisce l'informazione solo su un socket di dominio unix, &ie; non sulla rete. Il nome del socket è <filename>/tmp/resLisa-TuoLoginName</filename>, in modo che &reslisa; possa essere lanciato da più utenti della macchina contemporaneamente.</para>
<para>&reslisa; può essere installato setuid <systemitem class="username">root</systemitem>, visto che non dovrebbe porre rischi di alcun tipo per la sicurezza. I privilegi di<systemitem class="username">root</systemitem> vengono lasciati cadere subito dopo la partenza (vedi <filename>strictmain.cpp</filename>), e sono usati solo per creare il socket raw usato per inviare le richieste <acronym>ICMP</acronym>.</para>
<para>Inoltre, non invia o riceve richieste broadcast. Il suo primo client è anche un ioslave di &kde; 2 (<userinput>rlan:/</userinput> in &konqueror; per esempio.)</para>
<para>192.168.100.0/255.255.255.0, &ie; un indirizzo <acronym>IP</acronym> con la maschera di rete assegnata.</para>
<para>Questo non deve essere necessariamente l'indirizzo e la maschera di rete della tua macchina. Per esempio, se la tua rete è 10.0.0.0/255.0.0.0, puoi specificare 10.1.2.0/255.255.255.0 se ti interessano solo questi indirizzi. La combinazione indirizzo <acronym>IP</acronym>-maschera di rete deve essere separata da una barra <quote>/</quote> e l'indirizzo non deve essere un vero indirizzo di rete, può anche essere l'indirizzo di un host della rete desiderata, &ie; 10.12.34.67/255.0.0.0 equivale a 10.0.0.0/255.0.0.0 .</para>
<para>un indirizzo <acronym>IP</acronym> può essere rappresentato con quattro numeri decimali, e si possono specificare sequenze per ciascuno dei quattro numeri: 192-192.169-171.100-199.0-9 </para>
<para>In questo esempio tutti gli indirizzi <acronym>IP</acronym> il cui primo ottetto è 192, il secondo 168, il terzo da 100 a 199 e l'ultimo da 0 a 9 riceveranno un ping, per un totale di 1*1*100*10=1000 indirizzi.</para>
<para>Questo è probabilmente utile molto raramente. Si possono fornire sequenze per ciascuno dei quatto numeri, sempre divise da <quote>-</quote>. </para>
<para>Anche questo è molto importante. &lisa; eseguirà ping agli indirizzi, accetterà client e risponderà a messaggi broadcast solo dagli indirizzi coperti dalla serie di indirizzi inserita in questa linea. Si possono inserire fino a 32 indirizzi di rete/maschere di rete od indirizzi singoli. Questi vanno separati con ';' e non vanno lasciati spazi tra uno e l'altro.</para>
<para>Una rete intera ed un singolo indirizzo sono validi. Cerca sempre di essere il più preciso possibile. Solitamente, l'uso del tuo indirizzo di rete/maschera di sottorete è una buona scelta.</para>
<para>Questa voce contiene esattamente una coppia indirizzo di rete/maschera di sottorete. Di solito va bene quella della rete locale, per esempio: 192.0.0/255.255.0.0</para>
<para>Qui si può inserire <parameter>0</parameter> o <parameter>1</parameter>. <parameter>1</parameter> indica che &lisa; eseguirà <command>nmblookup</command> <option>"*"</option> ed analizzerà l'outout del comando. Questo produce meno traffico di rete rispetto all'uso di ping, ma verranno riconosciute solo le macchine con il servizio <acronym>SMB</acronym> attivo (cioè macchine &Windows; o macchine con samba attivo).</para>
<para>Abilitando questa opzione e fornendo anche un indirizzo <acronym>IP</acronym> a cui fare ping, verrà prima eseguito <command>nmblookup</command> ed in seguito il ping. In questo modo verranno scanditi con ping solo gli indirizzi che non hanno reagito alla richiesta <command>nmblookup</command>. Questo dovrebbe alleggerire un poco il carico di rete.</para>
<para>Se &lisa; esegue un ping, &ie; invia richieste di eco <acronym>ICMP</acronym>, ne manda un gruppo di seguito, e poi aspetta per il numero di centesimi di secondo specificato qui. Di solito valori compresi tra 5 e 50 vanno bene, il massimo è 99 (0.99 secondi, un tempo molto lungo). Prova a rendere questo valore il più piccolo che permetta di trovare ancora tutti gli host attivi.</para>
<para>Dopo che &lisa; ha inviato le richieste di eco la prima volta, può darsi che alcuni host non vengano trovati. Per migliorare i risultati, &lisa; può eseguire un ping per un'altra volta. Questa volta verranno scanditi solo gli host da cui non si è ricevuta risposta. Se ottieni buoni risultati con un solo ping, puoi disabilitare la seconda scansione impostando SecondWait a <userinput>-1</userinput></para>
<para>Altrimenti può essere una buona idea aumentare questo valore rispetto a quello di <option>FirstWait</option>, visto che gli host che non sono stati trovati al primo tentativo sono probabilmente più lenti o più lontani, e quindi possono aver bisogno di qualche millisecondo in più per rispondere. Valori fra 5 e 50 sono adeguati; il massimo è 99, e -1 disabilita la seconda scansione.</para>
<para>Questo è l'intervallo di tempo dopo il quale &lisa; si aggiornerà. Trascorso questo lasso di tempo, &lisa; farà di nuovo ping o <command>nmblookup</command>, o richiederà nuovamente la lista di host dal server &lisa;.</para>
<para>I valori validi vanno da 30 a 1800 secondi (cioè mezz'ora). Su una rete molto grande, l'intervallo non deve essere troppo basso (per tenere basso il carico di rete). Valori compresi tra 300 e 900 secondi (da 5 a 15 minuti) vanno bene.</para>
<para>Ricorda che il periodo di aggiornamento è raddoppiato se nessuno accede al sever fino a quattro volte, quindi l'intervallo diventerà sedici volte più lungo di quello qui specificato se nessuno accede al server.</para>
<para>Se viene ricevuta la risposta ad una richiesta di eco da un indirizzo IP di cui &lisa; non riesce a determinare il nome, questa verrà pubblicata sulla porta solo se questa opzione è impostata ad 1.</para>
<para>Non so se questa è una caratteristica utile, ma forse ci sono dei dispositivi di infrastruttura nella rete senza nomi assegnati, in modo che non debbano essere pubblicati. Se vuoi tenerli segreti :-), imposta questo valore a zero. In caso di dubbio, inserisci 0</para>
<para>Quando fa una scansione, &lisa; invia un gruppo di richieste di eco ed aspetta una risposta. Normalmente sono eseguiti 256 ping di seguito, e di solito non è necessario cambiare questo valore. Aumentandolo troppo, i buffer di ricezione delle richieste di eco diventano troppo piccoli, e quindi l'aggiornamento rallenta.</para>
<para>Cerca prima in <filename>$<envar>HOME</envar>/.lisarc</filename>, poi in <filename>/etc/lisarc</filename>. Questo è il comportamento predefinito.</para>
<para>Cerca prima nel file <filename>$<envar>HOME</envar>/.trinity/share/config/lisarc</filename> e poi in <filename>$<envar>TDEDIR</envar>/share/config/lisarc</filename>.</para>
<para>Cerca il file <filename>lisarc</filename> in tutte le cartelle restituite dall'esecuzione di <userinput><command>tde-config</command> <option>--path</option> <parameter>config</parameter></userinput></para>
<para>Avvia il server su questo numero di porta. Usando questa opzione, &lisa; non potrà cooperare con altre sue istanze sulla rete. L'opzione non è disponibile per &reslisa;</para>
<para>Inviando un segnale Hangup a &lisa; o &reslisa; questi rileggeranno i file di configurazione (<userinput><command>killall</command> <option>-HUP lisa</option></userinput>).</para>
<para>Inviando un segnale User1 a &lisa; o &reslisa; questi stamperanno sul canale di output standard alcune informazioni sul loro stato (<userinput><command>killall</command> <option>-USR1 lisa</option></userinput>). Se la console da cui &lisa; o &reslisa; sono stati lanciati è stata chiusa, non si otterrà alcun messaggio.</para>
<para>Sia &reslisa; che &lisa; aprono un cosiddetto <quote>socket raw</quote> per inviare e ricevere richieste di eco <acronym>ICMP</acronym> (ping). Per fare ciò, richiedono privilegi di <systemitem class="username">root</systemitem>.</para>
<para>&lisa; offre un servizio sulla porta <acronym>TCP</acronym> 7741, e dovrebbe essere installato da <systemitem class="username">root</systemitem> ed avviato alla partenza del sistema. Come fare ciò è un fattore pesantemente dipendente dal sistema operativo in uso.</para>
<para>&reslisa; è progettato per essere avviato dall'utente, e non offre niente alla rete. Deve essere installato setuid <systemitem class="username">root</systemitem>.</para>
<para>Usando il tdeioslave <userinput>rlan</userinput> da &kde; 2, &reslisa; può essere avviato in modo automatico.</para>
<para>&lisa; legge il file <filename>lisarc</filename>, &reslisa; legge <filename>reslisarc</filename>. volendo configurare i due programmi da &kcontrol;, questi vanno avviati con l'opzione <option>-K</option>.</para>
<para> Per maggiori informazioni su dove trovino i file di configurazione, vedi il capitolo su <xref linkend="command-line-options"/>.</para>