IPX v Linuxu aneb NetWare zdarma

Úvod do IPX

S protokolem IPX se setkáváme denně zejména v lokálních počítačových sítích (LAN), kde je nasazen operační systém (OS) Novell Netware (NW). Dá se říci, že IPX je jednoduchým příbuzným protokolu IP. Právě jeho jednoduchost z něj učinila krále v LAN a jeho podpora umožňuje Linuxu pronikat i do heterogenních sítí, které IPX využívají.

Ethernetové rámce

Zřejmě nejrozšířenějším médiem pro LAN jsou sítě typu Ethernet. Základem přepravy dat na těchto sítích jsou tak zvané rámce, které umožňují přepravovat jakákoliv data mezi jednotlivými počítači. Skládá se z hlavičky, těla (obsahuje přenášená data, tedy paket vyšší vrstvy - například IP nebo IPX) a traileru (zakončení rámce s kontrolním součtem). V hlavičce najdeme identifikaci rámce, typ přenášených dat a hardwarovou adresu jak odesílatele, tak příjemce (označovaná také jako fyzická MAC adresa). Podle této adresy síťové rozhraní dokáže samo rozeznat rámce, které jsou mu určeny a nemusí tak rušit počítač zbytečnými přerušeními. Rámec je závislý na použitém přepravním médiu. Když datagram opouští Ethernet a je dále přepravován například po sériové lince, jsou zachována pouze data z těla rámce a ta pak putují dále obalena jiným přepravním protokolem.

Abychom neměli pocit, že je všechno jednoduché, existuje více norem, které předepisují, jak má hlavička rámce v sítích typu Ethernet vypadat (viz tab. 1). Síťová karta musí umět správně dekódovat přijatý rámec, jinak ho může považovat za chybný. Proto je vhodné používat na segmentu pokud možno jen jeden rámec a nepřivádět jak síťovou kartu tak administrátora do schizofrenického stavu. Otázkou pak ovšem zůstává, který rámec je ten pravý.

Název rámceCharakteristika
Ethernet 802.2 standard firmy Novell pro 4.x, umí přepravovat pouze IPX/SPX
Ethernet 802.3 standard firmy Novell do 3.x, umí přepravovat pouze IPX/SPX
Ethernet II umí přepravovat IPX/SPX i TCP/IP, nejrozšířenější, nejjednodušší
Ethernet SNAP umí přepravovat IPX/SPX i TCP/IP
Tab. 1: Ethernetové rámce

Pokud chcete používat ve své síti protokol TCP/IP, nevyhnete se použití jednoho z posledních dvou rámců. Nejvýhodnějším je určitě Ethernet II, protože je nejjednodušší ze všech a hlavně je univerzální (lze v něm přepravovat kromě IPX/SPX a TCP/IP spoustu dalších protokolů). O rámci 802.2 se někdy říká, že je přenášen v rámci 802.3 (při použití paketového analyzátoru se tak jeho struktury jeví). Ethernet SNAP je kombinací rámců 802.2 a 802.3. Rozumný důvod, proč firma Novell tak vehementně prosazovala právě první dva, neznám. Dnes je prioritním protokolem pro Novell NetWare 5.x protokol TCP/IP (s rámcem Ethernet II), i když je nadále možné používat jakékoliv další kombinace IPX protokolu s ostatními rámci.

Někdy není možné na jednom segmentu vystačit jen s jedním rámcem, protože například některé BootROM nebo stanice se staršími ovladači rámec Ethernet II neumí. Ovšem určitě platí, že v jednoduchosti je síla. Proto raději důkladně zvažte, co všechno Vám na segmentu bude běhat. Neexistuje žádný důvod, proč by neměl být rámec Ethernet II používán. Osobně používám na segmentech jen jeden rámec (Ethernet II) a ostatní přidávám jen v případě nezbytné nutnosti (pro BootROM).

Dělení na více sítí

