LISa-håndbogen
LISa-håndbogen
næste

LISa-håndbogen

Alexander Neundorf

Oversætter: Erik Kjær Pedersen
revision 0.01.00 (2001-07-07)

LISa er beregnet til at give en slags “netværksomgivelse”, men afhænger kun af TCP/IP-protokollen, hverken SMB eller lignende kræves.

Dette er en håndbog både for LAN informationsserveren (LISa) og den begrænsede LAN informationsserver (resLISa)


Kapitel 1. Indledning
Indledning
forrige
næste

Kapitel 1. Indledning

LISa er beregnet til at give en slags “netværksomgivelse”, men afhænger kun af TCP/IP-protokollen, ikke SMB eller noget andet.

Den er fuldstændig uafhængig af KDE/Qt™.

Listen over værtsmaskiner som kører findes via TCP-porten 7741.

LISa understøtter to måder at finde værtsmaskiner:

  1. Du angiver et interval med IP-adresser til LISa, derefter sender LISa en ICMP-ekkoforespørgsel til alle angivne IP-adresser, og venter på svar.

  2. Du kan fortælle LISa at den skal køre nmblookup "*". Kommandolinjeværktøjet fra Samba-pakken nmblookup skal være installeret. nmblookup "*" sender en broadcast til de tilsluttede netværk, og alle værtsmaskiner som kører en SMB-tjeneste svarer på denne broadcast.

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Kapitel 2. Hvordan det virker
Hvordan det virker
forrige
næste

Kapitel 2. Hvordan det virker

I indstillingsfilen angiver du et interval af IP-adresser som LISa skal kontrollere for at se om de kører.

I det enkleste tilfælde kan dette være din IP-adresse/undernetsmaske. I såfald kontrollerer LISa hver mulig værtsmaskine på netværket for at se om den kører.

Værtsmaskinerne undersøges med ICMP-ekkoforespørgsler. For at kunne sende og modtage ICMP-ekkoforespørgsler og svare skal programmet åbne en såkaldt “rå sokkel” (raw socket). Derfor behøver det root-rettigheder. Denne sokkel åbnes lige efter programmet er startet, og efter at have åbnet soklen med heldigt resultat, så slippes root-rettighederne med det samme (se main.cpp og strictmain.cpp).

Hvis du indstiller LISa så den også bruger nmblookup, kommer den til at køre popen("nmblookup \"*\"") og siden tolke resultatet.

Eftersom ICMP-forespørgsler og broadcast kan forårsage en del netværkstrafik hvis der findes mere end en sådan server som kører i et netværk, samarbejder serverne med hinanden. Inden de begynder at lave kald med ping (eller nmblookup), sender de en broadcast på port 7741.

Hvis nogen svarer på denne broadcast, henter de den fuldstændige liste på værtsmaskiner som er startede via TCP-porten 7741 fra denne værtsmaskine og begynder ikke at kalde med ping (eller nmblookup).

Hvis ingen svarer, så begynder værtsmaskinen som sendte broadcasten at kalde værtsmaskiner med ping (eller nmblookup) og åbner derefter en sokkel som lytter efter de ovennævnte broadcast. Hvis værtsmaskinen modtog et svar på broadcasten, har den ikke soklen som lytter efter broadcaster åben. Så almindeligvis har præcis en af serverne denne sokkel åben og kun denne kommer virkelig til at kalde med ping (eller nmblookup) til værtsmaskinerne.

Med andre ord så er serverne dovne, de arbejder ifølge “Jeg gør kun noget hvis ingen anden kan gøre det for mig”.

Der er en anden funktion som reducerer netværksbelastningen.

Lad os antage at du indstillede LISa til at opdatere hver 10. minut. Nu kommer du ikke til serveren særlig ofte. Hvis ingen kommer til serveren i den sidste opdateringsperiode, kommer serveren til at opdatere (enten selv, eller fra den som virkelig gør jobbet) og derefter fordoble opdateringsperioden, dvs. næste opdatering vil ske om 20 minutter.

Dette sker fire gange, så hvis ingen kommer til serveren med en opdateringsperiode på 10 minutter i lang tid, så øges dens opdateringsperiode til 160 minutter, næsten tre timer. Hvis nogen siden kommer efter data fra serveren, får de en gammel liste (op til 160 minutter gammel). Når dette sker nulstiller serveren sin opdateringsperiode til den oprindelige værdi, dvs. 10 minutter, og starter umiddelbart en opdatering hvis den seneste opdatering gjordes for mere end 10 minutter siden. Dette betyder at hvis du får en meget gammel liste, kan forsøge igen om nogle sekunder, så vil du få en aktuel version.

