NetWare zdarma
Milan Keršláger, 11. května 1998
There once was a master programmer who wrote unstructured
programs. A novice programmer, seeking to imitate him, also began
to write unstructured programs. When the novice asked the master
to evaluate his progress, the master criticized him for writing
unstructured programs, saying: "What is appropriate for the master
is not appropriate for the novice. You must understand the Tao
before transcending structure."
-- Geoffrey James, "The Tao of Programming"
Novell NetWare
Novell NetWare (NW) je stabilní hvězdou na nebi lokálních sítí,
kde umožňuje stanicím sdílet různá zařízení prostřednictvím
počítačové sítě. Pracuje na základě architektury klient-server.
Klienty zde jsou stanice, které sdílejí disky serveru,
společné tiskárny, CD-ROM a podobně. Servery tak mají
v síti výsadní postavení a jsou u nich kladeny vysoké nároky
na výkon a spolehlivost. To vedlo firmu Novell k vývoji vysoce
specializovaného operačního systému, který sice prakticky umí téměř
jen sdílet své disky, ale zato to umí perfektně. Staví se tak
do zcela vyhraněné pozice, kdy na rozdíl od Unixů nekoncentruje
veškeré programy a prostředí pro jejich spouštění do jediného místa,
ale přenechává maximální možnou míru povinností na stanicích. Ty
musí mít vlastní operační systém a NetWare se stará pouze o to, aby
se stanicím zdálo, že všechna sdílená zařízení se nacházejí přímo
u stanice samotné. Spuštěné programy pak běží přímo na jednotlivých
stanicích a iluze se sdílenými zařízeními je pro ně tak dokonalá,
že s nimi dokáží pracovat téměř všechny programy, i když pro provoz
v síti původně vůbec nebyly napsány.
Před tím, než může uživatel z nějaké stanice využívat sdílených
zařízení poskytovaných serverem, musí se k němu přihlásit, čili
prokázat mu svou identitu pomocí jména a hesla. Pokud se uživatel
úspěšně přihlásí, jsou mu na oplátku až do odhlášení poskytovány
veškeré zdroje, které smí daný uživatel užívat. Práva k užívání
jsou evidována na serveru a uživatelům je přiděluje správce
(administrátor) systému.
Linux, se kterým pracujeme, má o mnoho větší možnosti,
než server s Novell NetWare. Proto se nelze divit, že je v jeho
silách dokonce emulovat činnost samotného NetWare serveru. Linux
se pak navenek mimo jiné tváří, jako by byl NetWare serverem.
Nedosahuje sice takových kvalit jako jeho specializovaný kolega,
ale přesto ho může nahradit více než se ctí. Připočteme-li k tomu
prakticky nulovou cenu a mnohostrannost samotného Linuxu, který
můžeme současně používat na spoustu dalších věcí, začne být tento
rys velice zajímavý.
Co je Mars a Linware?
Pokud se Linux chce stát zdánlivým NetWare serverem, musí
umět komunikovat pomocí protokolu IPX, je třeba implementovat NCP
protokol a musí se do sítě začít ohlašovat pomocí SAP protokolu. Čím
lépe bude takto napodobovat svůj vzor, tím lépe pro nás. Tuto službu
jsou schopny zastat dva programy: Mars a Linware.
Linware - český produkt
Autorem Linware (ftp://platan.vc.cvut.cz/pub/linux/lwared-0.95/)
je Aleš Dryák z ČVUT v Praze. S vývojem skončil v roce 1995. V roce
1996 tento projekt ožil, když se Aleš sešel s Petrem Vandrovcem a
Jirkou Novákem. J. F. Chadima pak provedl zásadní zásah do kódu,
který vedl do slepé uličky a fakticky k zastavení projektu. Petr
a Jirka pak ještě sice Linware trošku upravili, ale dnes na jeho
dalším vývoji prakticky nikdo nepracuje. Linware je dnes ve funkčním
stavu, ale pro jeho další pokračování je ho nutné prakticky celý
přepsat. Zde se nabízí možnost pro kohokoliv, kdo by měl vůli tento
zajímavý projekt a konkurenci Marsu vést dál.
Mars
Mars (http://www.compu-art.de/download/mars_nwe.html) (Martin
Stovers NetWare Emulator) je původem z Německa a je neustále
zdokonalován. Dnes Mars poskytuje téměř všechny služby jako Novell
NetWare verze 3.12. Na jeho vývoji spolupracuje více lidí z celého
světa a i Martin na projektu stále pracuje. Jak sám píše, hlavním
důvodem, který ho přiměl k uvolnění Marsu do volného užívání, bylo
uveřejnění Linware.
Společné rysy Marsu a Linware
Disky určené ke sdílení jsou ve skutečnosti určité adresáře
v lokálním filesystému Linuxu a uživatelé, kteří se do emulátorů
přihlašují, odpovídají každý normálnímu uživateli v Linuxu. NW
přístupová práva pak vyplývají z Unixových práv uživatele k souborům
a adresářům, protože jsou na uživatele uplatňována stejným způsobem,
jako kdyby pracoval přímo v Linuxu (protože program, který soubory
z disku čte a zasílá mu je na stanici, běží s jeho UID/GID).
Ve sdílených adresářích lze použít symbolických linek, ale nelze je
omezit na konkrétní podstrom.
Ani jeden emulátor nezavádí implementaci klasických NW práv
k adresářům a souborům, se kterými jejich vzor výhradně pracuje.
Vede to k jistým omezením, ale na druhou stranu to maximálně
zjednodušuje funkci emulátorů. Nepříjemnost tak může způsobit
program, který pátrá po právech v adresáři, protože díky této
filozofii žádná práva nenajde i přes to, že má do adresáře přístup.
Do budoucna se můžeme těšit na implementaci NW práv v Marsu, kterou
již Martin Stower v konferenci oznámil.
Hesla pro Linux a pro emulátor jsou vedena zvlášť, protože
při autentifikaci do emulátoru nevyhovuje systém používaný v Unixu,
kde jsou hesla šifrována tak, že z uložené zakódované podoby nelze
zpětně zjistit původní heslo. Výskyt dvou různých hesel na jednom
počítači tak může být zdrojem drobných potíží pro uživatele systému.
Na druhou stranu oba programy umožňují měnit heslo do emulátoru
klasickými NW utilitami přímo ze stanice pomocí funkcí protokolu NCP
stejným způsobem, jako měníme heslo na NetWare serveru.
Hlavní rozdíly mezi Marsem a Linware
Pokusím se stručně popsat hlavní rozdíly mezi oběma programy,
které jsou vidět zvenčí. Nebudu se zabývat ani vlastní stavbou obou
programů ani jejich testováním například na rychlost, stabilitu
a jiná další měřítka. Spolu s vybudováním kvalitní metodiky je
to námět nejméně na jednu větší samostatnou práci.
Mars je složen z více programů, ale navenek pracujeme jen
s jedním. Každého připojeného uživatele obsluhuje samostatný proces.
Má jen jeden konfigurační soubor, který je poměrně obsáhlý,
přehledný a jednotlivé volby jsou v něm dobře dokumentovány.
Nastavit lze téměř vše a jen velmi málo voleb je nastavitelných
pouze při kompilaci, což přispívá k uživatelskému komfortu. Mars
umí vytvořit tiskové fronty, do kterých můžeme zasílat tiskové
úlohy a také tiskový server, který může odebírat úlohy z jiných
NW tiskových front. Z front mohou být úlohy směrovány přímo
do linuxového tiskového systému nebo lze využít jakýkoliv jiný
tiskový server, který se dokáže na NW tiskové fronty napojit.
Bindery databáze je uložena v samostatných souborech a obsahuje
i zakódovaná hesla uživatelů. Mezi nejsympatičtější rys patří
podpora dlouhých jmen, takže z Windows 95 lze pracovat i s dlouhými
názvy (v NetWare je to tzv. OS/2 namespace) na NW discích.
Dokumentace je přiměřená, v německém jazyce obsáhlejší.
Linware je jen jeden jediný démon, který sám obsluhuje všechny
připojené uživatele. Potřebuje ovšem pro korektní běh dva další démony
IPXRIPD a IPXSAPD. Konfigurační soubor je jeden a je
oproti Marsu nepoměrně skromější. Linware nepodporuje tiskové fronty,
nemá bindery databázi. Hesla jsou uložena v zakódované podobě ve
speciálním souboru /etc/lwpasswd. Hlavní výhodou Linware je
vlastnost, že umí zkracovat dlouhá jména a umožňuje tak i v prostředí
DOSu editovat soubory s dlouhými jmény, což je výhodné například pro
úpravy WWW stránek z Windows 3.x, které jsou na mnoha místech stále
používány pro svoji nenáročnost. Na druhé straně neposkytuje soubory
s dlouhými názvy pomocí OS/2 namespace, což může být na překážku.
Dokumentace je stručná. Linware potřebuje pro svou činnost
patch na jádro, a tak se nevyhneme jeho kompilaci.
Bootování stanic pomocí BootROM
Abychom omezili šíření virů ve své počítačové síti, je vhodné
i přes to, že máme v každé stanici harddisky, bootovat stanice
pomocí BootROMek ze serveru. Obrazy bootovacích disket jsou
na serveru chráněny před viry a my máme k dispozici po restartu
stanice čistý a hlavně funkční počítač. BootROMky používají
k otevírání obrazů na serveru stadardní funkce NCP protokolu,
takže lze bootovat i z obrazů umístěných na emulátorech. Výjimkou
jsou BootROMky, které používají výhradně RPL protokol. Ten není
v Linuxu implementován a tak máme v tomto ohledu smůlu. Bootovat je
samozřejmě možné i bezdiskové stanice.
Nasazení Marsu a Linware aneb jak je mám rád
Oba emulátory provozuji již poměrně dlouho. Dětské nemoci
mají už za sebou a lze je poměrně seriózním způsobem využívat.
Linware používám pro jeho schopnost zkracovat dlouhá jména souborů
pro sdílení domácích adresářů Linuxu. Uživatelé tak mohou například
snadno upravovat své WWW stránky z DOSu nebo Windows 3.x. Mars jsem
nasadil do jedné učebny ve škole, kde je 11 bezdiskových stanic,
které bootují pomocí BootROM a provozuje se na nich DOS a Windows
3.x. Linux nahradil NW server, běží na něm WWW server, proxy,
obstarává dial-up a podobně. Subjektivním pozorováním lze říci, že
ani po zdvojnásobení operační paměti z 16 na 32MB a výměně procesoru
486DX4/100 za Pentium 120 nedosahuje sdílení disků rychlosti
původního NW serveru. Problémy jsou zejména v situaci, kdy stanice
s Windows 3.x používají odkládací soubor na sdílených discích.
Kontrolka HDD se rozsvítí a stanice na dlouhé vteřiny doslova
ztuhnou. Problém bude nejspíše v optimalizaci přístupu k disku,
která pro tento účel v Linuxu asi není nejvhodnější. Celkový přínos
výměny OS (při dnešních cenách hardware) ovšem považuji přesto
za kladný. Na ostatních místech, kde jsem Mars instaloval, pracuje
více než uspokojivě, protože neplní úlohu jediného serveru se
spoustou bezdiskových stanic, a nejsou na něj tak kladeny extrémní
nároky.
Závěr
Pokud si myslíte, že Mars nebo Linware může plně nahradit
NetWare servery od Novellu, zažijete nejspíše zklamání.
Profesionální řešení od firmy Novell vyniká v mnoha ohledech,
zejména však v rychlosti, nenáročnosti na hardware a komplexnosi
nabízených služeb. Konkurovat však nemůže v požadavcích
na flexibilitu, univerzálnost a hlavně cenu. To je místo, kam Mars
a Linware patří a kde jistě cítíte i vy sílu Linuxu. Nezbývá, než se
smířit s daným stavem věcí a využít především silné stránky každého
řešení.
výheň