Како ради свич – L2 и Multilayer Switching

Задњих неколико деценија, сведоци смо рапидног развоја ИТ технологија. Овај сегмент технолошког простора напредовао је толико да је реално немогуће да један ИТ професионалац испрати све иновације на пољу хардвера и софтвера. Константни развој мрежних технологија и уређаја омогућио нам је уживање у свакодневним активностима на интернету, приступ филмовима, видео и аудио садржајима, музици, интернет позивима и бројне друге погодности. Уређаји и протоколи који све ово омогућују, за просечне кориснике нису транспарентни, али за професионалце из области рачунарских мрежа представљају свакодневни изазов.

Када говоримо о мрежним уређајима свич (енг. switch) и рутер (енг. router) су незаобилазне теме. Ова два уређаја представљају срж сваке рачунарске мреже и архитектура савремене мреже је готово незамислива без њихове употребе. Континуално унапређивање перформанси ових уређаја донело је прегршт нових могућности и иновација на пољу рачунарских мрежа. Стални развој узроковао је и да свичеви постепено поприме особине рутера и замене рутере у неким сегментима. Постепено је оваквом типу свича додељен назив којег би смо превели као „вишенивоовски“ свич (енг. multilayer switch). Тако је настао MultiLayer Switching (у даљем тексту MLS) као нови концепт у мрежним технологијама.

OSI МОДЕЛ

OSI модел

Пре било какве приче о MLS-у корисно је подсетити се OSI референтног модела, а затим и класичног свичинга. OSI референтни модел представља архитектурни стандард у мрежним системима. Овај слојевити модел објашњава начин комуникације између мрежних уређаја и дефинише протоколе за сваки слој.

OSI модел обухвата седам слојева (енг. Layers) и то: физички слој (енг. Physical Layer), слој података (енг. Data Link Layer), мрежни слој (енг. Network Layer), транспортни слој (енг. Transport Layer), слој сесије (енг. Session Layer), слој презентације (енг. Presentation Layer) и апликативни слој (енг. Application Layer). За сваки од седам слојева (у даљем тексту се користе ознаке L1 до L7) дефинишу се одређени протоколи. Овај модел је теоријски модел. У пракси, користи се TCP/IP модел који садржи 4 нивоа (layer-a) и у коме подела између слојева није толико стриктно дефинисана.

L2 (КЛАСИЧНИ) СВИЧИНГ

Класичан свичинг обавља се на нивоу L2. За прослеђивање пакета користи се физичка тј. MAC адреса. Готово сви данашњи свичеви се лако инсталирају и способни су да самостално науче и мапирају MAC адресе мрежних уређаја на одговарајући физички порт односно интерфејс. Број интерфејса зависи од модела и карактеристика свича.

Учење се одвија коришћењем специјалних табела које су због брзине најчешће хардверски имплементиране (Application Specific Integrated Circuits или скраћено ASIC). Ове табеле се срећу под називом CAM односно MAC табеле (Cisco користи CAM терминологију).

Различити модели свичева

Када пакет стигне на одређени порт, посматра се изворна и одредишна физичка (MAC) адреса. Изворна адреса се користи за учење о уређајима на мрежи, док се одредишна користи за прослеђивање пакета. У табели се уноси запис који садржи изворну физичку адресу и број порта на који је пристигао пакет са изворном адресом. Одредишна адреса се користи за одређивање порта на који треба проследити пакет. У табели се затим врши претрага која адреса ком порту одговара. Ако се пронађе мапирање пакет се прослеђује на одговарајући порт.

На овај начин свичеви прослеђују саобраћај само на одговарајући порт, за разлику од Hub уређаја који прослеђују на свим портовима осим на порт са ког је стигао пакет. Једини случај када ће свич проследити пакет на све портове је када процес учења није завршен, другим речима када свич нема апсолутно никакву информацију о одредишној адреси.

