1 UVOD Z razmahom interneta in širokopasovnih omrežnih povezav v zadnjem desetletju se je izoblikovalo veliko novih in naprednih internetnih storitev. Med te uvrščamo prenos televizije, videa ali zvoka. Za uspešno delovanje internetne televizije se uporablja prenosni način multicast [1] [2], ki omogoča oddajanje več prejemnikom hkrati. Internetna televizija (IPTV) je tipičen primer uporabe prenosnega načina multicast preko protokola IPv4 (ang. internet protocol version 4). Problem hitrega razmaha interneta je pomanjkanje naslovnega prostora protokola IPv4, zato so razvili in standardizirali protokol IPv6 (ang. internet protocol version 6). Prehod IPTV na protokol IPv6 še ni zaživel, se pa tehnologija uporablja v testnih omrežjih. Tehnologijo multicast, usmerjevalne protokole multicast [3] in protokol IPv6 podpira večina usmerjevalnih naprav različnih proizvajalcev (npr. Cisco, Juniper). Poleg komercialnih obstajajo tudi odprtokodne rešitve (npr. XORP, Vyatta, Quagga) [4] [5], katerih uporaba je tako tehnično kot finančno upravičljiva. 2 ODDAJANJE VEČ PREJEMNIKOM Tehnologija oddajanja več prejemnikom (ang. multicast) se uporablja za prenos živih vsebin. Ključne prednost tehnologije, so: • manjša obremenitev strežnikov in omrežnih vozlišč, • učinkovita izraba pasovne širine in • optimalna izraba virov podatkov. Prejet 16. oktober, 2011 Odobren 24. oktober, 2011 212 RUGELJ, STERLE, KOS 2.1 Arhitektura tehnologije multicast Osnovna gradnika, ki sestavljata omrežje multicast, sta dostopovno in distribucijsko omrežje (slika 1). Dostopovni del omrežja sestavljajo odjemalci in strežniki vsebin multicast in robni usmerjevalniki. Odjemalci na tem segmentu uporabljajo protokola IGMP (ang. internet group management protocol) [1] [6] in MLD (ang. multicast listener discovery) [7]. Distribucijsko omrežje sestavljajo robni in hrbtenični usmerjevalniki, ki morajo podpirati enega izmed usmerjevalnih protokolov multicast (npr. PIM sparse mode, PIM dense mode, BIDIR-PIM) [3]. Slika 1: Arhitektura tehnologije multicast 3 ODPRTOKODNE USMERJEVALNE REŠITVE Zaradi slabosti komercialnih rešitev, kot so odvisnost od proizvajalca, zaprta arhitektura in visoka cena, so se razvile odprtokodne rešitve: • XORP (eXtensible Open Router Platform) [4], • Quagga [5], • Vyatta. Omenjene rešitve uporabljajo za usmerjanje iste oziroma njim prilagojene odprtokodne implementacije usmerjevalnih protokolov. Predstavljene rešitve se tako razlikujejo le v dodatnih funkcionalnostih, ki jih prikazuje tabela 1. 3.1 XORP XORP je razvit za operacijski sistem UNIX, vendar ima vso podporo tudi za sistem Linux. Odlikujejo ga naslednje lastnosti: • razširljiva arhitektura, • visoka zmogljivost posredovanja paketov ter • robustnost sistema. Glavna pomanjkljivost sistema sta strojna in programska oprema, saj je razvit za tipično računalniško arhitekturo. Preobremenitev CPU in velika zakasnitev branja podatkov iz računalniškega pomnilnika lahko omejujeta visoko zmogljivost usmerjanja in posredovanja paketov. V raziskavah [8] [9] je bilo dokazano, da omenjena težava lahko pomeni 90 odstotkov celotne zakasnitve paketov. XORP podpira vse tipične usmerjevalne protokole (tabela 1) za IPv4 in IPv6 in je edina odprtokodna rešitev, ki podpira protokol PIM-SM (ang. PIM sparse mode). Tabela 1: Funkcionalna primerjava usmerjevalnih rešitev Funkcionalnost XORP 1.8.3 Vyatta Core 6.2 Quagga 0.99.18 Cisco 2811 Usmerjevalni protokoli multicast PIM-SM � � PIM-SM, PIM-DM BI-PIM, MBGP Upravljalni protokoli multicast IGMP, MLD � � IGMP, MLD SSM multicast � � � � Statično usmerjanje � � � � RIPv2, RIPng � � � � OSPFv2, OSPFv3 / IS-IS � / � � / � � / � � BGPv4, BGPv6 � � � � MPLS � � � � VLAN (802.1Q) � � �1 � VPN IPSec, VPN SSL �1 � �1 � DHCP Server/Client/Relay � 1 � �1 � Mehanizmi usmerjevalne politike (Route maps) Omejena podpora � Omejena podpora � Zagotavljanje kakovosti storitev (VLAN Tag, Priority Queuing) � � � � Mehanizmi visoke zmogljivosti (VRRP) � � � 1 � 3.1.1 Arhitektura sistema XORP Sistem je razdeljen na dva podsistema [10]. Višji podsistem (uporabniški nivo) sestavljajo usmerjevalni protokoli in različni procesi, ki zagotavljajo podporo delovanju protokolov. Nižji podsistem, ki deluje znotraj jedra (ang. kernel) operacijskega sistema, je namenjen obdelavi in posredovanju paketov. Sistem sestavlja na uporabniški ravni večprocesna arhitektura z enim procesom za vsak usmerjevalni protokol in drugimi procesi za upravljanje, konfiguriranje in koordiniranje sistema. Slika 2 prikazuje arhitekturo sistema. Slika 2: Arhitektura sistema XORP 1 Z dodatnimi programi je funkcionalnost okvirno podprta v operacijskem sistemu Linux. FUNKCIONALNA IN ZMOGLJIVOSTNA PRIMERJAVA ODPRTOKODNIH IN KOMERCIALNIH MULTICAST REŠITEV 213 3.1.2 XRLs in Click Razširljivost sistema XORP omogoča mehanizem za komunikacijo med procesi imenovan XRLs (ang. XORP Resource Locators) [4] in posebno modularno orodje Click modular router oziroma Click [10]. Click uporablja nižji podsistem in omogoča hitro procesiranje ter posredovanje paketov. Click gradi posredovalno tabelo na principu povezovanja elementov, kjer vsak element pomeni preprosto funkcijo procesa. Mehanizem XRLs omogoča učinkovito integracijo več ločenih komponent v en koherenten sistem. Oblika naslavljanja je podobna internetnim naslovom URL. Primer naslavljanja za proces FEA (Forwarding Engine Abstraction) prikazuje slika 3. Slika 3: Naslavljanje XRLs [4] 4 IMPLEMENTACIJA SISTEMA XORP Pri implementaciji sistema XORP smo zagotovili ustrezno podporo usmerjanja multicast (MROUTE) in protokola PIM-SM v jedro operacijskega sistema Linux. Uporabili smo Ubuntu server 10.04 LTS ter z rekonfiguracijo (ang. compile) jedra vključili omenjeno podporo za protokol IPv6. Pri tem smo uporabili jedro Linux 2.6.38.4 (vanilla kernel). Z odprtokodnim vmesnikom smo zagotovili kompatibilnost med protokolom PIM-SM za IPv6 in sistemom XORP. S pomočjo različnih funkcij XRLs smo vzpostavili komunikacijo med odprtokodnim vmesnikom ter procesom PIM-SM sistema XORP. Sistem smo na koncu optimizirali z odstranitvijo nepotrebnih modulov in podpornih dodatkov iz jedra operacijskega sistema. 5 TESTIRANJE IN ANALIZA ZMOGLJIVOSTI Opravili smo tri zmogljivostne teste z vidika funkcionalnosti multicast [11] med sistemom XORP in napravo Cisco 2811: • test maksimalnega števila skupin multicast (ang. multicast group capacity), • test zakasnitve paketov multicast (ang. multicast packet latency), • test zakasnitve prijave v skupino multicast (ang. group join delay). Testi vključujejo meritev izključno določenih lastnosti zmogljivosti naprav in ne omogočajo meritev parametrov specifičnih komponent multicast (npr. hitrost gradnje distribucijskega drevesa multicast), ki bi lahko posledično vplivali na rezultate. V tem primeru gre za meritev ene same naprave in ne skupine naprav, zato je vpliv specifičnih komponent multicast zanemarljiv. 5.1 Poenostavitve pri testiranju naprav Pri analizi rezultatov je treba upoštevati naslednje predpostavke [12]: • metodologija predvideva enoten in nespremenljiv medij med testno napravo in testno merilno opremo, • vse teste smo izvedli pri privzeti nastavitvi usmerjevalnika Cisco 2811, • funkcionalnosti, kot so kontrola pretoka, mehanizem zagotavljanja kakovosti storitev ter protokol CDP (ang. cisco discovery protocol), smo izključili iz privzete nastavitve zaradi morebitnega vpliva na rezultate testa, • nepotrebne module in druge nekoristne funkcionalnosti smo odstranili iz jedra sistema. 5.2 Parametri izvajanja meritev Teste smo opravili za en vhodni in en izhodni vmesnik testne naprave, za oba internetna protokola (IPv4 in IPv6) na vmesniku Ethernet ter za različne velikosti okvirjev: • za internetni protokol IPv4 (64, 128, 256, 512, 1024, 1280 ter 1518 oktetov), • za internetni protokol IPv6 (86, 128, 256, 512, 1024, 1280 ter 1518 oktetov). Za IPv6 smo izbrali drugačno velikost najmanjšega okvirja (86 oktetov). Najmanjša velikost okvirja z dodano glavo UDP (ang. user datagram protocol) in podpisom paketa Spirent Test Centra [13], ki omogoča verifikacijo, je 86 oktetov. Pri izvajanju testov smo uporabili protokol IGMPv2 za IPv4 in protokol MLDv1 za IPv6. 5.3 Postavitev testnega omrežja Testno omrežje smo postavili v nadzorovanem laboratorijskem okolju, s čimer smo izločili zunanje dejavnike, ki bi lahko vplivali na rezultate testov. Testno omrežje prikazuje slika 4. Slika 4: Testno omrežje 214 RUGELJ, STERLE, KOS Teste smo izvedli z uporabo testne merilne opreme Spirent Test Center [13]. Naprava Spirent je delovala hkrati kot izvor in ponor prometa multicast. Lastnosti in karakteristike testnih naprav: 1. Odprtokodna rešitev XORP na sistemu Linux: • Operacijski sistem: Ubuntu server 10.04, LTS 32-bit, • Jedro Linux: Linux 2.6.38.4-kernel, • CPU: Intel Pentium 4 CPU 3.20 GHz, • Pomnilnik: DDR2 (2 GB), • Programska oprema: XORP 1.8.3. 2. Usmerjevalnik Cisco 2811 ISR: • IOS: C2800NM-ADVENTERPRISEK9- M, version 12.4(24)T1, release software (fc3), • CPU: Nepoznan podatek • Pomnilnik: DRAM (512 MB). 5.4 Test maksimalnega števila skupin multicast Cilj testa je določiti največje število skupin multicast ob uspešnem posredovanju paketov multicast vsem skupinam multicast. 5.4.1 Rezultati testa Rezultate testa prikazuje tabela 2. Uporabili smo naslednje nastavitvene parametre: • čas trajanja testa: 60 sekund, • število izhodnih vmesnikov testne naprave: 1, • verzija uporabljenega protokola: IGMPv2 (IPv4) in MLDv1 (IPv6), • obremenitev vmesnika (ang. offered load): 100 Mbit/s. Tabela 2: Rezultati testa maksimalnega števila skupin multicast Velikost okvirja [oktet] Maksimalno število multicast skupin (XORP) Maksimalno število multicast skupin (Cisco) IPv4 IPv6 IPv4 IPv6 64 86 122 138 98 115 128 164 154 116 134 256 223 190 165 179 512 260 212 181 210 1024 283 234 201 231 1280 310 281 231 283 1518 360 344 285 319 5.4.2 Analiza rezultatov testa Iz tabele 2 je razvidno, da sistem XORP podpira več skupin multicast za protokol IPv4 v primerjavi s protokolom IPv6 za vse velikosti okvirjev. Rezultat je pričakovan, saj je samo naslov protokola IPv6 štirikrat večji od naslova IPv4, kar posledično vpliva tako na velikost kot na procesno moč obdelave unicast in usmerjevalne tabele multicast. Naprava XORP podpira v povprečju 24 skupin multicast več (kar pomeni ~11 odstotkov) za IPv4 v primerjavi s protokolom IPv6. Iz grafa (slika 5) je razvidno, da naprava Cisco podpira večje število skupin multicast (v povprečju za 27 skupin multicast, kar pomeni ~15 odstotkov) za IPv6 v primerjavi s protokolom IPv4. Vzrok je v manjšem številu izgubljenih paketov multicast, saj manj izgubljenih paketov poveča verjetnost uspešnosti iteracije pri določenem številu skupin multicast. Iz tabele 2 je razvidno, da naprava XORP podpira večje število skupin multicast kot naprava Cisco: • v povprečju za 63 skupin multicast (kar pomeni ~35 odstotkov) za protokol IPv4 in • v povprečju za 11 skupin multicast (kar pomeni ~6 odstotkov) za protokol IPv6. Slika 5: Maksimalno število skupin multicast (100 Mbit/s) 5.5 Test zakasnitve paketov multicast Cilj testa je ugotoviti povezavo med zakasnitvijo paketov, velikostjo okvirja multicast in številom skupin multicast. 5.5.1 Rezultati testa Rezultate testa prikazujeta sliki 6 in 7. Test smo izvedli pri 10 in 100 skupinah multicast. Uporabili smo naslednje nastavitvene parametre: • čas trajanja testa: 120 sekund, • število izhodnih vmesnikov testne naprave: 1, • verzija uporabljenega protokola: IGMPv2 (IPv4) ter MLDv1 (IPv6), • obremenitev vmesnika: 10 Mbit/s. 5.5.2 Analiza rezultatov testa Grafa prikazujeta, da naprava XORP doseže najmanjšo zakasnitev paketov pri velikosti okvirja 64 oktetov (10 skupin multicast, IPv4), in sicer 17.214 us. Maksimalno zakasnitev paketov doseže pri velikosti 1518 oktetov (100 skupinah multicast, IPv6), in sicer 429.355 us. Iz rezultatov na slikah 6 in 7 je razvidno, da je zakasnitev paketov multicast pri napravi XORP 0 50 100 150 200 250 300 350 400 64 | 86 128 256 512 1024 1280 1518 Š te vi lo s k u p in m u lt ic a st Velikost okvirja (oktet) XORP IPv4 XORP IPv6 Cisco IPv4 Cisco IPv6 FUNKCIONALNA IN ZMOGLJIVOSTNA PRIMERJAVA ODPRTOKODNIH IN KOMERCIALNIH MULTICAST REŠITEV 215 neodvisna od števila skupin multicast (največja razlika zakasnitve paketov med 10 in 100 skupinami multicast je pri velikosti okvirja 1518 oktetov in protokolu IPv6 in znaša 6.423 us, kar pomeni ~1.5 odstotka povprečne zakasnitve za 1518 oktetov). Na zakasnitev paketov multicast pri napravi XORP v manjši meri vpliva internetni protokol (zakasnitev paketov za IPv6 pri 100 skupinah multicast je v povprečju večja za ~2.512 us od rezultatov za IPv4, kar pomeni ~2 odstotka povprečne zakasnitve). Največji vpliv ima velikost okvirja, kar je sicer pričakovan rezultat (razlika zakasnitve pri 100 skupinah multicast in protokolu IPv6 je med velikostjo okvirja 86 oktetov in 1518 oktetov in znaša 407.454 us). Slika 6: Zakasnitev paketov multicast (10 skupin multicast) Slika 7: Zakasnitev paketov multicast (100 skupin multicast) Naprava Cisco ima v povprečju večje zakasnitve paketov od naprave XORP. Manjšo zakasnitev paketov doseže le pri velikosti okvirjev 1280 in 1518 oktetov. Razvidno je tudi, da ima število skupin multicast majhen vpliv na zakasnitev paketov. Večji vpliv ima internetni protokol, vendar precej manj kot velikost okvirja. Največje odstopanje zakasnitve paketov med napravama (~2.46-krat) je pri velikosti okvirja 1518 oktetov (10 skupin multicast, protokol IPv4). 5.6 Test zakasnitve prijave v skupino multicast Cilj testa je določiti zakasnitev, ki ga potrebuje testna naprava, da posreduje paket multicast v izbrano skupino multicast, potem ko je uspešno prejela sporočilo IGMP Group Membership Report za prijavo v izbrano skupino multicast. Na rezultate testa vpliva stanje posredovalne tabele multicast2 (ang. multicast forwarding database). Zakasnitev prijave pomeni razliko med časom zadnjega bita sporočila IGMP Group Membership Report in časom prejetja prvega bita okvirja multicast na ponorni vmesnik testne merilne opreme. Test smo opravili za metodo A2 pri 10 in 100 skupinah multicast in obremenitvi linije 10 Mbit/s. 5.6.1 Rezultati testa Rezultate testa prikazujeta sliki 8 in 9. Uporabili smo naslednje nastavitvene parametre: • število izhodnih vmesnikov testne naprave: 1, • verzija uporabljenega protokola: IGMPv2 (IPv4) in MLDv1 (IPv6), • obremenitev vmesnika: 10 Mbit/s. 5.6.2 Analiza rezultatov testa Iz rezultatov (sliki 8 in 9) je razvidno, da internetni protokol in velikost okvirja pri napravi XORP relativno malo vplivata na zakasnitev prijave. Največji faktor je število skupin multicast, saj se zakasnitev pri 100 skupinah multicast (1518 oktetov in IPv4) poveča za ~4.22-krat glede na 10 skupin multicast. Pri napravi Cisco je dodatni dejavnik internetni protokol. Zasledimo lahko naslednje: • pri velikosti okvirja 64|86 oktetov ter 10 skupin multicast je razlika zakasnitve prijave med uporabljenima protokoloma približno ~2.15- krat in • pri velikosti okvirja 64 oktetov in protokolu IPv4 je razlika zakasnitve med 10 in 100 skupinami multicast približno ~6.54-krat. Slika 8: Zakasnitev prijave v skupino multicast (10 skupin multicast) 2 Metoda A: Metoda predvideva, da MFDB v začetnem stanju ne vsebuje nobenega naslova skupine multicast. 0 50 100 150 200 250 300 350 400 450 64|86 128 256 512 1024 1280 1518 Z a k a sn it ev ( u s) Velikost okvirja (oktet) XORP IPv4 XORP IPv6 Cisco IPv4 Cisco IPv6 0 50 100 150 200 250 300 350 400 450 500 64|86 128 256 512 1024 1280 1518 Z a k a sn it ev ( u s) Velikost okvirja (oktet) XORP IPv4 XORP IPv6 Cisco IPv4 Cisco IPv6 0 5 10 15 20 25 30 64|86 128 256 512 1024 1280 1518 Z a k a sn it ev ( m s) Velikost okvirja (oktet) XORP IPv4 XORP IPv6 Cisco IPv4 Cisco IPv6 216 RUGELJ, STERLE, KOS Slika 9: Zakasnitev prijave v skupino multicast (100 skupin multicast) Razlika med napravama je precejšnja, saj naprava XORP doseže manjše zakasnitve prijave v vseh segmentih. Največjo razliko je mogoče opaziti pri velikosti okvirja 86 oktetov (IPv6 in 100 skupin multicast), kjer doseže naprava XORP kar ~17.75-krat manjšo zakasnitev. 6 SKLEP Vzpostavili smo učinkovito in zmogljivo usmerjevalno napravo multicast na sistemu Linux. Z odprtokodnim vmesnikom smo zagotovili združljivost med protokolom PIM-SM (IPv6) ter sistemom XORP. Odprtokodni vmesnik smo učinkovito po zgledu za Unix integrirali v sistem Linux. Rezultati testov prikazujejo, da je z vidika multicast zmogljivejša naprava XORP v primerjavi z napravo Cisco 2811. Z uporabo rešitve XORP, implementacijo potrebnih funkcionalnosti v sistem Linux in opravljenimi zmogljivostnimi testi smo dokazali, da je odprtokodna rešitev XORP primernejša in boljša alternativa z vidika multicast za uporabo v majhnih in srednje velikih podjetjih. Na rezultate testov vpliva tudi uporabljena strojna oprema. Ne glede na to, da je strojna oprema naprave XORP po specifikaciji zmogljivejša, se je izkazalo, da pri maksimalnih obremenitvah CPU ne presega 10 odstotkov in zasedenost pomnilniškega prostora ne presega 16 odstotkov razpoložljivega vira. Majhna obremenitev in zasedenost virov nakazujeta verjetnost, da bi naprava dosegla podobne rezultate tudi pri precej slabši strojni opremi. Naprava XORP je poleg njene primarne funkcije hkrati uporabna tudi za številne druge večnamenske storitve. Rezultati neposredno prikazujejo tudi primerjavo med protokoloma IPv4 in IPv6. Testi prikazujejo majhna odstopanja rezultatov med internetnima protokoloma, kar pomeni zrel prehod tehnologije multicast na novejši protokol IPv6. Obstajajo tudi dodatne izboljšave (npr. optimizacija predpomnilnika naprave), ki bi omogočile izboljšanje delovanja naprav XORP in Cisco in bi lahko posledično vplivale na rezultate testov.