VyÜlo v t²denφku: COMPUTERWORLD
╚φslo:42/92
RoΦnφk:1992
Rubrika/kategorie: Co je Φφm ... v poΦφtaΦov²ch sφtφch
Dφl:50

zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl

Ji°φ Peterka: Co je Φφm ... v poΦφtaΦov²ch sφtφch (50):

Sm∞rovßnφ v TCP/IP sφtφch - V.

V minul²ch dφlech naÜeho serißlu jsme se podrobn∞ji zab²vali otßzkou sm∞rovßnφ v TCP/IP sφtφch. KonkrΘtnφ mechanismy, kterΘ jsme si v tΘto souvislosti popisovali, vÜak vychßzely z urΦitΘ strategie pro p°id∞lovßnφ IP adres, kterou jsme si ukßzali ji₧ ve 44. dφlu. Tato strategie se ale s v²vojem Internetu takΘ postupn∞ vyvφjela, a tak muselo nutn∞ dojφt k urΦit²m modifikacφm i ve zp∙sobu sm∞rovßnφ.

O zm∞n∞ strategie p°i p°id∞lovßnφ IP adres jsme se ji₧ zmφnili ve 44. dφlu, kde jsme si o IP adresßch povφdali podrobn∞ji. P°ipome≥me si proto, v Φem tyto zm∞ny spoΦφvajφ, a hlavn∞ Φφm jsou motivovßny.

P∙vodnφ zßm∞r byl takov², aby ka₧dß dφlΦφ sφ¥ m∞la vlastnφ samostatnou sφ¥ovou adresu. Aby to bylo mo₧nΘ v prost°edφ, kde se dφlΦφ sφt∞ mohou velmi v²razn∞ liÜit co do poΦtu sv²ch koncov²ch uzl∙ (hostitelsk²ch poΦφtaΦ∙, hosts), zavedly se t°i r∙znΘ formßty IP adres - adresy t°φdy A, B a C (viz 44. dφl). Adresy t°φdy A byly urΦeny pro sφt∞ s velmi velk²m poΦtem hostitelsk²ch poΦφtaΦ∙, adresy t°φdy B pro "st°edn∞" velkΘ sφt∞, a adresy t°φdy C pro sφt∞ s maximßln∞ 254 hostitelsk²mi poΦφtaΦi. Dlu₧no ovÜem podotknout, ₧e tato strategie vznikla jeÜt∞ v dob∞, kdy sv∞tu vlßdly velkΘ st°ediskovΘ poΦφtaΦe a minipoΦφtaΦe, zatφmco Θra osobnφch poΦφtaΦ∙ a mal²ch lokßlnφch sφtφ m∞la nastat p°ibli₧n∞ o deset let pozd∞ji.

Takov² r∙st neΦekali

Tv∙rci sφ¥ovΘho modelu TCP/IP jist∞ p°edpoklßdali nßr∙st v nasazenφ v²poΦetnφ techniky, ale s Φφm ji₧ poΦφtali mΘn∞ je skuteΦnost, ₧e tento nßr∙st bude tak prudk², a ₧e se bude ubφrat cestou "mal²ch" poΦφtaΦ∙ a velkΘho mno₧stvφ relativn∞ mal²ch lokßlnφch sφtφ. Zatφmco zßsoba IP adres t°φdy C jeÜt∞ zdaleka vyΦerpßna nenφ, ·zk²m mφstem se ukßzala b²t jednak agenda, spojenß s p°id∞lovßnφm IP adres, a p°edevÜφm rozsah sm∞rovacφch tabulek, s nφm₧ pak souvisφ i vysokß re₧ie na udr₧ovßnφ jejich pr∙b∞₧nΘ konzistence.

Jak jsme si ji₧ n∞kolikrßt ukßzali, sna₧φ se TCP/IP protokoly minimalizovat rozsah sm∞rovacφch tabulek a re₧ii na jejich aktualizaci dv∞ma zp∙soby: sm∞rovßnφm jen na zßklad∞ adresy dφlΦφ sφt∞, a pou₧φvßnφm implicitnφho sm∞rovßnφ (resp. implicitnφch cest) v tzv. vedlejÜφch brßnßch (noncore gateways). Ani to vÜak nestaΦφ, a tak se ukßzalo jako nezbytnΘ usilovat o redukci poΦtu r∙zn²ch IP adres cel²ch sφtφ. Jin²mi slovy: usilovat o tom, aby vφce dφlΦφch sφtφ m∞lo p°id∞lenu a sdφlelo stejnou sφ¥ovou adresu (p°esn∞ji: tu Φßst IP adresy, kterß p°edstavuje adresu sφt∞), a ve sm∞rovacφch tabulkßch tak zabφralo jen jednu polo₧ku. P°iÜlo se samoz°ejm∞ na vφce mo₧nostφ, jak toho dosßhnout - tou nejefektivn∞jÜφ se ukßzala b²t technika tzv. podsφtφ (subnets), kterou jsme si naznaΦili ji₧ ve 44. dφlu naÜeho serißlu, a kterß je dnes ji₧ povinnou souΦßstφ TCP/IP protokol∙. Zopakujme si proto jejφ zßkladnφ myÜlenku.