На следећем примеру може се видети како класичан свичинг заиста ради: Хост X и Y припадају сегменту А, док хост Q и хост Z припадају сегментима B и C респективно. У сегменту А налази се један хaб уређај на коме су мрежним каблом повезани хост X и хост Y. Претпоставимо да смо ову мрежну архитектуру управо обогатили једним свичем и на њега мрежним каблом повезали Hub, хостове Q и Z.

Приказаћемо три најчешћа примера комуникације:

Хост X шаље пакет хосту Z

Пакет стиже до Hub уређаја. Hub у складу са својим начином рада, прослеђује пакет на свим портовима осим на порту где је стигао пакет. Како су на истом сегменту, хост Y прима тај пакет, али га одбацује јер анализирајући MAC адресу закључује да пакет није намењен њему. У исто време пакет се прослеђује и свичу. Свич анализира изворну адресу, и у својој MAC табели која је тренутно празна, уноси први запис у облику <MAC address, port, timestamp>.

На овај начин свич зна на ком се интерфејсу налази хост X (порт Fa0/1). Ово представља процес учења (енг. learning). Да би проследио пакет свич мора да анализира одредишну адресу пакета. Како тренутно свич зна само за хост X пакет се прослеђује на свим интерфејсима (енг. flooding), осим на интерфејс са ког је стигао. Пакет примају Q и Z, али потврђује једино хост Z. Када потврдни пакет стигне до свича, уређај сазнаје на ком је сегменту хост Z и додаје нови запис у MAC табели. Анализирајући табелу свич сада зна на ком је порту хост X и прослеђује пакет на тај порт (нема flooding-а).

Ово прослеђивање пакета је главна функција свич уређаја (енг. forwarding). Битно је напоменути да се због хардверске имплементације ово прослеђивање пакета одвија веома брзо. Даљи саобраћај са хоста X ка хосту Z се одвија брзо и једноставно без flooding-а, користећи само forwarding.

Хост Y шаље пакет хосту X

Када пакет стигне до Hub уређаја, овај прослеђује као и у првом примеру на све портове. Како су хостови X и Y на истом мрежном сегменту, пакет стиже до хоста X и тиме је једносмерна комуникација завршена. Међутим, свич то не зна, јер и он у истом временском тренутку добија пакет намењен хосту X. Свич сада учи на ком се интерфејсу налази хост Y.

Анализирајући одредишну адресу и записе у табели за хостове X и Y на основу истог интерфејса (Fa0/1) закључује да су X и Y на истом сегменту. Због тога, примљени пакет се одбацује и нема прослеђивања од стране свича, тј. нема дуплирања пакета. Овај процес се назива филтрирање (енг. filtering).

Хост X шаље пакет хосту Z који је замењен другим уређајем или више није активан.

Ако сте се питали која је сврха поља timestamp у MAC табели, ево одговора. Баш због оваквих и сличних промена на мрежи, поље timestamp се користи како би MAC табела увек била ажурна. Увек када свич анализира изворну адресу долазног пакета, ажурира се timestamp поље тренутним временом или креира нови запис уколико не постоји у табели. Свич временом пролази кроз све записе у табели и проверава timestamp поље.

Ако уређај на мрежи не процесира пакете у одређеном временском интервалу онда се запис за тај уређај, у MAC табели посматра као неважећи и уклања из табеле. Најчешће се ова техника ажурирања, у енглеској терминологији среће под називом aging, а интервал после ког се записи одбацују као застаrelи се назива mac-table-aging-time. Овај термин се среће код програмибилних свичева. Још један битан разлог зашто се користи ова техника је ограничена меморија свича и број записа у табели. На овај начин меморија свича се оптимизира.

Ако хост X покуша да комуницира са хостом Z који није на мрежи, тј. запис који мапира адресу хоста Z у одговарајући порт је избрисан из табеле, онда се ради класичан flooding као у првом примеру. На примљени пакет нико неће одговорити тако да ће X после неког времена закључити да уређај више не постоји на мрежи.