Protože rámce neobsahují možnost, jak je jednoduše směrovat mezi více segmenty (ani to není jejich úkol), je směrování zajištěno protokolem vyšší vrstvy, v našem případě tedy protokolem IPX. Adresa se v IPX datagramu skládá z čísla uzlu a čísla sítě. Číslo uzlu kopíruje MAC adresu síťové karty. Číslo sítě je volitelné, je však nutné dodržet několik zásad: Každý segment musí mít jiné číslo sítě a pokud provozujeme na jednom segmentu více rámců, pak i každý rámec musí mít různá čísla sítí. Všechna síťová rozhraní na jednom segmentu se stejným rámcem používají stejná čísla sítí. Ty určuje administrátor při instalaci serverů a pokud dojde ke konfliktu, v horším případě to vyřadí z provozu celý segment. Stanice si obvykle zjistí číslo sítě ze serveru sama, bez nutnosti přesné konfigurace.

Vnitřní sítě

Vnitřní sítě (tzv. internal network) slouží pro snadné směrování datagramů ze stanic na místo, které Vám poskytuje nějakou službu. Vnitřní číslo sítě proto potřebuje jen server, stanice bez něj bude pracovat a vlastně ho ani na nic nepotřebuje. Vnitřní číslo sítě definuje jakousi virtuální síť uvnitř serveru, na které sice není určen žádný rámec, ale přes to musí být její číslo jedinečné a nesmí se tedy shodovat s jiným číslem sítě v naší lokální síti.

Spolupráce Linuxu s NetWare servery

Servery Novell NetWare nejčastěji komunikují se stanicemi pomocí protokolu IPX, ten je ovšem pouze přepravním protokolem. Dnes můžeme jako přepravní protokol využít také TCP/IP a překročit tak mnohem větší vzdálenosti než s protokolem IPX, ovšem konfigurace síťových rozhraní u stanic je pak výrazně složitější. Navíc je podpora TCP/IP pro NetWare na straně Linuxu zatím v plenkách. Proto se dále budeme zabývat pouze první a zatím zřejmě také nejrozšířenější variantou.

Konfigurace IPX v Linuxu

Základem konfigurace je podpora protokolu IPX v jádře Linuxu. Podpora protokolu IPX musí být povolena při kompilaci (CONFIG_IPX). Pokud ji máme připravenu jako modul, musíme ho nejprve do jádra ručně zavést (neplatí pro nejnovější verzi NCP utilit). Pokud podporu IPX v jádru nemáme, nezbude nám nic jiného, než si přeložit jádro znovu. Ukázka je uvedena v části o NCP utilitách. Pak je potřeba správně nakonfigurovat síťové rozhraní, k čemuž potřebujeme několik utilit, které najdeme v balíku ncpfs. V tomto balíku se nachází většina utilit, které pro práci s IPX budeme v Linuxu potřebovat. Uživatelům distribuce RedHat 5.1 stačí nainstalovat balík ncpfs-2.0.11-5.i386.rpm nebo podobný, IPX je v jádrech k dispozici jako modul.

Síťové rozhraní můžeme nechat nakonfigurovat automaticky, pokud je na síti už IPX používáno. Automatickou konfiguraci obstarává jádro odposlechem provozu na síti. Pokud na síti není žádný IPX provoz, musíme rozhraní nakonfigurovat ručně. Pro běžný provoz automatickou konfiguraci nedoporučuji, protože Windows'95 vysílají do sítě chybné pakety a to pak může vést k nesprávnému rozpoznání čísla sítě a používaných typů rámců, proto je vhodná spíše jen pro první kroky. Pro manuální konfiguraci potřebujete znát číslo sítě pro každý používaný rámec. Pokud ho nevíte, informujte se u svého administrátora.

Automatická konfigurace:

    modprobe ipx
    ipx_configure --auto_interface=on --auto_primary=on
    cat /proc/net/ipx_*
Automatickou konfiguraci je vhodné zkontrolovat podle výpisu souboru /proc/net/ipx_interface, který obsahuje seznam všech registrovaných IPX rozhraní včetně typů rámců a čísel sítí. Automatické nakonfigurování rozhraní může chvíli trvat (cca 10-30 vteřin).

