VyÜlo v t²denφku: | CHIPweek |
╚φslo: | 14/97 |
Datum: | 1. dubna 1997 |
Strana: | 24 |
Rubrika/kategorie: | Principy poΦφtaΦov²ch sφtφ |
Modul: | Internetworking |
Dφl: | 8 |
P°ipome≥me si nejprve, váΦem spoΦφvß ji₧ zmφn∞nΘ "klasickΘ" °eÜenφ: vátom, ₧e se zvolφ vhodn∞ velkΘ (Φi malΘ) skupiny uzl∙, kterΘ tvo°φ urΦit² logick² celek, a tyto se mezi sebou propojφ na ·rovni linkovΘ vrstvy, pomocφ switche, tak aby jejich propojenφ bylo co mo₧nß nejvφce propustnΘ a nabφzelo maximßlnφ mo₧nou vzßjemnou konektivitu. Tφm vzniknou jednotlivΘ dφlΦφ sφt∞ (jednotnΘ celky zápohledu sφ¥ovΘ vrstvy), kterΘ se mezi sebou propojφ sm∞rovaΦi. V²sledkem je pak "ostr∙vkovit²" charakter celΘ v²slednΘ soustavy, a sm∞rovßnφ (p°epojovßnφ na ·rovni sφ¥ovΘ vrstvy) je vánich soust°ed∞no jen na okraje jednotliv²ch ostr∙vk∙ - sφtφ.
O nev²hodßch takovΘhoto "klasickΘho" uspo°ßdßnφ" jsme si takΘ ji₧ °φkali: kritΘriφ, podle kter²ch by jednotlivΘ uzly m∞ly b²t seskupovßny do dφlΦφch sφtφ, je vφce - nap°φklad prßce se spoleΦn²mi daty, lokalizace provozu uvnit° skupiny, stejnß oprßvn∞nφ a bezpeΦnostnφ statut apod. - a prakticky nikdy jim nelze optimßln∞ vyhov∞t vÜem. Snad nejv∞tÜφm problΘmem pak b²vajφ fyzickΘ dispozice, kterΘ mnohdy odsouvajφ jinß kritΘria do pozadφ a rozhodujφ o vÜem samy.
O jednom mo₧nΘm °eÜenφ problΘmu sáfyzick²mi dispozicemi jsme si ji₧ takΘ °φkali - jsou to virtußlnφ sφt∞ LAN (VLAN), kterΘ dovolujφ za°azovat jednotlivΘ poΦφtaΦe do dφlΦφch sφtφ zcela bez ohledu na jejich fyzickΘ umφst∞nφ.
DalÜφ mo₧nΘ °eÜenφ, kterΘ lze vájistΘm smyslu chßpat i jako zobecn∞nφ principu virtußlnφch sφtφ LAN je tzv. distribuovanΘ sm∞rovßnφ. SpoΦφvß vátom, ₧e se potlaΦφ dosud p°etrvßvajφcφ p°edstava o ostrΘ d∞lb∞ prßce mezi switche a sm∞rovaΦe, a o "vytlaΦenφ" sm∞rovßnφ a sm∞rovaΦ∙ na okraje dφlΦφch sφtφ. MyÜlenka distribuovanΘho sm∞rovßnφ je zalo₧ena na tom, ₧e se sm∞rovacφ funkce pokud mo₧no rovnom∞rn∞ "rozprost°ou" po celΘ sφti. Tφm se dosßhne maximßlnφ mo₧nΘ pru₧nosti p°i logickΘm Φlen∞nφ na jednotlivΘ dφlΦφ sφt∞.
DistribuovanΘ sm∞rovßnφ takΘ vychßzφ záp°edstavy, ₧e p°epojovßnφ na ·rovni linkovΘ vrstvy ("switchovßnφ") i p°epojovßnφ na ·rovni sφ¥ovΘ vrstvy (sm∞rovßnφ) majφ velmi mnoho spoleΦnΘho - ve svΘ podstat∞ jde o p°edßnφ bloku dat zájednoho segmentu do druhΘho, a rozdφl je pouze vátom, na zßklad∞ jak²ch rozhodnutφ se tak d∞je. Na tomto p°φstupu je pak zalo₧ena jedna závariant implementace distribuovanΘho sm∞rovßnφ: varianta, kterß p°edpoklßdß ₧e p°epojovacφm uzl∙m (v∞tÜinou oznaΦovan²ch jako switche) bude dßna schopnost p°epojovßnφ jak na ·rovni linkovΘ vrstvy, tak i na ·rovni vrstvy sφ¥ovΘ. Vlastn∞ tak vznikne kombinace switche a sm∞rovaΦe "v jednΘ krabici", oznaΦovanß obvykle jako tzv. vφce·rov≥ov² switch (multilayer switch).
MyÜlenka zkombinovat p°epojovßnφ na ·rovni linkovΘ a sφ¥ovΘ vrstvy ovÜem narß₧φ na dva nep°φjemnΘ problΘmy. Prvnφm zánich je pomalost sm∞rovßnφ, a druh²m nßroΦnost sprßvy sm∞rovacφch informacφ. Rozeberme si nejprve ten prvnφ.
P°epojovßnφ na ·rovni linkovΘ vrstvy je po strßnce logickΘho rozhodovßnφ pom∞rn∞ jednoduchΘ, a celΘ p°epojovßnφ tak m∙₧e b²t bez v∞tÜφch problΘm∙ °eÜeno hardwarov²mi prost°edky, a tudφ₧ b²t i hodn∞ rychlΘ. Tak rychlΘ, ₧e zpo₧d∞nφ vznikajφcφ pr∙chodem p°es p°epojovacφ uzel (switch) je srovnatelnΘ sárychlostφ p°enosu (u cut-through switch∙ odpovφdß dΘlce p°enosu hlaviΦky rßmce). Ne nadarmo je pak rychlost fungovßnφ switch∙ oznaΦovßna neformßln∞ jako "wire speed" (doslova: rychlost drßtu).
Naproti tomu p°epojovßnφ na ·rovni fyzickΘ vrstvy vychßzφ zámnohem slo₧it∞jÜφch rozhodnutφ, a dosud je typicky °eÜeno programov²mi prost°edky, tj. vásoftwaru, a tudφ₧ i v²razn∞ pomaleji. Dosßhnout rychlosti , kterß by si zaslou₧ila p°φvlastek "wire speed", se da°φ jen velmi v²konn²m, velk²m a drah²m sm∞rovaΦ∙m, zatφmco u ekonomiΦt∞jÜφch model∙ m∙₧e b²t rozdφl várychlostech dosti v²razn² (nap°φklad a₧ desetinßsobn²).
Cφlem v²robc∙ aktivnφch sφ¥ov²ch prvk∙ samoz°ejm∞ je dosßhnout takovΘho stavu, aby p°epojovßnφ na linkovΘ i sφ¥ovΘ vrstv∞ bylo stejn∞ rychlΘ. To by vápraxi znamenalo, ₧e provoz uvnit° sφtφ, zprost°edkovßvan² switchi, by mohl b²t stejn∞ rychl² a se stejn∞ mal²m pr∙chozφm zpo₧d∞nφm (latency) jako provoz mezi sφt∞mi - Φφm₧ by odpadl nßroΦn² a mnohdy obtφ₧n∞ splniteln² po₧adavek volit jednotlivΘ sφt∞ tak, aby v∞tÜina provozu vánich byla lokalizovßna. To by pak znaΦn∞ uvolnilo ruce autor∙m sφtφ, a umo₧nilo mnohem pru₧n∞ji volit architekturu jejich sφtφ.
Dosßhnout tohoto cφle vÜak znamenß zjednoduÜit rozhodovßnφ na ·rovni sφ¥ovΘ vrstvy, tak aby p°φsluÜnß rozhodnutφ mohla b²t provedena snadno a rychle, a t°eba i implementovßna p°φmo v hardwaru. Tφm by se pak mφsto o klasickΘ "sm∞rovßnφ" jednalo spφÜe o "switchovßnφ", by¥ probφhajφcφ na ·rovni t°etφ, tj. sφ¥ovΘ vrstvy. VáodbornΘ literatu°e se takovΘmuto zp∙sobu fungovßnφ zaΦφnß °φkat Layer 3 switching, nebo takΘ IP switching (to proto, ₧e p°eva₧ujφcφm protokolem sφ¥ovΘ vrstvy, kter² by m∞l b²t "switchovßn", je stßle Φast∞ji protokol IP).
Dosßhnout takovΘ efektivnosti a rychlosti fungovßnφ, aby bylo mo₧nΘ hovo°it o IP switchingu, nenφ snadnΘ, a dodnes mezi v²robci nepanuje jednotn² nßzor na to, jak toho dosßhnout. Jeden zámo₧n²ch p°φstup∙ spoΦφvß váopat°enφ p°enßÜen²ch paket∙ zvlßÜtnφmi nßlepkami, podle kter²ch by se pak váp°epojovacφch uzlech p°ijφmala p°φsluÜnß sm∞rovacφ rozhodnutφ. P°i vhodnΘ koncepci t∞chto nßlepek (anglicky: tags) by v∞tÜinu slo₧it²ch rozhodnutφ bylo mo₧nΘ minimalizovat, Φi uΦinit jednorßzov∞ (p°i generovßnφ nßlepek), a pr∙b∞₧nΘ rozhodovßnφ by pak mohlo b²t dostateΦn∞ jednoduchΘ a rychlΘ. Navφc by tento p°φstup nemusel b²t nutn∞ zßvisl² na konkrΘtnφm pou₧φvanΘm sφ¥ovΘm protokolu. Nev²hodou je skuteΦnost, ₧e pro takov²to p°φstup (oznaΦovan² jako tag switching) dnes neexistuje vhodn² standard, a vÜe je zatφm ve stßdiu proprietßrnφch °eÜenφ.
DalÜφm zajφmav²m p°φstupem je snaha zbavit p°epojovacφ uzly slo₧itΘho rozhodovßnφ tφm, ₧e jim n∞kdo jin² (vhodnß centrßlnφ autorita) doslova naservφruje p°edem p°ipravenß rozhodnutφ, kterß pak zmφn∞nΘ p°epojovacφ uzly pouze co nejrychleji napl≥ujφ. Vápraxi tento p°φstup p°edpoklßdß existenci centrßlnφch uzl∙, vystupujφcφch vároli "sm∞rovacφch server∙" (route servers) a distribuujφcφch pot°ebnΘ sm∞rovacφ informace sv²m klient∙m - switch∙m. P°edstava je zde takovß, ₧e kdy₧ si n∞jak² switch nevφ rady sán∞jak²m paketem, kter² by m∞l zpracovat na ·rovni sφ¥ovΘ vrstvy, zeptß se sm∞rovacφho serveru. Ten mu poradφ, switch se podle toho zachovß, a po urΦitou dobu si radu sm∞rovacφho serveru pamatuje a opakovan∞ ji pou₧φvß.
MyÜlenka sm∞rovacφch server∙ navφc °eÜφ i nep°φjemn² problΘm s aktualizacφ sm∞rovacφch informacφ, o kterΘ se musφ jednotlivΘ sm∞rovaΦe vzßjemn∞ d∞lit, resp. pravideln∞ si je ve vzßjemnΘ souΦinnosti up°es≥ovat (nap°. pomocφ protokol∙ RIP, OSPF apod.). TakΘ kátomu je zapot°ebφ urΦitß inteligence, kterou je v²hodnΘ soust°edit do jednoho uzlu, a nechat ostatnφ a¥ se soust°edφ zase na rychlost. Podobn∞ je tomu i se sprßvou - p°i pou₧itφ sm∞rovacφch server∙ m∙₧e b²t veÜkerß sprßva soust°ed∞na do jednoho mφsta, zatφmco v²konnΘ switche mohou b²t za°φzenφ nevy₧adujφcφ v∙bec ₧ßdnou sprßvu.