Petr Faltus OK1CFP

Modulární systém Flexnet, popis, vysvětlení a příklady konfigurace

Druhé přepracované a doplněné vydání.

Popis Flexnetu

Systém Flexnet je modulární rodina ovladačů pro Packet Rádio velmi rozsáhlých možností. V ČR je momentálně nejrozšířenější. Umožňuje vytvoření prvku v síti, od jednoduché uživatelské stanice až po obrovský uzel. Pro vysvětlení funkce jsem si dovolil upravit originální obrázek Flexnetu. Symbolizuje paletu možností právě jednoho počítače. Dole (pomocí portů) začínají alternativy propojení s okolními prvky v síti, uprostřed je vlastní jádro Flexnetu s možností digipeateru (opakovače, nódu) a nahoře nakonec varianty běžící aplikace nebo rozhraní pro další použití.

Přehled možností Flexnetu

Konfigurace Flexnetu musí přesně vycházet z účelu, kterou daný počítač (prvek) v síti má. Vznikající topologie celé sítě by měla být efektivní a trochu přehledná. Návrh začíná propojením s okolními prvky sítě (například jinými počítači) pomocí takzvaných linek. Koncový prvek (např. standardní uživatelská stanice, MailBox nebo například můj program Autopaket) bývá připojen jedinou linkou, uzel (nód, repeater) bývá propojen více linkami. Pod pojmem linka si lze dle případu představit buď propojení bod-bod právě dvou prvků nebo nějaké otevřené médium, ve kterém spolu navzájem komunikuje libovolný (i neustále měnící se) počet prvků.

Možné linky Flexnetu

Nejčastěji používanou linkou v Packet Rádiu je nějaký vymezený kanál v kmitočtovém spektru. Podle typu modemu, použité modulace a přidělené šířky pásma lince nastavujeme vhodnou přenosovou rychlost v Baudech. Zde každý slyší každého a jedná se o příklad linky, která není typu jen bod-bod. Provoz je koordinován buď přístupem DAMA nebo CSMA. Takové lince na obrázku odpovídá například ovladač ser12.exe pro sériový port PC připojený přes příslušný modem k radiostanici. Totéž lze při výkonnějším PC realizovat i zvukovou kartou, připojenou k radiostanici a ovladačem například sblast.exe. Příjem přes zvukovou kartu však dosahuje mírně horších vlastností. Většina ovladačů může být z principu použita vícekrát, takže uzel může být například současně připojen prostřednictvím více ovladačů ser12.exe přes různé modemy k různým radiostanicím. Nelze-li zaručit dokonalou elektromagnetickou kompatibilitu, umí Flexnet dvojici portů synchronizovat, aby se radiostanice navzájem nerušily při vysílání.

Sysop (vlastník, správce) daného uzlu se ze svého vedlejšího PC nepřipojuje k uzlu například další radiostanicí, ale zřídí si lokální linku propojením sériových nebo paralelních portů obou počítačů ovladačemi kiss.exe nebo pif.exe. Ovladač kiss.exe je někdy chybně zaměňován s ovladačem ser12.exe! V prvním případě se jedná o propojení sériových portů a obousměrný synchronní tok dat RS232, ve druhém případě připojení modemu, které musí podporovat signál zaklíčování stanice a redundanci o synchronizační sekvenci.