Што се тиче техника за прослеђивање пакета, у свичевима могу да се нађу две најпознатије: Cut-Through и Store-and-Forward. Код прве технике, због брзине, пакет се прослеђује одмах након анализирања одредишне адресе, док се код друге пакет анализира у целини и прослеђује једино ако нема грешака.

Генерално гледано, коришћењем прве технике добија се на брзини, док коришћењем друге технике смањује се колизија и пропагирање пакета с грешком се овде зауставља. Данас је разлика између ове две технике у времену прослеђивања постала занемарљива, тако да се Store-and-Forward техника намеће као боље решење.

РУТИРАЊЕ

Као што свичеви марљиво раде на нивоу L2 тако су рутери задужени за саобраћај на вишим нивоима, посебно на нивоу L3. Најчешћи протоколи у комуникацији на L3 нивоу су IPv4, IPv6, IPX.и IPSec. Наравно данас је најзаступљенији IPv4 протокол са својим адресама дужине 32 бита. Због недостатка IP адреса, питање тренутка је када ће IPv6 са својим IP адресама од 64 бита постати свакодневница.

Главна функција рутера је рутирање пакета између мрежа. Рутери за то користе табеле за рутирање и један или комбинацију више протокола за рутирање. За разлику од свичева где су MAC табеле имплементиране хардверски, код рутера, табеле за рутирање су имплементиране софтверски. Сам процес анализирања IP адреса, провера пакета и рутирање захтева знатно дужи временски период у односу на свичеве где се прослеђивање пакета одвија скоро неприметно. Зато је рутерима, иако имају много предности, главна мана – време потребно за процесирање пакета. Данас, развојем нових технологија ово постаје реалан проблем.

Разни рутери

 

MULTILAYER СВИЧИНГ

До пре неколико година, постојала је јасна граница између свичева и рутера. Свичеви су радили на нивоу L2, анализирали MAC адресу и нису имали појма шта је то IP адреса. Насупрот њима рутери су радили и још увек раде на вишим нивоима, анализирају IP адресу и користе протоколе за рутирање како би успешно допремили пакет на жељену IP адресу у мрежном свету. Међутим, са развојем нових технологија расте и потреба за бржом пропагацијом пакета између мрежа.

Тренутна имплементација рутера и стандарди не омогућавају потребне перформансе. Потребна је знатно бржа комуникација која се може поредити са брзином рада свич уређаја. Из овог разлога, задњих година, велики број произвођача брише границу између свичева и рутера. Тако је светлост дана угледао нови уређај назван мултинивоовски свич (енг. multilayer switch), а самим тим рођен је и нови концепт multilayer switching (у даљем тексту MLS).

MLS представља концепт у коме је обједињен класичан свичинг и рутирање. Свич са овом карактеристиком ради као обичан (L2) свич, али има могућности да у зависности од подешавања ради и на вишим нивоима, најчешће на нивоу L3 за потребе рутирања пакета. Предност овог концепта је што се задржава брзина жице, јер су табеле за рутирање најчешће хардверски имплементиране. Зато се ови свичеви уграђују у мрежама где је потребна брза пропагација пакета. Слично рутерима и овде се користе основни протоколи за рутирање типа: RIP, RIPv2, OSPF, EIGRP и остали.

Технике за имплементацију MLS концепта су од произвођача до произвођача, углавном сличне. У даљем тексту дата је упрошћена илустрација како то ради гигант у производњи мрежне опреме на свету, компанија Cisco.

Компоненте