Podsφt∞ a jejich adresy

Obrßzek 50.1.
Obr. 50.1.: P°edstava podsφtφ
UrΦitß skupina dφlΦφch sφtφ, kterΘ by bez pou₧itφ techniky podsφtφ m∞ly samostatnΘ adresy, mß naopak jednu spoleΦnou adresu, a v∙Φi svΘmu okolφ vystupuje jako jedin² celek, tj. jako jedinß dφlΦφ sφ¥ (viz obr. 50.1.).

V rßmci p°φsluÜnΘ skupiny sφtφ je ale jejich spoleΦnß IP adresa dßle Φlen∞na - p°esn∞ji ta jejφ Φßst, kterß navenek p°edstavuje Φφslo (adresu) hostitelskΘho poΦφtaΦe, se nynφ rozpadß na dv∞ Φßsti - Φφslo (adresu) dφlΦφ sφt∞, resp. tzv. podsφt∞ (subnet) v rßmci skupiny, a na Φφslo (adresu) hostitelskΘho poΦφtaΦe v rßmci tΘto podsφt∞ - viz obrßzek 50.2. O tom, jak konkrΘtn∞ mß b²t IP adresa takto Φlen∞na, rozhoduje tzv. maska podsφt∞ (subnet mask).

Obrßzek 50.2.
Obr. 50.2.: Maska podsφt∞ a jejφ v²znam
Podstatnß je p°itom skuteΦnost, ₧e tato maska nemß ₧ßdn² povinn² tvar. Volφ se samostatn∞ pro ka₧dou jednotlivou podsφ¥, co₧ pak ale znamenß, ₧e i v rßmci jednΘ skupiny podsφtφ mohou b²t pou₧φvßny r∙znΘ masky. P°φsluÜn² standard to sice umo₧≥uje, ale nedoporuΦuje, nebo¥ tak mohou snadno vznikat nejednoznaΦnosti v IP adresßch. Obvykle se tedy setkßme spφÜe s tφm, ₧e v rßmci jednΘ skupiny podsφtφ je pou₧φvßna stejnß maska.

Sm∞rovßnφ v p°φpad∞ podsφtφ

Jakmile je ale pou₧φvßna technika podsφtφ, je nutnΘ pon∞kud upravit konkrΘtnφ algoritmus sm∞rovßnφ, kter² jsme si popsali v 47. dφlu naÜeho serißlu. Doposud jsme toti₧ p°edpoklßdali, ₧e ve sm∞rovacφch tabulkßch jsou dvojice "cφlovß sφ¥, brßna", popisujφcφ jednotlivΘ dφlΦφ sφt∞, a ₧e algoritmus sm∞rovßnφ v nich hledß na zßklad∞ adresy cφlovΘ sφt∞ v p°φsluÜnΘm datagramu. Nynφ je ale zapot°ebφ, aby ve sm∞rovacφch tabulkßch byly trojice: "maska podsφt∞, cφlovß sφ¥, brßna", popisujφcφ i jednotlivΘ podsφt∞, a modifikovan² algoritmus sm∞rovßnφ musφ v takov²chto tabulkßch hledat op∞t podle adresy cφlovΘ sφt∞, s tentokrßt navφc s uvß₧enφm konkrΘtnφ masky podsφt∞ pro ka₧dou jednotlivou polo₧ku zvlßÜ¥.

Tento modifikovan² algoritmus mß jednu v²hodu - dokß₧e zobecnit i ob∞ singularity, kterΘ se vyskytujφ u p∙vodnφho algoritmu (viz op∞t 47. dφl), a to sm∞rovßnφ na zßklad∞ adres jednotliv²ch hostitelsk²ch poΦφtaΦ∙, a pou₧itφ implicitnφch cest. V prvnφm p°φpad∞ staΦφ volit takovou masku, dφky kterΘ bude jako adresa sφt∞ interpretovßna celß IP adresa p°φsluÜnΘho hostitelskΘho poΦφtaΦe (zatφmco Φßst, p°edstavujφcφ Φφslo hostitelskΘho poΦφtaΦe, bude prßzdnß). V p°φpad∞ implicitnφch cest pak staΦφ pou₧φt opaΦn² extrΘm - masku, kterß zcela "zamaskuje" adresu sφt∞.