K ruční konfiguraci IPX rozhraní slouží utilita ipx_interface Právě jedno rozhraní by mělo být přepínačem -p označeno jako primární. Takové rozhraní je považováno za implicitní a je použito, když v programu při otevírání soketu neuvedeme číslo sítě. Tvar použití příkazu vypadá takto:

    ipx_interface činnost [-p] rozhraní typ_rámce číslo_sítě

Činnost Popis
add přidává IPX rozhraní, vždy je nutné uvést název rozhraní a typ rámce. Pokud není uvedeno číslo sítě, je zjištěno odposlechem.
del ruší na uvedeném rozhraní uvedený rámec
delall ruší všechna rozhraní
check zobrazí konfiguraci příslušného rozhraní
Tab. 2: Volby příkazu ipx_interface

Typ rámce může být 802.2 pro rámec Ethernet 802.2, 802.3 pro rámec Ethernet 802.3, EtherII pro rámec Ethernet II a Snap pro rámec Ethernet SNAP.

Příklad ruční konfigurace rozhraní pro rozhraní eth0, rámec Ethernet II, číslo sítě 12 (primární interface) a rámec 802.3, číslo sítě 13:

    modprobe ipx
    ipx_interface add -p eth0 etherii 12
    ipx_interface add    eth0 802.3   13

Po těchto krocích si můžeme ověřit konfiguraci například takto:

    monkey:~# cat /proc/net/ipx_interface
    Network    Node_Address   Primary  Device     Frame_Type
    00000012   00A024D6F9F9   Yes      eth0       EtherII
    00000013   00A024D6F9F9   No       eth0       802.3

    monkey:~# cat /proc/net/ipx_route
    Network    Router_Net   Router_Node
    00003333   00000012     0020AFF67402
    00001111   00000013     0020AFF67402
    00000013   Directly     Connected
    00000012   Directly     Connected

    monkey:~# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:A0:24:D6:F9:F9
              inet addr:10.1.1.1  Bcast:10.1.1.255  Mask:255.255.255.0
              IPX/Ethernet II addr:00000012:00A024D6F9F9
              IPX/Ethernet 802.3 addr:00000013:00A024D6F9F9
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:587 errors:0 dropped:0 overruns:0
              TX packets:141 errors:0 dropped:0 overruns:0
              Interrupt:10 Base address:0x6100

Správnou funkci síťového rozhraní můžeme ověřit například výpisem dostupných NetWare serverů pomocí příkazu slist:

    monkey:~> slist
    Known NetWare File Servers     Network   Node Address
    -----------------------------------------------------
    PRUM                           0003333   000000000001
    PAT                            0001111   000000000001

Pokud bychom chtěli nakonfigurovaná rozhraní z nějakého důvodu zrušit, mohli bychom postupovat například takto (na Vašem systému nemusí být nutně použity všechny uvedené příkazy):

    ipx_configure --auto_interface=off --auto_primary=off
    ipx_interface delall
    rmmod ipx

Linux jako IPX směrovač

