Nejprve se pokusím objasnit význam pojmů datagram, paket a rámec. Datagram je celistvá informace, kterou přenášíme mezi počítači. Datagram může být při přepravě dělen na více částí a takovýmto samostatným částem říkáme pakety. Aby mohl být paket přepravován po síti typu Ethernet, je ho potřeba doplnit o další nezbytné informace nutné pro jeho přepravu po síťovém médiu a takovémuto rozšířeném paketu říkáme rámec.
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ámce | Charakteristika |
Ethernet 802.2 | dnešní standard firmy Novell, umí přepravovat pouze IPX/SPX |
Ethernet 802.3 | původní standard firmy Novell, 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 |
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ě prosazuje právě první dva, neznám.
Někdy není možné na jednom segmentu vystačit jen s jedním rámcem, protože například některé BootROMky 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. Windows'95 není vhodné nechávat u protokolu IPX/SPX používat autodetekci rámců, protože to občas vede k nepochopitelným výpadkům, zvláště ve větších sítích.
Při konfiguraci musíme začít od základu a tím je protokol IPX. Podpora protokolu IPX musí být povolena při kompilaci jádra Linuxu (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. 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.0 stačí nainstalovat balík ncpfs-2.0.11-3.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í |
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
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é.