V dnešní době se stále více rozšiřuje propojení přes síťové karty. Ať se již jedná o propojení dvou počítačů (například po radioklubu) nebo využití velké a fungující sítě (v nějaké firmě). Velmi používaným ovladačem se stal ippd.exe (využívající rozhraní 'Packet driver') pro síťovou kartu a protokol TCP/IP. Každý počítač musí být vybaven IP adresou, odpovídající nastavení sítě a IP okolních počítačů. V případě dvou počítačů na stejném síťovém segmentu se obě IP adresy liší jen svým koncem (dle použité masky), pro privátní a oddělené sítě jsou vyhrazeny IP adresy například 192.168.x.x, t.j. 255 sítí s maskou 'C'. Při segmentech odlišných prochází pakety přes routery (směrovače) a ovladači ippd.exe je nutno mimo vlastní IP adresy a IP adresy partnera zadat ještě IP adresu brány, což je nejbližší síťové rozhraní nějakého routeru směrem k partnerovi. Takto lze propojit dva prvky přes Internet. Jedná se o typ linky typu bod-bod, ovladač však umí pracovat s více partnery (IP adresami a bránami) současně. Někdy je však požadavek opačný, že stačí linka po lokálním segmentu sítě, ale nesmí být pouze bod-bod. K tomuto účelu slouží ovladače ipxn.exe a ipxpd.exe pro síťovou kartu a protokol IPX. Komunikace se nijak nenastavuje, používá se broadcast paketů pro 'tuto síť'. Ovladač ipxn.exe potřebuje ke své činnosti ovladač ipxodi.com uživatelské stanice sítě Novell Netware, ovladač ipxpd.exe využívá rozhraní 'Packet driver'. Pokud je při ipxn.exe v souboru net.cfg klienta nastaven frame Ethernet II, oba ipx*.exe ovladače se navzájem na lokálním segmentu slyší - ipxpd.exe sestavuje přes Packet driver pakety tak, aby se tvářily jako IPX pakety frame Ethernet II.

Nad ovladači jednotlivých možností propojení (linek) je na obrázku vlastní jádro Flexnetu flexnet.exe. Základní pravidlo zní, že pokud je počítač propojen více než jednou linkou, měl by býti současně nódem (uzlem, repeaterem). Toho dosáhneme přidáním modulu digipeateru flexdigi.exe (na obrázku napravo vedle jádra). Existovat bez problémů však můžou i nódy s jednou jedinou linkou a jejich význam je potom v možnosti opakování spojení na daném kanále.

Celý systém Flexnetu je řešen jako rezidentní. Za určitých (například paměťových) omezení může na daném PC běžet ještě hlavní aplikace. Takovou je například Baycom terminal bct.exe na obrázku vpravo nahoře. Jedná se o komunikační terminálový program pro uživatele sítě. Skládá se z jedenácti oken. Deseti komunikačních (kanálů, na kterých se uživatel může připojit k jiné stanici nebo uzlu) a jedenáctého monitorovacího provoz na kanále. Jiný terminálový program (mé vlastní výroby) 'PLP terminál' je zveřejněn na těchto stránkách. Jinou alternativou aplikace nad ovladači Flexnetu je program Baycom Mailbox bcm.exe, jedna z hojně používaných BBS pro uživatele sítě. Každý se může připojit, uživatelé si navzájem v BBS nechávají soukromou i veřejnou (prostřednictvím nástěnek) poštu. Kromě jiného lze mailboxy na Paket Rádio síti konfigurovat tak, aby si přes uzly navzájem přeposílaly poštu a vyměňovaly informace a nastavení o uživatelích. Uvedené tři aplikace jsou přímo napsány pro funkci nad jádrem Flexnetu. Ostatní, náročnější programy (např. Graphic Packet, Top, můj program Autopaket zveřejněn na těchto stránkách) požadují rozhraní TNC modemu, které umí nad jádrem Flexnetu výborně emulovat rezidentní ovladač tfemu.exe.

Propojení jádra Flexnetu (dle obrázku vzhůru) směrem k běžící aplikaci je z hlediska filosofie Flexnetu považováno také za linku. Je interní uvnitř PC a má vždy číslo portu 15. Odpovídá skutečnosti, že uvnitř stroje může pracovat současně uzel i koncový bod bezprostředně k němu připojený. Linka 15 má tu vlastnost, že na ní v monitorovacím okně terminálového programu lze sledovat provoz celého nódu. Z tohoto důvodu může nastat požadavek tuto linku, která by jinak zůstala pouze uvnitř PC, přesměrovat ven. Právě k tomuto například slouží ovladač tfeser.exe, který ji přes některý volný sériový port PC dovoluje prodloužit ven do jiného PC. Takový počítač se potom bez hlavní běžící aplikace stává skutečným uzlem.