Dette vil have en hurtig effekt for serverne, som ikke kalder med ping (eller nmblookup) selv, eftersom kun en eneste oftest kommer til dem, og det har mindre effekt på serveren som laver kaldet (eller nmblookup), eftersom denne server kan kommes til fra alle andre servere i netværket.

På denne måde er det muligt at mange værtsmaskiner i et netværk kører denne server, men den totale belastning forbliver lav. For brugeren er det ikke nødvendigt at vide om der findes en server (dvs en navneserver eller filserver eller noget andet) i netværket som også kører LISa. Brugeren kan altid køre LISa lokalt og LISa opdager om der er en, transparent for brugeren.

Den første klient for LISa er en I/O-slave for KDE 2, så brugeren kan indtaste enten lan://localhost/ eller lan:/ hvilket vil kontakte LISa på det egne systemet.

Hvis der findes en maskine som kører hele tiden og brugeren véd at denne maskine også kører LISa, kan LISa-klienten bruges direkte med denne server (altså med den ovennævnte I/O-slave lan://server_navnet/).

Hvis du ikke ønsker at din LISa skal deltage i broadcasten, men altid gøre broadcasterne selv, så brug en anden port med kommandolinjeflaget --port eller -p. Dette anbefales ikke!

Hvis du sender SIGHUP til LISa, læser den sin indstillingsfil igen. Hvis du sender SIGUSR1 til LISa, udskriver den en del statusinformation på standardudskriften.

Data som sendes via soklen har et enkelt format: <decimal IP-adresse i netværkets byte-rækkefølge><et blankt tegn 0x20><fuldstændigt navn på værtsmaskinen><et afsluttende '\0'><nylinje '\n'< og den sidste linjen 0 succeeded<'\n'>

For eksempel,

17302538 en_værtsmaskine.etsted.dk
18285834 linux.etsted.dk
17827082 navneserver.etsted.dk
0 succeeded

Dette bør gøre det let at tolke.

Hvis der er meget strenge sikkerhedsregler i dit netværk, kan nogen opfatte et kald med ping som et potentielt angreb. Hvis du har problemer med dette, så prøv med den begrænsede udgave, resLISa.

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Kapitel 3. resLISa
resLISa
forrige
næste

Kapitel 3. resLISa

Hvis du har meget strenge sikkerhedsregler i dit netværk, eller hvis du ikke vil have en anden port åben eller noget andet, kan du bruge resLISa.

Med resLISa kan du ikke kalde hele netværk og adresseintervaller med ping, men du kan give resLISa for nærværende op til 64 værtsmaskiner med navn i dens indstillingsfil. Disse vil blive kaldet. Du kan stadigvæk bruge nmblookup.

resLISa sender også kun informationen via en sokkel i Unix-domænet, dvs ikke via netværket. Navnet på soklen er /tmp/resLisa-DitIndlogningsnavn, så resLISa kan køres sikkert af flere brugere på samme maskine.

Eftersom den ikke bør kunne være en sikkerhedsrisiko af nogen slags er det sikkert at installere resLISa setuid root. root-rettighederne slippes direkte efter opstart (se strictmain.cpp), de behøves kun for at oprette en direkte sokkel til at sende ICMP-ekkoforespørgsler.

Den sender eller tager heller ikke imod broadcaster. Den første klient for den er en I/O-slave for KDE 2 (for eksempel rlan://localhost/ i Konqueror).

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Kapitel 4. Indstillingsfilen
Indstillingsfilen
forrige
næste

Kapitel 4. Indstillingsfilen

Her er et eksempel på en indstillingsfil:

PingAddresses = 192.168.100.0/255.255.255.0;192.168.100.10-192.168.199.19;192.168.200.1;192-192.168-168.100-199.0-9;
PingNames = bb_mail;
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                #forsøg også med nmblookup
FirstWait = 30                          #30 hundrededels sekunder
SecondWait = -1                         #kun et forsøg
#SecondWait = 60                         #forsøg to gange, og vent 0,6 sekunder anden gang
UpdatePeriod = 300                      #opdatér efter 300 sek
DeliverUnnamedHosts = 0                 #vis ikke værtsmaskiner uden navn
MaxPingsAtOnce = 256                    #send op til 256 ICMP-ekkoforespørgsler på én gang

PingAddresses

Dette er formodentlig den vigtigste indgang.

Her angiver du hvilke adresser som skal kaldes med ping. Du kan angive flere intervaller, som afgrænses med semikolon.

Der findes fire mulige måder at definere adresser:

IP-adresse/netværksmaske

192.168.100.0/255.255.255.0, dvs. en IP-adresse og den tildelte netværksmaske.

Dette behøver ikke være IP-adressen og netmasken på din maskine. Hvis du for eksempel har 10.0.0.0/255.0.0.0 som din egen adresse, skulle du kunne angive 10.1.2.0/255.255.255.0 hvis du kun er interesseret i disse adresser. Den kombinerede IP-adresse og netværksmasken skal afgrænses med en skråstreg “/” og adressen behøver ikke være en rigtig netværksadresse, den kan også være en værtsmaskineadresse i det ønskede netværk, dvs.10.12.34.67/255.0.0.0 er det samme som 10.0.0.0/255.0.0.0 .

et interval med IP-adresser

For eksempel: 192.168.100.10-192.168.199.19

En IP-adresse hvor kald med ping begynder og en anden IP-adresse hvor kald slutter.

Begge adresser skal være opdelte med et “-”.

For dette eksempel ville det resultere i 199-100+1 = 100, 100*256 = 25 600, 25 600+(19-10+1) = 25 590 adresser

En IP-adresse, representeret ved interval for hver af de fire decimaltal.

En IP-adresse kan repræsenteres ved sine fire decimaltal, og du kan angive interval for hvert af disse fire tal: 192-192.169-171.100-199.0-9

I dette eksempel kommer alle IP-adresser med det første tal 192, det andet tal fra 168 til 168, det tredje tal fra 100 op til 199 og det sidste tal fra 0 op til 9 til at blive kaldt med ping. Dette skulle give 1*1*100*10 = 1 000 adresser.

Dette er formodentlig kun anvendeligt i et fåtal af tilfælde. Her skal du angive interval for hvert fjerde tal, altid afgrænsede med “-”.

En enkel IP-adresse eller et værtsmaskinenavn

IP-adressen eller værtsmaskinenavnet for en maskine som du er særligt interesseret i.

Det er også gyldigt at lade denne indgang være tom.

PingNames
PingNames

PingNames

Her kan du desuden angive navn for værtsmaskiner som skal kaldes med ping. Navnene skal separeres med semikolon.

Det er også gyldigt at lade denne indgang være tom.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

AllowedAddresses
AllowedAddresses

AllowedAddresses

Dette er også meget vigtigt. LISa kommer kun til at kalde adresser med ping, acceptere klienter og svare på broadcaster fra adresser som dækkes af adresserne som angives på denne linje. Du kan tilføje op til 32 IP-adresser/netmasker eller enkelte adresser. Adskil dem med semikolon, og anvend ingen mellemrum mellem adresserne!

For eksempel, 192.168.0.0/255.255.0.0;192.169.0.0

Et helt netværk eller en enkelt adresse er gyldig. Gør altid dette så begrænset som muligt, oftest er din IP-adresse/delnetmaske et godt valg.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

BroadcastNetwork
BroadcastNetwork

BroadcastNetwork

Denne indgang indeholder præcis en IP-adresse/delnetmask. Broadcaster sendes til denne adresse. Sædvanligvis skal dette være din egen IP-adresse/delnetmaske, for eksempel 192.168.0.0/255.255.0.0



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

SearchUsingNmblookup
SearchUsingNmblookup

SearchUsingNmblookup

Her kan du angive 0 eller 1. 1 betyder at LISa kører nmblookup "*" og tolker udskriften fra denne kommando. Dette giver mindre netværkstrafik end kald med ping, men du får kun rede på værtsmaskiner som har en SMB-tjeneste i gang (Windows®-maskiner eller maskiner som kører Samba).

Hvis du aktiverer dette, og desuden angiver IP-adresser for kald med ping, så køres nmblookup først og derefter starter kaldet. Så kaldes kun adresser som ikke allerede afledtes fra nmblookup. Dette burde mindske netværksbelastningen en lille smule.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

FirstWait
FirstWait

FirstWait

Hvis LISa kalder med ping, dvs hvis den sender ICMP-ekkoforespørgsler, sender den et antal forespørgsler på en gang, og ventar siden så mange hundrededels sekunder som du angiver her. Oftest er værdier fra 5 til 50 gode, den maksimale værdi er 99 (som giver 0,99 sekunder, en meget lang tid). Forsøg at sætte denne værdi så lavt som muligt mens alle værtsmaskiner som er startede stadigvæk findes.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

SecondWait
SecondWait

SecondWait

Efter LISa har sendt ekkoforespørgsel første gang, kan det være muligt at visse værtsmaskiner ikke blev fundet. For at forbedre resultatet, kan LISa kalde en gang til. Denne gang kaldes kun værtsmaskiner som den ikke fik noget svar fra. Hvis du får et godt resultat med kun at kalde en gang, kan du lukke af for den anden gang ved at angive -1 for SecondWait.

Ellers kan det være en god idé at gøre denne værdi noget større end værdien for FirstWait, eftersom de værtsmaskiner som ikke blev fundet ved det første forsøg formodentlig er langsommere eller længere væk så at de tager nogle millisekunder længere at svare. Oftest er værdier fra 5 til 50 gode, eller -1 for at lukke for den anden afsøgning. Den maksimale værdi er 99 (som giver 0,99 sekunder, en meget lang tid).



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

UpdatePeriod
UpdatePeriod

UpdatePeriod

Dette er intervallet som LISa venter inden en opdatering. Efter den her tiden gør LISa et kald med ping eller nmblookup eller henter listen med værtsmaskiner fra LISa-serveren som virkelig udfører kaldet.

Gyldige værdier er mellem 30 sekunder og 1800 sekunder (en halv time). Hvis du har et stort netværk, gør så ikke intervallet for lille (for at holde netværksbelastningen lav). Værdier fra 300 til 900 sekunder (5 til 15 minutter) bør være en god idé.

Husk at opdateringsperioden fordobles hvis ingen kommer til serveren, op til fire gange, så intervallet bliver 16 gange den værdi som angives her og nulstilles til værdien som angives her hvis nogen kommer til serveren.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

DeliverUnnamedHosts
DeliverUnnamedHosts

DeliverUnnamedHosts

Hvis et svar på en ekkoforespørgsel modtages fra en IP-adresse hvor LISa ikke kan afgøre navnet, sendes den kun via porten hvis du indstiller dette til 1.

Jeg er ikke sikker på at dette er en anvendelig funktion, men måske findes der nogle infrastrukturenheder i netværket som ikke har navne tilldelt, så at de ikke behøver at publiceres. Vælg 0 her hvis du vil lade dem være hemmelige. Vælg 0 hvis du er usikker.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

MaxPingsAtOnce
MaxPingsAtOnce

MaxPingsAtOnce

Når LISa sender kald med ping (ekkoforespørgsler), sender den et antal på en gang og venter derefter på svaret. Normalt sendes 256 kald på en gang, og du behøver oftest ikke ændre på denne værdi. Hvis du gør den meget større, kan de interne buffere for modtagelse af svarene på ekkoforespørgsler blive for små. Hvis du gør det for lille bliver opdatering langsommere.



Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Yderligere tre eksempler på filer
Yderligere tre eksempler på filer

Yderligere tre eksempler på filer

Eksempel 4.1. AT GØRE

Du er medlem i et lille netværk med 24-bits netværksmaske, dvs. op til 256 værtsmaskiner.

PingAddresses = 192.168.100.0/255.255.255.0
AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 0                         #anvend ikke nmblookup
FirstWait = 20                                   #20 hundrededels sekunder
SecondWait = 30                                  #30 hundrededels sekunder ved andet forsøg
UpdatePeriod = 300                               #opdatér efter 300 sek
DeliverUnnamedHosts = 0                          #vis ikke værtsmaskiner uden navn

Eksempel 4.2. Indstillingsfil for værtsmaskiner som kun kører SMB

Du er kun interesseret i værtsmaskiner som kører SMB-tjenesten og du har ingen routere i netværket.

AllowedAddresses = 192.168.100.0/255.255.255.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                #anvend nmblookup
UpdatePeriod = 300                      #opdatér efter 300 sek
DeliverUnnamedHosts = 0                 #vis ikke værtsmaskiner uden navn

Eksempel 4.3. Indstillingsfil som anvender både nmblookup og kald med ping

Samme netværk, men her bruges både nmblookup og kald med ping.

PingAddresses = 192.168.100.0/255.255.255.0
PingNames = bb_mail
AllowedAddresses = 192.168.0.0/255.255.0.0
BroadcastNetwork = 192.168.100.0/255.255.255.0
SearchUsingNmblookup = 1                #forsøg også med nmblookup
FirstWait = 30                          #30 hundrededels sekunder
SecondWait = -1                         #forsøg kun en gang
#SecondWait = 60                         #forsøg to gange, og vent 0,6 sekunder anden gang
UpdatePeriod = 300                      #opdatér efter 300 sek
DeliverUnnamedHosts = 0                 #vis ikke værtsmaskiner uden navn
MaxPingsAtOnce = 256                    #send op til 256 ICMP-ekkoforespørgsler på en gang

Eksempel 4.4. Indstillingsfil for resLISa

Og nu en indstillingsfil for resLISa, PingAddresses bruges ikke af resLISa, ikke heller BroadcastNetwork.

PingNames = bb_mail;en_værtsmaskine;en_anden_værtsmaskine
AllowedAddresses = 192.168.0.0/255.255.0.0
SearchUsingNmblookup = 1                # anvend nmblookup
FirstWait = 30                          #30 hundrededels sekunder
SecondWait = -1                         #kun et forsøg
#SecondWait = 60                         #forsøg to gange, og vent 0,6 sekunder anden gang
UpdatePeriod = 300                      #opdatér efter 300 sek
DeliverUnnamedHosts = 1                 #vis ikke værtsmaskiner uden navn
MaxPingsAtOnce = 256                    #send op til 256 ICMP-ekkoforespørgsler på én gang


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Kapitel 5. Kommandolinjeflag og øvrig brug
Kommandolinjeflag og øvrig brug
forrige
næste

Kapitel 5. Kommandolinjeflag og øvrig brug

Følgende kommandolinjeflag understøttes:

-v, --version

Udskriver kortfattet versionsinformation.

-h, --help

Giver en oversigt over kommandolinjeflag

-u, --unix

Led først efter $HOME/.lisarc, derefter efter /etc/lisarc. Dette er den normale opførsel.

-k, --kde1

Led først efter $HOME/.kde/share/config/lisarc, derefter efter $KDEDIR/share/config/lisarc.

-K, --kde2

Leder efter filen lisarc i hver mappe som returneres ved at køre kde-config --path config

-c, --config=FIL

Læs FIL og ingen anden indstillingsfil.

-p, --port PORTNR

Start serveren med dette portnummer. Hvis du bruger dette kommer LISa ikke til at kunne samarbejde med andre LISa-programmer på netværket. Dette er ikke tilgængeligt for resLISa

Hvis du sender signalet SIGHUP til LISa eller resLISa, kommer den til at læse sin indstillingsfil igen (killall -HUP lisa).

Hvis du sender signalet SIGUSR1 til LISa eller resLISa, udskriver den en del statusinformation til standardudskriften (killall -USR1 lisa). Du ser ingenting hvis terminalen hvor LISa/resLISa startedes er afsluttet.

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Kapitel 6. Medvirkende og licenser
Medvirkende og licenser
forrige
næste

Kapitel 6. Medvirkende og licenser

LISa og resLISa ophavsret 2000, 2001, Alexander Neundorf

Dansk oversættelse Erik Kjær Pedersen

Hav det godt, Alexander Neundorf

Dokumentation er udgivet under betingelserne i GNU Free Documentation License.

Dette program er udgivet under betingelserne i GNU General Public License.

forrige
næste
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

Appendiks A. Installation
Installation
forrige

Appendiks A. Installation

Indholdsfortegnelse

Andre krav

LISa og resLISa behøver libstdc++ (de bruger strengklassen derfra), de behøver ikke Qt™ eller KDE.

For at kompilere og installere LISa på dit system, skal du skrive følgende i basismappen for distributionen for LISa :

% ./configure
% make
% make install

Idet LISa bruger autoconf og automake skulle du ikke få problemer med at kompilere den. Hvis du skulle løbe ind i problemer så rapportér dem til KDE's e-post-lister.

Andre krav

Både resLISa og LISa åbner en såkaldt “rå sokkel” (raw socket) for at sende og modtage ICMP-ekkoforespørgsler (kald med ping). For at kunne gøre dette, behøver de root-rettigheder.

LISa sørger for en tjeneste på TCP-porten 7741, og skal installeres af root og startes når systemet sættes i gang. Det afhænger meget af operativsystemet hvordan dette kan opnås.

resLISa er beregnet til at startes pr brugere, den sørger ikke for noget til netværket. Den skal installeres setuid root.

Hvis du bruger rlan I/O-slaven fra KDE 2, kan resLISa startes automatisk.

LISa læser filen lisarc, resLISa læser filen reslisarc. Hvis du vil kunne indstille begge fra kontrolcentret, skal du starte dem med kommandolinjeflaget -K.

For mere information om hvor de leder efter indstillingsfiler, læs kapitlet om Kapitel 5, Kommandolinjeflag og øvrig brug.

forrige
hjem


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team

næste
 


Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team