Autoriõigus © 2001 Alexander Neundorf
LISa eesmärk on pakkuda omamoodi “võrgunaabrust”, kuid seda ainult TCP/IP protokollile toetudes, ilma igasuguse vajaduseta SMB või mille tahes järele.
See on nii LAN infoserveri (LISa) kui ka piirangutega LAN infoserveri (resLISa) käsiraamat
Sisukord
Näidete nimekiri
LISa eesmärk on pakkuda omamoodi “võrgunaabrust”, kuid seda ainult TCP/IP protokollile toetudes, ilma igasuguse vajaduseta Samba või mille tahes järele.
See on täiesti sõltumatu KDE/Qt™-st.
Töötavate masinate nimekirja pakutakse TCP pordi 7741 vahendusel.
LISa toetab masinate leidmist kahel viisil:
LISale võib anda IP aadresside vahemiku, misjärel LISa saadab ICMP echo nõuded kõigile määratud IP aadressidele ja ootab neilt vastust.
LISale võib anda korralduse käivitada nmblookup "*"
. Käsureavahend nmblookup peab olema paigaldatud koos Samba paketiga. Käsk nmblookup "*"
saadab ühendatud võrkudele leviteate ning kõik masinad, kus töötab SMB teenus, vastavad sellele.
Konfiguratsioonifailis määratakse IP aadresside vahemik, mida LISa kontrollib tuvastamaks, kas nad töötavad.
Kõige lihtsamal juhul on selleks sinu enda võrguaadress/alamvõrgumask, millisel juhul LISa kontrollib iga võimalikku masinat sinu võrgus tuvastamaks, kas see töötab.
Masinaid kontrollitakse ICMP echo nõuetega. Et olla võimeline saatma ja vastu võtma ICMP echo nõudeid ja vastuseid, tuleb avada niinimetatud “toorsokkel”. Seepärast läheb vaja administraatori (root
) õigusi. Sokkel tuleb avada kohe pärast rakenduse käivitamist ning pärast sokli edukat avamist loobutakse kohe administraatori õigustest (vaata main.cpp
ja strictmain.cpp
).
Kui LISa on seadistatud kasutama ka rakendust nmblookup, siis ta popen("nmblookup \"*\"")
ja seejärel analüüsib tulemusi.
Et ICMP nõuded ja leviteated võivad põhjustada omajagu võrguliiklust, kui ühes ja samas võrgus töötab mitu sellist serverit, teevad need serverid omavahel koostööd. Enne pingimist (või nmblookup rakendamist) saadavad nad leviteate porti 7741.
Kui keegi leviteatele vastab, saadakse vastajalt TCP pordi 7741 vahendusel töötavate masinate täielik nimekiri ning pingimine (või nmblookup) jäetakse ära.
Kui keegi ei vasta, alustab leviteate saatnud masin teiste masinate pingimist (või kasutab nmblookup-i) ja avab seejärel sokli, mis jälgib mainitud leviteateid. Kui masin saab oma leviteatele vastuse, ei pea ta avama soklit leviteadete kuulamiseks. Seetõttu on tavaliselt vaid ühel serveril see sokkel avatud ja just see üksainus server ka tegelikult pingib (või kasutab nmblookup-i) teisi masinaid.
Teisisõnu - serverid on laisad ja töötavad põhimõttel “ma teen midagi ainult siis, kui keegi teine seda minu eest ära ei tee”.
On veel üks omadus, mis kahandab võrgukoormust.
Oletame, et LISa on seatud uuendama iga 10 minuti järel. Kuid sa ei kasuta serverit just väga tihti. Kui keegi ei kasuta serverit viimase uuendamisperioodi jooksul, siis server võtab ette uuenduse (kas ise või masina abil, mis seda tegelikult teeb) ning kahekordistab uuendusintervalli, st. järgmine uuendus leiab aset 20 minuti pärast.
Nii juhtub kuni neli korda, see tähendab, et kui keegi ei kasuta serverit kümneminutilise uuendusperioodi kestel pikka aega, suureneb uuendusperiood lõpuks 160 minuti ehk peaaegu kolme tunnini. Kui keegi siis serveri andmeid kasutab, saab ta vana nimekirja (kuni 160 minutit vana). Serverit kasutades seatakse aga uuendusintervall taas esialgseks, st. 10 minutile, ning uuendus algab kohe, kui viimasest uuendusest on möödas enam kui 10 minutit. See tähendab, et kui said vastuseks vana nimekirja, võid mõne hetke pärast uuesti proovida ja vastuseks peaks olema tuttuus versioon.
Sellel on otsene mõju serveritele, mis ise ei pingi (või ei kasuta nmblookup-i), sest tavaliselt tarvitab neid vaid üks kasutaja, ning suhteliselt vähene mõju serverile, mis pingib (või kasutab nmblookup-i), sest seda serverit kasutavad kõik teised võrgu serverid.
Nii on võimalik, et paljud masinad võrgus kasutavad antud serverit, kuid võrgukoormus on ometi tagasihoidlik. Kasutaja seisukohalt pole eriti oluline teada, kas võrgus on ka server (st. nimeserver või failiserver või mis iganes), millel töötab LISa. Ta võib alati panna LISa oma masinas tööle ning LISa tuvastab ise, kas selline on olemas ja annab sellest ka kasutajale teada.
LISa esimene klient on KDE 2 IO moodul, nii et kasutaja võib anda käsu lan://localhost
või lihtsalt lan:/
, mis mõlemad võtavad ühendust LISaga samas süsteemis.
Kui tegemist on kogu aeg töötava masinaga ja kasutaja teab, et sellel töötab ka LISa, võib ta oma LISa klienti kasutada otseselt selle serveriga (mainitud IO mooduli puhul lan://serveri_nimi
).
Kui sa ei soovi, et LISa osaleks leviteadetes, vaid teeks alati ise pingi, pane ta kasutama mingit muud porti käsureavõtmega --port
või -p
. See ei ole siiski soovitatav!
Kui saata LISale SIGHUP, loeb see oma konfiguratsioonifaili uuesti. Kui saata LISale SIGUSR1, avaldab ta standardväljundis oma olekuinfo.
Üle sokli edastatavate andmete vorming on lihtne: <IP aadress kümnendkujul võrgubaidijärjekorras><üks tühik 0x20><masina täisnimi><lõpetav '\0'><reavahetus '\n'>
ja viimane rida 0 succeeded<'\n'>
Näide:
17302538 mingi_masin.misiganes.ee
18285834 linux.misiganes.ee
17827082 nimeserver.misiganes.ee
0 succeeded
Nii on see hõlpsasti analüüsitav.
Kui sinu võrgus valitsevad väga ranged turvareeglid, võib osa inimesi pingi pidada potentsiaalseks rünnakuks. Kui sellega tekib probleeme, proovi kasutada piirangutega versiooni resLISa.
Kui sinu võrgus valitsevad väga ranged turvareeglid või sa ei soovi avada veel mõnda porti või mis iganes põhjus ka ei oleks, on võimalik kasutada resLISa.
resLISa abil ei saa pingida kogu võrku ega aadressidevahemikku, praegu on võimalik anda resLISale kuni 64 masinat nime kaupa konfiguratsioonifailis. Neid siis pingitaksegi. Siiski saab kasutada ka nmblookup-i.
resLISa edastab infot ainult UNIX domeeni sokli kaudu, st. mitte üle võrgu. Sokli nimi on /tmp/resLisa-SinuKasutajanimi
, nii et resLISa on võimalik rahulikult lasta tööle panna ühel ja samal masinal enam kui ühe kasutaja poolt.
Et see ei tohi ometi tekitada turvariski, on mõttekas resLISa paigaldada setuid root
. Administraatori (root
) privileegidest loobutakse kohe pärast käivitamist (vaata strictmain.cpp
), neid läheb vaja ainult toorsokli loomiseks, et saata ICMP echo nõudeid.
Ka leviteateid ei saadeta ega võeta vastu. Ka siin on esimene klient KDE 2 IO moodul (näiteks rlan:/
Konqueroris).
Nüüd näide seadistusfailist:
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 #püütakse kasutada ka nmblookup-i FirstWait = 30 #30 sajandiksekundit SecondWait = -1 #ainult üks kord #SecondWait = 60 #proovi kaks korda ning teine kord oota 0,6 sekundit UpdatePeriod = 300 #uuendus 300 sekundi järel DeliverUnnamedHosts = 0 #ei avaldata masinaid ilma nimeta MaxPingsAtOnce = 256 #korraga saadetakse kuni 256 ICMP echo nõuet
See on ilmselt kõige tähtsam kirje.
Siin määratakse, milliseid aadresse pingitakse. Määrata saab mitu vahemikku, mida eraldavad semikoolonid.
Aadresse saab määrata neljal viisil:
192.168.100.0/255.255.255.0, st. IP aadress ja omistatud võrgumask.
See ei pea olema sinu masina võrguaadress ja võrgumask. Kui näiteks sinu enda aadress on 10.0.0.0/255.0.0.0, võid määrata ka ka 10.1.2.0/255.255.255.0, kui tunned huvi ainult nende aadresside vastu. IP aadressi ja võrgumaski kombinatsiooni peab eraldama kaldkriips “/” ning aadress ei pea olema reaalne võrguaadress, see võib olla ka soovitud võrgu masina aadress, st. 10.12.34.67/255.0.0.0 on sama, mis 10.0.0.0/255.0.0.0.
Näide: 192.168.100.10-192.168.199.19
IP aadress, millest pingimine algab, ja IP, millel pingimine lõpeb.
Aadresse peab eraldama märk “-”.
Antud näites on tulemuseks 199-100+1=100, 100*256=25 600, 25 600+(19-10+1)=25 590 aadressi
IP aadressi väljendatakse selle nelja numbriga ning igale neist võib määrata omaette vahemiku: 192-192.169-171.100-199.0-9
Antud näites pingitakse kõiki IP aadresse esimese numbriga 192, teise numbriga 168 kuni 168, kolmanda numbriga 100 kuni 199 ja viimase numbriga 0 kuni 9. See teeb kokku 1*1*100*10=1000 aadressi.
Sellel on tõenäoliselt mõtet ainult haruharva. Siin tuleb määrata kõigi nelja numbri vahemik, alati eraldajaks “-”.
Selle masina IP aadress või masinanimi, mille vastu sa erilist huvi tunned.
Selle kirje võib aga ka täiesti tühjaks jätta.
PingNames
Siin saab täiendavalt nimepidi määrata pingitavaid masinaid. Nimesid peavad eraldama semikoolonid.
Selle kirje võib aga ka täiesti tühjaks jätta.
AllowedAddresses
See on samuti väga tähtis. LISa pingib ainult aadresse, tunnustab kliente ja vastab leviteadetele aadressidelt, mis on antud sellele reale kirjutatud aadressidega. Lisada võib kuni 32 võrguaadressi/võrgumaski või üksikaadressi. Eraldajaks on semikoolon ja kindlasti ei tohi aadresside vahele jätta tühikut!
Näide: 192.168.0.0/255.255.0.0;192.169.0.0
Kogu võrk ja üks üksikaadress sobivad. Püüa alati teha see nii rangeks kui võimalik, tavaliselt on mõistlik valik sinu võrguaadress/võrgumask.
BroadcastNetwork
Selles kirjes on vaid üks võrguaadress/võrgumask. Sellele saadetakse võrgu leviteated. Tavaliselt peaks see olema sinu võrguaadress/võrgumask, näiteks 192.168.0.0/255.255.0.0
SearchUsingNmblookup
Siin saab anda parameetri 0
või 1
. Parameeter 1
tähendab, et LISa käivitab nmblookup "*"
ja analüüsib käsu väljundit. See tekitab vähem võrguliiklust kui pingimine, kuid saadakse vaid masinad, millel töötab SMB teenus (Windows® masinad või masinad, millel töötab Samba).
Selle lubamisel ning ka pingitavate IP aadresside määramisel rakendatakse kõigepealt nmblookup ja alles seejärel hakatakse pingima. Siis pingitakse ainult aadresse, mida ei ole juba tuvastatud nmblookup-iga. See kahandab veidi võrgukoormust.
FirstWait
Kui LISa pingib, st. saadab ICMP echo nõudeid, saadetakse hulk nõudeid korraga ja jäädakse seejärel vastust ootama siin määratud sajandiksekundiks. Tavaliselt on mõistlik valida 5 ja 50 sajandiksekundi vahel, maksimum on 99 (ehk 0,99 sekundit, mis on juba väga pikk aeg). Püüa hoida see väärtus võimalikult väike, kuid samas piisavalt suur, et leitaks kõik töötavad masinad.
SecondWait
Kui LISa on echo nõuded esimest korda välja saatnud, võib siiski juhtuda, et mõnda masinat ei leitud. Tulemuse parandamiseks võib LISa pingida ka teist korda. Sel korral pingitakse ainult neid masinaid, millelt vastust ei saadud. Kui tavaliselt annab juba esimene ping hea tulemuse, võib teise pingimise keelata, määrates SecondWait väärtuseks -1
.
Üldiselt on mõtet määrata lubamise korral selle väärtus veidi pikemaks kui FirstWait
väärtus, sest masinad, mida esimesel korral ei leitud, on tõenäoliselt aeglasemad või asuvad päris kaugel, nii et nende vastus võib võtta mõni millisekund rohkem aega. Tavaliselt on mõistlik väärtus 5 kuni 50 või ka -1, mis teise pingi keelab. Maksimum on 99 (ehk 0,99 sekundit, mis on väga pikk aeg).
UpdatePeriod
See on ajavahemik, mille järel LISa uuenduse ette võtab. Selle aja möödudes pingib LISa uuesti või rakendab nmblookup-i või hangib masinate nimekirja LISa serverilt, mis tegelikult pingib.
Kehtivad väärtused on 30 ja 1800 sekundi (pool tundi) vahel. Kui võrk on suur, ära määra intervalli liiga väikeseks (muidu kasvab võrgu koormus). Üsna mõistlikud väärtused jäävad 300 ja 900 sekundi ehk 5 ja 15 minuti vahele.
Pea meeles, et kui keegi serverit ei kasuta, suureneb intervall kahekordseks ja nii kuni neli korda järjest, mis tähendab, et intervall võib muutuda kuni 16 korda pikemaks siinmääratust, kuid see omandab kohe oma esialgse väärtuse, kui keegi serverit kasutab.
DeliverUnnamedHosts
Kui saadakse vastus echo nõudele IP aadressilt, mille korral LISa ei suuda nime määrata, edastatakse see ainult üle pordi, kui siin on väärtuseks määratud 1.
Ma ei ole päris kindel, kas see on väga kasulik võimalus, kuid võib ette tulla mingeid infrastruktuuri seadmeid võrgus, millele ei ole omistatud nime ja mida seetõttu ei avaldata. Määra väärtuseks 0, kui soovid neid varjatuna hoida ;-) Kui sa ei ole kindel, määra väärtuseks 0.
Pingides ehk echo nõudeid saates saadab LISa neid korraga teele terve hulga ja jääb siis vastuseid ootama. Vaikimisi saadetakse korraga 256 pingi ning enamasti ei ole seda väärtust vaja muuta. Kui see on palju suurem, võib echo nõuete vastuste vastuvõtmise sisemine puhver jääda väikeseks, kui see on liiga väike, on uuendamine aeglasem.
Näide 4.1. FIXME
Oled osa väikesest 24-bitise võrgumaskiga võrgust, st. võrgust kuni 256 masinaga:
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 #nmblookup-i ei kasutata FirstWait = 20 #20 sajandiksekundit SecondWait = 30 #30 sajandiksekundit teisel katsel UpdatePeriod = 300 #uuendus iga 300 sekundi järel DeliverUnnamedHosts = 0 #nimeta masinaid ei avaldata
Näide 4.2. Konfiguratsioonifail masinatele, kus töötab ainult SMB
Tunned huvi ainult masinate vastu, kus töötab SMB teenus ning võrgus ei ole ruutereid:
AllowedAddresses = 192.168.100.0/255.255.255.0 BroadcastNetwork = 192.168.100.0/255.255.255.0 SearchUsingNmblookup = 1 #kasutatakse nmblookup-i UpdatePeriod = 300 #uuendamine iga 300 sekundi järel DeliverUnnamedHosts = 0 #nimeta masinaid ei avaldata
Näide 4.3. Konfiguratsioonifail nii nmblookup-i kui pingimise kasutamisel
Sama võrk, kuid kasutusel on nii nmblookup kui pingimine.
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 #kasutatakse ka nmblookup-i FirstWait = 30 #30 sajandiksekundit SecondWait = -1 #ainult üks katse #SecondWait = 60 #kaks katset, teisel katsel oodatakse 0,6 sekundit UpdatePeriod = 300 #uuendus iga 300 sekundi järel DeliverUnnamedHosts = 0 #nimeta masinaid ei avaldata MaxPingsAtOnce = 256 #korraga saadetakse kuni 256 ICMP echo nõuet
Näide 4.4. resLISa seadistusfail
Nüüd siis resLISa konfiguratsioonifail. resLISa puhul ei ole kasutusel PingAddresses ega ka BroadcastNetwork.
PingNames = bb_mail;mingi_masin;mingi_muu_masin AllowedAddresses = 192.168.0.0/255.255.0.0 SearchUsingNmblookup = 1 # kasutatakse nmblookup-i FirstWait = 30 #30 sajandiksekundit SecondWait = -1 #ainult üks katse #SecondWait = 60 #kaks katset ja teisel katsel oodatakse 0,6 sekundit UpdatePeriod = 300 #uuendatakse iga 300 sekundi järel DeliverUnnamedHosts = 1 #avaldatakse ka nimeta masinad MaxPingsAtOnce = 256 #korraga saadetakse kuni 256 ICMP echo nõuet
Toetatud on järgmised käsurea võtmed:
-v
, --version
Näitab versiooni lühiinfot.
-h
, --help
Näitab ülevaadet käsurea võtmete kohta
-u
, --unix
Otsib esmalt $
, seejärel HOME
/.lisarc/etc/lisarc
. See on vaikekäitumine.
-k
, --kde1
Otsib esmalt $
, seejärel HOME
/.kde/share/config/lisarc$
.KDEDIR
/share/config/lisarc
-K
, --kde2
Otsib lisarc
kõigis kataloogides, mis tagastati kde-config
rakendamisel--path
config
-c
, --config=
FAIL
Loeb ainult FAIL
i, mitte muid konfiguratsioonifaile.
-p
, --port
PORDINUMBER
Käivtab serveri antud numbriga pordis. Selle kasutamisel ei pruugi LISa olla valmis koostööks teiste võrgus töötavate LISadega. resLISa korral ei ole see võti kasutatav.
Kui saadad LISale või resLISale hangup-signaali, loeb see uuesti oma konfiguratsioonifaili (killall
).-HUP lisa
Kui saadad LISale või resLISale User1-signaali, näitab see standardväljundis olekuinfot (killall
). Küll aga ei ole midagi näha, kui konsool, millelt LISa/resLISa käivitati, on töö lõpetanud.USR1 lisa
LISa jaresLISa autoriõigus 2000, 2001: Alexander Neundorf
Tõlge eesti keelde: Marek Laane (bald AT starman.ee)
Tundke rõõmu, Alexander Neundorf (neundorf AT kde.org)
Käesolev dokumentatsioon on litsenseeritud vastavalt GNU Vaba Dokumentatsiooni Litsentsi tingimustele.
Käesolev programm on litsenseeritud vastavalt GNU Üldise Avaliku Litsentsi tingimustele.
Sisukord
LISa ja resLISa vajavad libstdc++ (sellest kasutatakse ainult string-klassi), kuid ei vaja ei Qt™ ega KDE.
Et LISa oma süsteemis kompileerida ja paigaldada, anna LISa baaskataloogis järgmised käsud:
%
./configure
%
make
%
make install
Kuna LISa kasutab autoconf'i ja automake'i, ei tohiks kompileerimisel probleeme esineda. Kui neid siiski ette tuleb, anna sellest palun teada KDE meililistides.
Nii resLISa kui LISa avavad niinimetatud “toorsokli” ICMP echo nõuete (pingi) saatmiseks ja vastuvõtmiseks. Avamiseks vajavad nad administraatori (root
) privileege.
LISa pakub teenust TCP pordil 7441 ja peab olema paigaldatud administraatori (root
) poolt ning käivitatud koos süsteemi käivitamisega. Kuidas see täpselt välja näeb, sõltub suuresti sellest, milline on sinu operatsioonisüsteem.
resLISa on mõeldud käivitatama kasutajate kaupa, see ei paku midagi võrgule. See peab olema paigaldatud setuid root
.
Kui kasutad KDE 2 IO moodulit rlan
, käivitatakse resLISa automaatselt.
LISa loeb faili lisarc
, resLISa faili reslisarc
. Kui soovid neid mõlemat seadistada KDE juhtimiskeskuses, tuleb nad käivitada käsureavõtmega -K
.
Täpsemat infot selle kohta, kust nad oma konfiguratsioonifaile loevad, annab Peatükk 5, Käsurea võtmed ja muu kasutamisega seonduv.
Would you like to make a comment or contribute an update to this page?
Send feedback to the KDE Docs Team