Ovladače etheremu.exe a axpddrvr.exe emulují nad interní 15.linkou nad jádrem Flexnetu síťové rozhraní. V prvním případě se jedná o TCP/IP interface například pro program NSCA Telnet, ve druhém o Packet driver. Oba dovolují jednoúčelové propojení dvou síťových aplikací přes Packet Rádio.

Konfigurace paměti stroje

Při spouštění Flexnetu bývá obecný problém s nedostatkem paměti. V souboru config.sys vždy příkazem DOS=HIGH,UMB určíme, aby MSDOS používal i horní paměť a nahrajeme ovladač himem.sys.

Příklad config.sys pro PC s Flexnetem
DOS=HIGH,UMB

SWITCHES=/F
FILES=15
BUFFERS=10

devicehigh=C:\DOS\himem.sys

Start systému Flexnet je nejjednodušší sestavit do dávky flexnet.bat. Vlastní postup odpovídá předchozímu obrázku a popisu. Pomocí DOSového příkazu set je v dávce výhodné založit systémovou proměnou FLEXNET, která obsahuje adresářovou cestu, kde jsou programy všech modulů Flexnetu přítomny. Pokud některý modul bude potřebovat služby Packet driveru, je potřeba tento dopředu nahrát! Rozhraní 'Packet driver' je standardizované a ovladač je dodáván ke každé síťové kartě. Jeho shoda názvu s názvem 'Packet rádio' je jen náhodná! V případě uživatelské stanice pro síť Novell Netware se Packet driver takto nenahrává, jeho emulace odipkt.com je součástí klienta.

Příklad startu Flexnetu běžné stanice (uživatelského terminálu)

Běžný uživatel Packet rádia se k síti připojuje přes tomu určený modem a radiostanici s potřebnou anténou. Start Flexnetu je nejlepší sestavit do dávky flexnet.bat. DOSový příkaz set zakládá systémovou proměnnou FLEXNET, která obsahuje adresářovou cestu, kde jsou jednotlivé potřebné moduly Flexnetu přítomny.

Samotný start Flexnetu začíná spuštěním flexnet.exe s parametrem velikosti rezidentní paměti, která bude obětována. V tomto případě stačí paměti méně. Pokračuje volání ovladače zde jediné linky ser12.exe (modem a radiostanice). Číslování linek vždy začíná od nuly, tedy bude nultá. V našem případě parametr 2, je připojena přes COM2, protože u COM1 se počítá s myší. Start uzavírá flex.exe. Příkazem fset.exe nastavíme parametry (nulté) linky. Vždy u příkazu jsou tři parametry - co chceme nastavit, pro kterou linku a vlastní hodnota. Klíčovým slovem mode nastavujeme Baudovou rychlost linky s doplněním písmene c (aktivace software umlčení šumu radiostanice při příjmu). Klíčové slovo txdelay definuje zpoždění vysílání, které musí vždy odpovídat času, který je potřebný na úplné zaklíčování radiostanice. Je v desítkách milisekund. V případě koncové stanice jsou všechna nastavení parametrů (fset) nutná při startu a nelze je za běhu již měnit.

Takto nakonfigurovaný Flexnet uživateli umožňuje spuštění hlavní aplikace podporující služby Flexnetu. Například Baycom Terminál nebo můj PLP terminál. Ostatní programy potřebují služby TNC, proto musí v daném případě uživatel nahrát ještě emulaci tfemu.exe. Po dávce flexnet.bat je přímo spuštěn příslušný terminálový program. Na kanále, daném radiostanicí, se uživatel může připojit k jinému uživateli nebo na nód (uzel) a dále po síti.

Příklad flexnet.bat pro běžného uživatele
@echo off
set FLEXNET=C:\FLEXNET

lh %FLEXNET%\flexnet.exe 30

lh %FLEXNET%\ser12.exe 2
 
lh %FLEXNET%\flex.exe