Да би MLS био могућ неопходне су следеће компоненте:

  • MultiLayer Switching – Switching Engine (у даљем тексту MLS-SE) је свич који подржава MLS. Неопходна је картица која представља део хардвера у свичу који обавља forwarding пакета, одржава кеш табелу и комуницира са MLS рутером. Ову картицу Cisco назива NetFlow Feature Card (у даљем тексту NFFC).
  • MultiLayer Switching – Route Processor (у даљем тексту MLS-RP) је екстерни рутер или уграђени модул у свичу који има функцију рутера. MLS-RP служи да рутира пакете коришћењем стандардних протокола (RIP, RIPv2, OSPF, EIGRP итд.), примени правила ACL-а (Access Control List – контрола приступа) и још неке додатне функционалности. Генерално, варијанта уграђеног модула који глуми функцију рутера је боље решење. Овом варијантом се добија на брзини, јер нема прослеђивања пакета до екстерног рутера, него се све завршава у свичу. Међутим, добитак на овој брзини је мали. За огромно повећање брзине је заслужна NFF и MLS процес о коме ће бити више речи касније.
  • MultiLayer Switching Protocol (у даљем тексту MLSP) је MLS протокол којег извршава MLS-RP. Овај протокол се користи у комуникацији између MLS-RP и MLS-SE, тачније између MLS-RP и NFFC, јер NFFC припада MLS-SE.

Начин рада

Размотримо тривијални MLS пример у мрежи са два хоста која су на два различита VLAN-а и свичем који има уграђени MLS-RP модул. Иницијална кеш табела је у тренутку укључивања свича наравно празна. Генерална замисао је да се у процесу комуникације између два хоста на различитим мрежама, први пакет рутира, а онда се сви остали пакети у том протоку података прослеђују L3 нивоу свича.

Ово је реални случај јер ретко када је комуникација садржана у само једном пакету. Овде се под протоком (енг. flow) подразумева комуникација између два хоста на портовима који се не мењају. Тако на пример није исти проток уколико два хоста комуницирају преко HTTP (порт 80) протокола и ако комуницирају преко FTP (порт 21) протокола. За сваки од ова два протокола се прави посебан запис у MLS кеш табели.

У тренутку када је MLS-SE активан на мрежи MLSP обавештава свич о MAC адреси MLS-RP уређаја и броудкастује ову адресу до свих свичева на мрежи уколико постоје. MLS-RP контролише рутирање као и ACL (Access Lists). Када MLS-SE добије hello пакет од MLSP, свич се програмира са MAC адресом MLS-RP уређаја. Овом адресом се мења изворна MAC адреса у пристиглом пакету и прослеђује даље. Тако крајњи уређај не зна да је на мрежи свич уместо рутера.

Претпоставимо да хост X иницира комуникацију са хостом Y. Када хост X пошаље први пакет до MLS-SE, он се прослеђује MLS-RP уређају. MLS-SE препознаје овај пакет као пакет кандидат (енг. candidate). У овом тренутку почиње процес учења. MLS-SE анализира изворишну и одредишну IP и MAC адресу као и број порта и прослеђује пакет до MLS-RP. Овим је у MLS кешу делимично креиран запис. MLS-RP прима пакет и тражи поклапање у табели за рутирање како би знао коме да проследи пакет. MLS-RP такође проверава ACL и CoS (Class of service) уколико постоје.

Уколико је дозвољено проследити пакет, онда MLS-RP у следећем кораку брише постојеће MAC адресе из пакета и додаје одредишну MAC адресу за хост Y и своју MAC адресу као изворну адресу. Овако измењен пакет се враћа назад до MLS-SE. Сада MLS-SE препознаје MAC адресу MLS-RP уређаја и посматра овај пакет као пакет омогућилац (енг. enabler). На овај начин се формира пун запис у MLS кеш табели.

Након овога сви наредни пакети који се шаљу са хоста X ка хосту Y и одговарају овом протоку неће бити рутирани од стране MLS-RP уређаја него ће бити одмах прослеђивани брзином свича. Пре прослеђивања у свим пакетима се мењају MAC адресе, тј. као одредишна се поставља MAC адреса хоста Y док се као изворна поставља MAC адреса MLS-RP уређаја. Ово ради MLS-SE, тачније NFFC хардвер. На овај начин промена у архитектури мреже постаје транспарентна за крајње уређаје, док се у исто време много добија на брзини, јер нема класичног рутирања и кашњења пакета.