Pokud si to budeme přát, Linux může fungovat jako směrovač IPX protokolu mezi různými sítěmi. Směrování je prováděno na úrovni jádra operačního systému podle údajů ve směrovací tabulce IPX (vypsat si ji můžeme už zmíněným příkazem cat /proc/net/ipx_route. Tuto činnost Linux vykonává podobně jako NW server a stejně jako on musí ohlašovat ostatním směrovačům a stanicím, jaké jsou dostupné sítě a zárověn musí sám dle hlášení ostatních směrovačů automaticky upravovat své směrovací tabulky pro IPX protokol. O tuto činnost se stará zvláštní program. Tento zvláštní program bývá označován jako démon a stačí ho vlastně jen spustit. O vše ostatní se postará sám, pokud před tím správně nakonfigurujeme všechna síťová rozhraní, což už ale perfektně umíme. Zajímavé je, že pokud budeme používat program Mars, o kterém ještě bude řeč, nebudeme démona potřebovat, protože je přímo součástí Marsu. To je velmi sympatické, i když možná někdy už méně praktické.

NCP utility

Abychom mohli k Linuxu připojovat disky z NetWare (NW) serverů, tisknout na síťových tiskárnách a využívat dalších služeb nabízených NCP protokolem, potřebujeme NCP utility. Součástí poslední verze je i patch pro jádro, který přináší některá vylepšení. V současné době je v Linuxu na velmi dobré úrovni podpora tzv. bindery databáze (NW 3.x). Podpora NDS je zatím v počátcích a vázne zejména na přístupu firmy Novell k tomuto problému. V každém případě je dnes buď možné na serverech verze 4.x zapnout emulaci bindery nebo použít stávající podporu NDS, která sice umožňuje připojovat disky z NW serveru, ale chybí utility pro manipulaci s NDS.

Pokud jsme připojeni k NW serveru, utility toto spojení používají. Jestliže při spuštění utility nejsme k žádnému serveru připojeni, utility se po spuštění nejprve přihlásí k NW serveru, pak provedou požadovanou činnost a na závěr se od serveru odpojí.

Kompilace a instalace balíku NCPFS

Pojídačům RPM balíků je třeba říct, že by bylo dobré nejprve odinstalovat současný balík a pak teprve kompilovat. Zkušenější uživatelé nebudou jistě mnoho rad potřebovat (nebo je naleznou na nějakém jiném místě).

    cd /usr/src
    tar xzf ncpfs-2.2.0.9.tgz
    cd ncpfs-2.2.0.9
    make
    make install

Kompilace jádra

Patchování jádra není nutné, nebudeme však mít k dispozici vylepšení uvedená za volbou NCP filesystem support.
    cd /usr/src
    tar xzf linux-2.0.35.tar.gz
    zcat ncpfs-2.2.0-kernel-2.0.34.gz | patch -s -p0
Při konfiguraci jádra nezapomeneme na podporu IPX protokolu a NCP filesystému, který umožňuje připojovat (mountovat) NW disky do našeho Linuxu. Samozřejmě zvolíme volby dle svého uvážení a potřeb.
    monkey:/usr/src/linux# make config
    [...]
    The IPX protocol (CONFIG_IPX) [Y/m/n/?]
    [...]
    NCP filesystem support (to mount NetWare volumes) (CONFIG_NCP_FS) [Y/m/n/?]
       Packet singatures (CONFIG_NCPFS_PACKET_SIGNING) [Y/n/?]
       Proprietary file locking (CONFIG_NCPFS_IOCTL_LOCKING) [N/y/?]
       Clear remove/delete inhibit when needed (CONFIG_NCPFS_STRONG) [Y/n/?]
       Use NFS namespace if available (CONFIG_NCPFS_NFS_NS) [Y/n/?]
       Use LONG (OS/2) namespace if available (CONFIG_NCPFS_OS2_NS) [N/y/?]
       Allow mounting of volume subdirectories (CONFIG_NCPFS_MOUNT_SUBDIR) [Y/n/?]
    [...]
    monkey~# make dep clean zImage modules modules_install
Signování paketů je obrana proti spoofingu. Spoofing je metoda zabývající se vyslání datagramu tak, aby se zdálo, že odešel z jiné stanice než ve skutečnosti (například jako z té, kde sedí SUPERVISOR). Automatické odstraňování atributu remove/delete inhibit slouží k tomu, aby Linux uměl smazat i soubor, který má nastaven atribut zákazu smazání/přejmenování. Atribut je před smazáním souboru odstraněn jen v případě, že je to potřeba. Podpora NFS a OS/2 namespace umožňuje přenos dlouhých jmen uložených na NW svazku do Linuxu. Bohužel jsou krátká jména (8+3) v OS/2 namespace přenášena velkými písmeny, což je trochu nepříjemné. Pro připojování NW disků s dlouhými jmény je proto lepší používat NFS namespace. Poslední volba umožňuje připojování jen určeného podstromu (obdoba MAP ROOT) místo klasického způsobu, kdy jsou do přípojného místa připojeny všechny svazky (volume) serveru.

Konfigurační soubor ~/.nwclient

Většina utilit využívá konfigurační soubor ~/.nwclient, který má uživatel ve svém domácím adresáři. V tomto souboru si můžeme předdefinovat servery, jména i hesla. Protože hesla jsou velmi citlivou záležitostí, musí být soubor čitelný jen pro vlastníka (chmod 600 ~/.nwclient), jinak s ním utility odmítnou pracovat. Záznamy v souboru se dělí na řádky s tímto pořadím údajů: Jméno_serveru/jméno_uživatele případné_heslo

Příklad souboru ~/.nwclient:

    # Osobní účet, raději bez hesla (heslo bude nutné vkládat pokaždé ručně)
    PRUM/RENE.HUZVA
    # Anonymní účet na serveru BIMBO, bez hesla
    BIMBO/GUEST -
    # Poloveřejný účet pro návštevy s heslem pižďuch
    PRUM/NAVSTEVA pizduch
Pokud takový soubor nemáme, je potřeba uvádět jméno serveru a uživatelské jméno na každé příkazové řádce.

Základní utility

Příkaz Popis příkazu Ekvivalent v NW 3.x
slist výpis známých NW serverů v síti slist
nwuserlist výpis uživatelů připojených k NW serveru userlist
nsend zasílání zpráv uživatelům send
ncopy NW file copy (v rámci jednoho serveru) ncopy
nwpasswd změna NW hesla setpass
nwfsinfo informace o NW serveru ???
ncpmount připojení disků z NW
ncpumount odpojení NW disků
Tab. 3: Základní utility

ncpmount a ncpumount

Tyto příkazy slouží k připojování a odpojování NW disku k Linuxu a jak jejich název napovídá, jsou to blízcí příbuzní známých příkazů mount a umount. Rozdílným pojetím systémů však nelze na připojených NW discích pracovat s NW přístupovými právy. Unixová práva a vlastníky lze jednotně nastavit pouze při připojování disku a to pro celý připojovaný strom.
    ncpmount -S server -U uživatel /home/huzva/novell
    ncpmount /home/huzva/novell
Při připojování je registrováno UID uživatele, který operaci provedl, a tak může připojování a odpojování provádět každý uživatel (pokud jsou obě utility SUID root), protože je mu dovoleno odpojit jen svá připojení. V následující tabulce jsou uvedeny parametry příkazové řádky, prvních šest je možné použít i u většiny ostatních utilit.

PřepínačPopis přepínačeImplicitní hodnota
-S server jméno připojovaného NW serveru první v .nwclient
-U uživatel jméno uživatele na NW serveru podle .nwclient
-b přihlášení k bindery přihlášení k NDS
-P heslo uživatelovo heslo podle .nwclient
-n uživatel nemá heslo podle .nwclient
-b připojit se v režimu bindery pokud lze, nejprve k NDS
-V svazek připojit pouze tento svazek připojit všechny svazky
-u UID uživatel vlastnící připojený strom aktuální uživatel
-g GID skupina vlastnící připojený strom aktuální skupina
-f práva přístupová práva k souborům 0755
-d práva přístupová práva k adresářům 0755
Tab. 4: Parametry příkazové řádky

Utility pro tisk

V prostředí NW jsou k dispozici tiskové fronty (print queue) a tiskové servery (print server). Fronty slouží k řazení tiskových úloh od klientů. Zde úlohy čekají, až si tiskový server úlohu vyzvedne a vytiskne ji na připojené tiskárně. Tiskové fronty jsou umístěny na serveru a tiskový server běží na počítači, ke kterému je připojena tiskárna (může to být jak server sám, tak obyčejná stanice).

Příkaz Popis příkazu Ekvivalent v NW 3.x
pqlist výpis dostupných tiskových front na NW serveru pconsole
pserver print server pro NW tiskové fronty pconsole
pqstat výpis úloh v tiskové frontě pconsole
pqrm odstranění úlohy z tiskové fronty pconsole
nprint klient pro tisk do NW tiskových front nprint
Tab. 4: Utility pro tisk

Další utility jsou popsány na URL uvedených na konci dokumentu.

NetWare zdarma - Mars

Co je Mars?

Mars je emulátor NW serveru, což znamená, že se z vnějšku jeví téměř jako klasický NetWare server. Aby toho dosáhl, musí Linux 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 je původem český produkt (více informací o něm naleznete na URL uvedených na konci dokumentu). Zde se budeme věnovat pouze Marsu.

Charakteristika Marsu

Mars (Martin Stover's 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.

Jak Mars pracuje?

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 zdokumentová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. 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ší.

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. Implementaci klasických NW práv k adresářům a souborům s dědičností do podadresářů zavádí nově Mars od verze 0.99.pl9.

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.

Bindery

Mars emuluje bindery databázi, která v základních rysech plně funguje a Mars tak dobře spolupracuje s klasickými NW utilitami. Některé funkce ale nejsou podporovány (například zákaz změny hesla na účtu je nutné provést zásahem v konfiguračním souboru Marsu a ne změnou hodnoty v bindery databázi). Bindery databáze je uložena v samostatných souborech a obsahuje i zakódovaná hesla uživatelů.

Trustees - emulace klasických NW práv

Emulace klasických Novellovských práv, kdy jsou práva přidělována konkrétním uživatelům a skupinám (tzv. acces list) je k dispozici poměrně krátce. Dá se říci, že funguje, ovšem nejnovější verze Marsu obsahuje kromě tohoto vylepšení také několik poměrně dost nepříjemných chyb. Proto je lepší používat nějakou starší verzi, které obvykle fungovaly více než uspokojivě (bohužel bez tohoto příjemného vylepšení). Podpora Trustees je vyřešena tak, že při přístupu k souborům jsou kromě klasických Unixových práv respektována také emulovaná NW práva. Z toho vyplývá, že pokud chceme používat pouze Trustees, musíme nastavit v Unixu všechna práva a spolehnout se na omezení pomocí Trustees. Obě metody lze kombinovat (při využívání Trustees omezovat uživatele i pomocí Unixových práv), ovšem správa je pak poměrně obtížná. V implementaci Trustees jsou i některé nedostatky. Například máme-li práva do podřízeného adresáře, nemůžeme dojít do tohoto adresáře jednoduše z adresáře nadřízeného, protože není vidět. Řešením je přidělit všem právo F na kořen svazku, což nemusí být ideální.

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í BootROM 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č. BootROM 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. Vyjímkou jsou BootROM, 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 Mars, WWW server, proxy, obstarává dial-up, obsluhuje sdílenou tiskárnu pomocí NW tiskové fronty 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ší. V Marsu sice existuje volba "burstmode", avšak není zatím bezchybná. Zvýšení rychlosti lze také dosáhnout připojením sdíleného filesystému v Linuxu s volbou noatime, kdy Linux nezapisuje při každém čtení ze souboru čas tohoto posledního přístupu do I-node.

Největším problémem jsou pouze nové 3Com síťové karty. Ovladač při intenzivním a dlouhodobém zatížení padá i s jádrem. Řešením pro mě bylo použití starší ISA karty (též 3Com). Jaká je nejnovější situace nevím, ale lze říci, že na běžné použití si nemusíte dělat starosti.

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, na které zatím nedozrál.

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í.

Důležitá URL související s textem

Domácí stránka Marsu: http://www.compu-art.de/download/mars_nwe.html
Mirror v Čechách: http://ftp.spsselib.hiedu.cz/pub/mirrors/mars.www/
NCPFS utility: ftp://platan.vc.cvut.cz/pub/linux/ncpfs/
Podrobná konfigurace Marsu: http://www.spsselib.hiedu.cz/~kerslage/manuals/linux/Mars.html
Další podrobnější články: http://www.spsselib.hiedu.cz/~kerslage/