%FLEXNET%\fset mode 0 1200c
%FLEXNET%\fset txdelay 0 20

lh %FLEXNET%\tfemu.exe

Příklad startu Flexnetu správcovské stanice (sysopovského terminálu)

Správcovská (sysopovská) stanice není k síti připojená klasicky radiostanicí, ale sériovým kabelem přímo k nódu (uzlu), protože se nachází jen několik metrů od něj. I zde je start Flexnetu nejlepší sestavit do dávky flexnet.bat. DOSový příkaz set zakládá systémovou proměnnou FLEXNET, která obsahuje adresářovou cestu, kde jsou jednotlivé moduly Flexnetu přítomny.

Samotný start Flexnetu začíná spuštěním flexnet.exe s parametrem velikosti rezidentní paměti, která bude obětována. V tomto případě stačí paměti méně. Pokračuje volání ovladače zde jediné linky kiss.exe (sériové spojení). Číslování linek vždy začíná od nuly, tedy bude nultá. V našem případě parametr 2, je připojena přes COM2, protože u COM1 se počítá s myší. Start uzavírá flex.exe. Příkazem fset.exe nastavíme parametry (nulté) linky. Vždy u příkazu jsou tři parametry - co chceme nastavit, pro kterou linku a vlastní hodnota. Klíčovým slovem mode nastavujeme Baudovou rychlost linky s doplněním písmen d (duplexní propojení) a y (automaticky sysop přístup). Klíčové slovo txdelay definuje zpoždění vysílání, které zde nemá žádné opodstatnění. Je v desítkách milisekund. V případě sysop stanice u nódu jsou všechna nastavení parametrů (fset) nutná při startu a nelze je za běhu již měnit.

Takto nakonfigurovaný Flexnet sysopovi umožňuje spuštění hlavní aplikace podporující služby Flexnetu. Například Baycom Terminál, můj PLP terminál nebo Baycom Mailbox. Ostatní programy potřebují služby TNC, proto musí v daném případě uživatel nahrát ještě emulaci tfemu.exe. Po dávce flexnet.bat je přímo spuštěn příslušný terminálový program. Takto umístěný počítač je ideální pro provoz Mailboxu nebo nějakého jiného software pro uživatele sítě, například mého programu Autopaket, uveřejněného na těchto stránkách. Na kanále, daném sériovou linkou je uživatel sám a může se připojit pouze k danému nódu (uzlu) a dále pak po síti.

Příklad flexnet.bat pro PC sysopa (správce uzlu)
@echo off
set FLEXNET=C:\FLEXNET

lh %FLEXNET%\flexnet.exe 30

lh %FLEXNET%\kiss.exe 2
 
lh %FLEXNET%\flex.exe

%FLEXNET%\fset mode 0 9600dy
%FLEXNET%\fset txdelay 0 0

lh %FLEXNET%\tfemu.exe

Příklad startu Flexnetu velkého nódu (uzlu)

Protože bude použito linek přes LAN nebo WAN, musí se nejprve nahrát ovladač 'Packet driver'. V našem příkladě se jedná o pktdrv.com. Není součástí Flexnetu, jedná se o standardizované rozhraní dodáváné ke každé síťové kartě. Pro jednu síťovou kartu nahráváme Packet driver vždy pouze jedenkrát!

Samotný start Flexnetu začíná spuštěním flexnet.exe s parametrem velikosti rezidentní paměti, která bude obětována. V tomto případě bude potřeba hodně paměti. Protože je PC v tomto případě i uzlem, následuje modul digipeateru flexdigi.exe. Dále jsou postupně volány ovladače jednotlivých linek. Jejich pořadí je důležité, podle něho jsou linky vzestupně od nuly systémem číslovány. Očíslování je potřeba znát pro konfiguraci. Každý ovladač je případně doplněn svými parametry, které korespondují s hardware a situací.