Другим речима хостови X и Y неће захтевати промене у конфигурацији нити видети разлике (осим брзине) било да су њихове мреже спојене класичним рутером или MLS свичем. Треба напоменути да је ова комуникација једносмерна и запис у MLS кеш табели важи само за један смер комуникације тј. од хоста X ка хосту Y. Када Y одговори на иницирану комуникацију, процес се понавља, али у супротном смеру. У MLS кеш табели се на исти начин као и у претходном случају прави нови запис, с тим што је комуникација обрнута.

MLS дозвољава конфигурисање стандардних и проширених ACL-а без угрожавања брзине. Када се једном конфигуришу на MLS-RP онда су видљиве од стране MLS-SE и извршавају се великом брзином. Узмимо случај да постоји ACL која брани проток података од хоста X ка хосту Y. Када пакет кандидат пристигне у MLS-RP, примењује се ACL и овај пакет се одбацује. Последица овог је да пакет омогућилац никад неће стићи до MLS-SE и формирати пуну путању у MLS кеш табели.

ПРЕДНОСТИ И НЕДОСТАЦИ MLS-а

За MLS се може рећи да има много предности, а мало мана. Неке од најбитнијих су:

  • Брзина – ово је највећа, уједно и најбитнија предност па чак и разлог због којег MLS постоји. Брзина је постигнута хардверском имплементацијом свих битнијих функција. NFFC игра главну улогу у овоме.
  • Транспарентност – крајњи уређаји не захтевају никакву конфигурацију. Мрежна структура се не мења. Доданта погодност је што MLS користи DHCP.
  • Мања инвестиција – ако већ постојећи свич подржава MLS, могу се уградити картице (на пример NFFC) које омогућавају MLS, као и MLS-RP у облику модула. Друга варијанта је уградња екстерног рутера. Генерално гледано, више се исплате од рутера.
  • Подржани стандарди – подржани су стандардни протоколи за рутирање типа OSPF и RIP. Ово омогућава да се MLS лако инсталира у мрежи између различитих провајдера.
  • Брза конвергенција – у случају промене мрежне топологије или грешке код рута, хардверски се веома брзо исправљају невалидни записи у кеш табели
  • Лако се користи – аутоматски конфигурише MLS кеш. Такође, plug-and-play дизајн елиминише потребу за учењем нових технологија од стране корисника
  • ACL – омогућава дозволу и забрану саобраћаја између хостова на различитим подмрежама. Из разлога што MLS у току рада посматра и портове, листе могу бити конфигурисане коришћењем IP адреса и портова.

Постоји још много предности које тренутно није значајно набрајати. Неки од битнијих недостака су да мултинивовски свичеви не подржавају толико функција као што је то случај код рутера. Други недостатак је што још увек не подржавају све протоколе за рутирање. Осим тога, мултинивовски свичеви тренутно не подржавају све WAN интерфејсе.

ЗАКЉУЧАК

Иако постоје реалне шансе за коришћење MLS концепта, већи део стручне популације је још увек скептичан по том питању. Неки произвођачи једноставно не желе да промовишу MLS из разлога што имају стабилне продајне линије рутера. Како су данас рутери у огромном броју заступљени у свим мрежама, веома је тешко заменити мултинивовским свичевима у неком кратком временском периоду. Било како било, MLS обећава дајући реалне резултате и велике напретке у брзини, и само је питање тренутка када ће рутери отићи у заборав или у неки другачији облик.

Извори података У тексту су коришћене дефиниције и/или технички подаци из следећих извора:

Текст је преузет са угашеног блога ИТ модул и оригинални аутор овог текста је Саша Костадиновић. Компјутераш ИТ блог објављује текстове са тог блога како ризница знања са те локације не би отишла у заборав.