LinuxovΘ noviny | Kv∞ten 1998 | ||||||||||||||||||||||
| |||||||||||||||||||||||
┌vod do IPX/SPXS protokolem IPX/SPX se setkßvßme denn∞, zejmΘna v prost°edφ Novell NetWare, kde je klφΦov²m protokolem. Protokol IPX/SPX poΦφtß s vysokou rychlostφ a nφzkou chybovostφ lokßlnφch sφtφ a je jednodu╣╣φ ne╛ protokol TCP/IP, kter² je pou╛φvßn v rozlehlΘm sv∞t∞ Internetu. To je hlavnφ d∙vod, proΦ je v lokßlnφch sφtφch tolik pou╛φvßn. Jeho konfigurace i implementace je jednoduchß a neskr²vß mnoho ·skalφ. Protokol IPX (Internetwork Packet eXchange) pracuje jako datagramovß slu╛ba a je tak obdobou protokolu IP. Naproti tomu SPX (Sequenced Packet eXchange) je navazovßnφm spojenφ velice blφzk² protokolu TCP.
K Φemu to bude dobrΘV╣echny poΦφtaΦe v sφti jsou si p°i vzßjemnΘ komunikaci rovny. P°esto majφ n∞kterΘ v²znamn∞j╣φ postavenφ ne╛ ostatnφ. Jsou to v∞t╣inou specializovanΘ stanice, kterΘ nabφzejφ svΘ slu╛by ostatnφm stanicφm. Takov²m poΦφtaΦ∙m °φkßme servery, stanicφm pak klienti a °φkßme, ╛e pou╛φvßme architekturu klient-server. UrΦit∞ je velmi v²hodnΘ um∞t i z Linuxu vyu╛φvat v╣ech slu╛eb, kterΘ nabφzejφ servery Novell Netware. Abychom mohli s t∞mito servery komunikovat, musφme um∞t nakonfigurovat sv∙j Linux tak, aby jim rozum∞l. V dal╣φm povφdßnφ budu p°epoklßdat, ╛e mßme k dispozici sφ╗ typu Ethernet (nap°. tenk² koaxißl nebo kroucenou dvoulinku), a podφvßme se blφ╛e, jak to v╣echno za°φdit. ZaΦneme od zaΦßtku, tedy od toho, jak komunikace na Ethernetov²ch sφtφch vlastn∞ funguje.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.
EthernetovΘ rßmceZßkladem p°epravy dat na sφtφch typu Ethernet jsou takzvanΘ rßmce, kterΘ p°epravujφ obecn∞ jakßkoliv data mezi jednotliv²mi poΦφtaΦi. Ka╛d² rßmec p°edstavuje balφk dat, kter² je mo╛no vyslat v rßmci jednoho segmentu k jinΘmu poΦφtaΦi. Sklßdß se z hlaviΦky, t∞la (obsahuje p°enß╣enß data, tedy paket vy╣╣φ vrstvy) a traileru (zakonΦenφ rßmce s kontrolnφm souΦtem). Hlavnφ Φßst hlaviΦky tvo°φ hardwarovß adresa odesφlatele a p°φjemce (oznaΦovanß takΘ jako fyzickß MAC adresa), podle kterΘ 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. MAC adresa je pevn∞ dßna v²robcem sφ╗ovΘ karty a v∞t╣inou ji nenφ mo╛nΘ m∞nit. Teoreticky by se na sv∞t∞ nem∞ly vyskytovat dv∞ EthernetovΘ karty se stejnou MAC adresou, ale m∙╛e se to stßt, i kdy╛ v²bor IEEE (Institute of Electrical and Electronics Engineers) p°id∞luje ka╛dΘmu v²robci blok adres. Pokud na takovΘ karty narazφte, je to nep°φjemnΘ a mßte z pekla ╣t∞stφ :-).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 tabulka EthernetovΘ rßmce). 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².
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∞jφ. 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.
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 sφt∞ a Φφsla uzlu, kterΘ kopφruje uz v²╣e zmφn∞nou MAC adresu sφ╗ovΘ karty. 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φ. Ta 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°esto 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 serveryServery 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 z°ejm∞ takΘ nejroz╣φ°en∞j╣φ variantou.
Protokoly v prost°edφ NetWareAby si stanice se servery p°i vzßjemnΘm rozhovoru rozum∞ly, p°epravovanß data m∞la logiku a strukturu, pot°ebujeme dal╣φ protokoly, kterΘ budou v IPX p°epravovßny. Nejv²znam∞j╣φm takov²m protokolem je NCP (NetWare Core Protocol), kter² umo╛≥uje klient∙m p°φstup k sφ╗ov²m disk∙m, tiskßrnßm a dal╣φm sdφlen²m za°φzenφm. Pomocφ tohoto protokolu se u╛ivatelΘ takΘ k server∙m NetWare p°ihla╣ujφ. Dal╣φm protokolem, se kter²m se setkßme, je SAP (Service Advertisement Protocol). Tφmto protokolem jednotlivΘ servery ohla╣ujφ a nabφzejφ svΘ slu╛by v sφti pomocφ broadcast∙. Poslednφm zajφmav²m protokolem je RIP (Routing Information Protocol), pomocφ kterΘho si mezi sebou IPX sm∞rovaΦe (routery) vym∞≥ujφ informace o znßm²ch sφtφch. Ty se pak odrazφ ve sm∞rovacφch tabulkßch a tφm je umo╛n∞no, aby sm∞rovaΦe mohly p°edßvat datagramy i do jin²ch sφtφ, ne╛ ve kterΘ pracuje stanice. P°es router m∙╛e b²t zaji╣t∞n i p°eklad rßmce, ale pokud se tak d∞je na jednom segmentu, povede to k duplikaci provozu. To je dal╣φ d∙vod, proΦ je vhodn∞j╣φ pou╛φvat na v╣ech stanicφch v sφti pouze jeden jedin² rßmec.
Konfigurace IPX v LinuxuPokud mß Linux vystupovat jako obyΦejnß stanice, kterß rozumφ protokolu IPX, bude vystupovat jako klient a bude vyu╛φvat zdroje a slu╛by (nap°. sdφlenφ disk∙ a tisk na sφ╗ov²ch tiskßrnßch), kterΘ mu budou pomocφ sφt∞ poskytovßny servery.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φ m∙╛eme pou╛φt utilitu 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∞.
ipx_interface Φinnost [-p] rozhranφ typ_rßmce Φφslo_sφt∞
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Θ.
|