Modul ser12.exe je ovladač pro linku přes modem a radiostanici, jeho parametr je číslo sériového portu, případně adresa paměti a IRQ portu. U COM1 a COM2, pokud vyhovují standardizovaným parametrům, lze vynechat. Začátek čísla 0x značí zápis v hexadecimální (šestnáctkové) soustavě. Modul ipxpd.exe je ovladač pro IPX LAN linku přes Packet driver. Jeho parametrem je pouze číslo přerušení, na kterém Packet driver pracuje. Implicitně bývá 0x60, prozřetelnější však bývá přerušení při startu Packet driveru volit. Modul kiss.exe je ovladač pro sériovou linku přes COM na jiné PC. Jeho parametry jsou stejné jako u ser12.exe. Modul pif.exe vytváří linku přes paralelní port na jiné PC. Parametry se neliší od ser12.exe, navíc je však (pomocí m) nutno určit, které z dvojice PC bude řídící Master (hodnota jedna) a které řízené Slave (hodnota nula). Modul par96.exe s parametrem čísla paralelního portu, případně adresy paměti a IRQ portu, je ovladač pro linku přes rychlejší modem a radiostanici přes LPT. Modul ippd.exe je ovladač pro TCP/IP WAN linku přes Packet driver (packet driver se nahrává celkově pouze jednou). Parametry ippd.exe jsou číslo přerušení, na kterém pracuje Packet driver, vlastní IP adresa stroje, IP adresa linkového parnera a IP adresa nejbližší brány směrem k partnerovi.

V našem případě jsou tedy nakonfigurovány tyto linky: pod číslem nula modem a radiostanice přes COM2, pod číslem jedna modem a radiostanice přes COM3, pod číslem dva IPX protokol přes Packet driver na přerušení 70h a síťová karta, pod číslem tři další PC přes COM1, pod číslem čtyři další PC přes LPT2 a nakonec pod číslem pět modem a radiostanice přes LPT1. Náš příklad nemusí být až tak smyšlený. Dvě radiostanice můžou na dvou kanálech umožňovat vstup uživatelům, třetí tvoří například mikrovlnné pojítko k jinému uzlu. Po lince přes síť Ethernet se připojují uživatele několika počítačů v domě nebo v radioklubu, kde je uzel provozovován. Na dvou zbývajících PC, připojených přes LPT a COM, běží Mailbox a terminál správce nódu. Program by sice mohl běžet i přímo na PC vlastního uzlu, ale u takto velkých konfigurací se většinou už nedostává paměti a aplikace Mailboxu 'padá'... Poslední linka je přes síťovou kartu a velkou privátní WAN síť protokolem TCP/IP.

Nahráli-li jsme v našem příkladě všechny potřebné linky, uzavřeme start Flexnetu pomocí flex.exe. V tomto okamžiku by mohlo následovat postupné nastavování parametrů všech linek příkazem fset.exe. Vždy u příkazu jsou tři parametry - co chceme nastavit, pro kterou linku a vlastní hodnota. U startu nódu je praktičtější nastavování vynechat a udělat je až za běhu přes terminál z PC vlastního nódu. Pro případ restartu si je Flexnet zapisuje do souboru flexnet.fpr. Tato metoda má výhodu dálkové zprávy a aktuálních změn, které zůstávají.

Takto nakonfigurovaný Flexnet by na daném PC například umožňoval případné spuštění hlavní aplikace Baycom Terminálu nebo mého PLP terminálu. Pro ostatní programy, používající služeb TNC, bude nakonec nahrána emulace tfemu.exe. Vzhledem k velikosti zbývající paměti však může tento krok pomoci k nestabilitě stroje.

Příklad flexnet.bat pro velký nód
@echo off
set FLEXNET=C:\FLEXNET

rem Packet driver k dane sitove karte
lh %FLEXNET%\pktdrv.com 0x70

lh %FLEXNET%\flexnet.exe 90
lh %FLEXNET%\flexdigi.exe