Otßzkou ovÜem je, kdo mß takto modifikovan² algoritmus sm∞rovßnφ pou₧φvat. Kdyby jej toti₧ musely pou₧φvat vÜechny brßny, zcela by se tφm negoval v²sledn² efekt pou₧itφ techniky podsφtφ, spoΦφvajφcφ v dalÜφ redukci sm∞rovacφch tabulek. Modifikovan² algoritmus sm∞rovßnφ musφ v ka₧dΘm p°φpad∞ pou₧φvat vÜechny brßny a hostitelskΘ poΦφtaΦe v jednotliv²ch podsφtφch. Pokud jde o ostatnφ brßny a hostitelskΘ poΦφtaΦe, zde platφ jednoduchΘ teoretickΘ pravidlo: modifikovan² algoritmus sm∞rovßnφ je t°eba pou₧φt tam, odkud mohou vΘst r∙znΘ optimßlnφ cesty do r∙zn²ch podsφtφ se stejnou sφ¥ovou adresou.

Toto pravidlo lze jednoduÜe aplikovat v p°φpad∞, ₧e do celΘ skupiny podsφtφ se stejnou adresou vede jen jedin² vstupnφ bod (jako nap°φklad na obrßzku 50.1.). V ostatnφch p°φpadech je situace mnohem komplikovan∞jÜφ.

Proxy ARP

Jak jsme si ji₧ naznaΦili v²Üe, technika podsφtφ (subnetting) nenφ jedin²m zp∙sobem, jak m∙₧e vφce dφlΦφch sφtφ sdφlet tutΘ₧ adresu. DalÜφ mo₧nostφ je mechanismus, oznaΦovan² jako proxy ARP Φi promiscuous ARP, nebo takΘ ARP hack. Ten je ovÜem pou₧iteln² jen tam, kde je vyu₧φvßn protokol ARP pro transformaci IP adres na adresy fyzickΘ (tj. nap°φklad v lokßlnφch sφtφch typu Ethernet, viz 45. dφl serißlu). MyÜlenka proxy ARP je zalo₧enß na jednoduchΘm triku, kter² ilustruje obrßzek 50.3.:
Obrßzek 50.3.
Obr. 50.3.: P°edstava Proxy ARP
a/ p°i reakci na ₧ßdost o fyzickou adresu
b/ p°i vlastnφm p°enosu dat

brßna G se sna₧φ p°edstφrat sφti A, ₧e je tφm hostitelsk²m poΦφtaΦem (v sφti B), se kter²m chce prßv∞ komunikovat n∞kter² z uzl∙ sφt∞ A. D∞lß to tak, ₧e kdykoli je pomocφ protokolu ARP vyslßn v sφti A dotaz na fyzickou adresu n∞kterΘho hostitelskΘho poΦφtaΦe v sφti B, brßna G na tento dotaz odpovφ, a vrßtφ svou fyzickou adresu. VÜechny datagramy, urΦenΘ p°φsluÜnΘmu poΦφtaΦi, jsou pak posφlßny na tuto fyzickou adresu, tedy ve skuteΦnosti brßn∞ G, kterΘ je pak prost°ednictvφm sφt∞ B dßle p°edßvß jejich koneΦnΘmu adresßtovi. V²sledn² efekt je tedy takov², jako kdyby sφ¥ B spl²vala se sφtφ A, a m∞la s nφ tudφ₧ stejnou sφ¥ovou adresu.

ProblΘm je ovÜem v omezenΘ pou₧itelnosti (jen tam, kde je pou₧φvßn protokol ARP), a dßle takΘ v tom, ₧e n∞kterΘ implementace protokolu ARP se sna₧φ detekovat a hlßsit sprßvci sφt∞ tzv. spoofing, jak se oznaΦuje situace, kdy jedno za°φzenφ p°edstφrß, ₧e je jin²m za°φzenφm (nap°φklad proto, aby mohlo neoprßvn∞n∞ "odposlouchßvat" p°enßÜenß data).


zp∞t do archivu Φlßnk∙ | rejst°φk | p°edchozφ dφl | nßsledujφcφ dφl
Tento Φlßnek m∙₧e b²t voln∞ Üφ°en, pokud se tak d∞je pro studijnφ ·Φely, na nev²d∞leΦnΘm zßklad∞ a se zachovßnφm tohoto dov∞tku. Podrobnosti hledejte zde, resp. na adrese http://archiv.czech.net/copyleft.htm