lh %FLEXNET%\ser12.exe 2
lh %FLEXNET%\ser12.exe 3 /p=0x3E8 /i=0x5
lh %FLEXNET%\ipxpd.exe 0x70
lh %FLEXNET%\kiss.exe 1
lh %FLEXNET%\pif.exe 2 /p=0x278 /i=5 /m=1 
lh %FLEXNET%\par96.exe 1 /p=0x378 /i=7
lh %FLEXNET%\ippd.exe -i:0x70 -m:10.12.2.123 -p:10.61.5.15 -g:10.12.2.1
 
lh %FLEXNET%\flex.exe

lh %FLEXNET%\tfemu.exe

Modulární systém Flexnet pro DOS pod Windows

Modulární systém Flexnet lze analogicky používat i v DOSovém okně pod Windows. Fungují Windows 95, Windows 98 a Windows ME, ostatní jsem neměl možnost vidět. Dávka startu Flexnetu vypadá stejně, vždy však obsahuje i start terminálu a na konci nechybí odinstalace Flexnetu! Lze ji klidně umístit i do složky automatického spuštění po startu. Díky grafice, která koliduje s Windows, odpadá například použití programu GP. Baycom terminal a můj PLP terminál fungují v DOSovém okně bez problémů. Pro dávku se vytvoří na ploše zástupce.

Příklad packet.bat pro běžného uživatele pod Windows
@echo off
set FLEXNET=C:\UTIL\FLEXNET

lh %FLEXNET%\flexnet.exe 30
lh %FLEXNET%\ser12.exe 2
lh %FLEXNET%\flex.exe

%FLEXNET%\fset mode 0 1200c
%FLEXNET%\fset txdelay 0 20

%FLEXNET%\bct.exe

%FLEXNET%\flex.exe /u

Odlišně se postupuje u linek, které využívají síťovou kartu. Packet Driver existuje i pod Windows - například 'Virtual Packet Driver' od Daniela Lancianiho, který je k dispozici na Internetu. Tento ovladač je však nutno před použitím aktivovat například mým programem pktmode.exe, který zavolá službu nastavení režimu Packet driveru. Jinak linka nefunguje. Virtual Packet Driver se instaluje jako protokol a v jeho vlastnostech je nutno nastavit číslo přerušení, které bude používat. Pokud je ve Windows instalován Virtual Packet Driver a není instalován protokol TCP/IP, lze v dávce použít modul ippd.exe stejně jako pod DOSem a pokud je ve Windows instalován Virtual Packet Driver a není instalován protokol standardu IPX/SPX s nastavením rámce Ethernet II, platí totéž o modulu ipxpd.exe.

Download pktmode.exe pro nastavení režimu Packet Driveru

Příklad packet.bat pro sysopa pod Windows
@echo off
rem Start Flexnetu nad Packet Driverem ve Windows
set FLEXNET=C:\UTIL\FLEXNET

pktmode 6

lh %FLEXNET%\flexnet.exe 40
lh %FLEXNET%\ipxpd.exe 0x69
lh %FLEXNET%\flex.exe

%FLEXNET%\fset mode 0 9600
%FLEXNET%\fset txdelay 0 0

%FLEXNET%\bct

%FLEXNET%\flex.exe /u

pktmode 1

Pokud je ve Windows instalován standardní protokol standardu IPX/SPX a uměle v jeho vlastnostech nastaven rámec Ethernet II, bez jakýchkoli problémů funguje modul ipxn.exe. Tento postup se jeví ještě lepší a čistší než použití Packet Driveru pod Windows a na rozdíl od něj funguje i v novějších Windows než 95 nebo 98.

Příklad packet.bat pro sysopa pod Windows
@echo off
rem Start Flexnetu nad IPX protokolem ve Windows
set FLEXNET=C:\UTIL\FLEXNET

lh %FLEXNET%\flexnet.exe 40
lh %FLEXNET%\ipxn.exe
lh %FLEXNET%\flex.exe

%FLEXNET%\fset mode 0 9600
%FLEXNET%\fset txdelay 0 0

%FLEXNET%\bct

%FLEXNET%\flex.exe /u


(c) Petr Faltus OK1CFP 25/2/2003