Az elmúlt években mind nagyobb szerephez jutottak azok a felhőalapú technológiák, amelyek alapjaiban kezdték átformálni az informatikát, és annak olyan jelentős szegmenseit, mint amilyen például az adattárolás, az alkalmazáshasználat vagy a biztonság. Az adatközpontok napjaink csillapíthatatlan adatéhsége miatt gombamód kezdtek szaporodni, és egyre jelentősebb kapacitásokat koncentrálnak annak érdekében, hogy a felhasználók igényeit ki tudják szolgálni.
A cloud computing térhódítása az adatközpontokra nemcsak az erőforrások és az adattároló képességek szempontjából ró nagy terhet, hanem a rugalmasság, a skálázhatóság, a hibatűrés, valamint a rendelkezésre állás tekintetében is. Ugyanakkor ezek a szempontok csak akkor érvényesíthetők – akár egy vállalati, privátfelhő-infrastruktúra esetében is –, ha mindezt a hálózat is megfelelő módon képes támogatni. Sajnos azonban a hálózati technológiák a felhőalapú számítástechnikával, illetve az adatközpontokkal nem mindig tudták tartani a lépést. Emiatt át kell értékelni az infrastruktúrák gerincét biztosító technológiákat, és még inkább azokat a filozófiai megközelítéseket, amelyek mentén eddig zajlott a hálózatok kiépítése és üzemeltetése. Jól látszik, hogy komoly szemléletváltásra van szükség ahhoz, hogy a folyamatosan változó üzleti igényekkel tartani lehessen a lépést.
Természetesen a változás szükségességét a hálózati eszközök gyártói, valamint az informatikai cégek is felismerték, sőt egyes piaci szereplők házon belül igyekeztek megoldást találni a kihívások leküzdésére. Jó példa erre a Google, amely évek óta saját eszközök fejlesztésével igyekszik biztosítani a komplex hálózati infrastruktúrájának felügyeletét, menedzselését és a mindenkori igényekhez történő igazítását. Ugyanakkor a legtöbb szervezet nem engedheti meg magának, hogy a Google-höz, az Amazonhoz vagy éppen a Facebookhoz hasonlóan több száz mérnököt foglalkoztasson a felhőalapú infrastruktúrák saját technológiákkal történő felvértezéséhez, különösen nem akkor, ha privát cloudról van szó. Így aztán most a hálózati eszközgyártókon a sor. Ezek a cégek kezdik belátni, hogy az eddigi, dobozba zárt világból ki kell lépni, és egy más szemlélet mentén kell felépíteni azon hálózatokat, amelyekben a főszerepet a hardverek helyett a szoftverek kapják.
A szoftveres hálózati összetevők ugyan napjainkban is nélkülözhetetlenek, azonban az esetek többségében jelentős korlátokat állítanak, amik felesleges nehézségeket szülnek az IT-üzemeltetés számára. A legnagyobb hátrányt az úgynevezett monolitikus kialakítás jelenti, amely jelentősen megköti az adminisztrátorok kezét. Gondoljunk csak arra, amikor egy új funkció (vagy akár biztonsági patch) miatt teljes szoftverfrissítést kell végrehajtani kritikus fontosságú routereken vagy egyéb hálózati eszközökön. Nyilván ekkor a patch-menedzsment első lépéseként az új szoftververzió tesztelését kell elvégezni, és csak ezt követően kerülhet sor az élesítésre. Bob Muglia, a Juniper Networks szoftveres megoldásokért felelős alelnöke mindezt a következőképpen fogalmazta meg: "Képzeljük el azt, hogy az okostelefonunkon a teljes operációs rendszert frissíteni kellene ahhoz, hogy egy új alkalmazást tudjunk rátölteni a készülékre. Ez az a típusú kényszer, amit a hálózati ipar ró az ügyfelekre".
Úton a megoldás
A szolgáltatók és a vállalatok folyamatosan keresik a megoldásokat a hálózati kihívásokra. Azt szeretnék elérni, hogy a hálózataikat a mindenkori követelményeknek, igényeknek megfelelően, dinamikusan, az üzleti érdekek szem előtt tartásával tudják menedzselni. Természetesen mindezt a lehető legnagyobb automatizáltság mellett, hogy ezzel is csökkenthetőek legyenek az emberi erőforrásokra szánt kiadások, és mindinkább mérsékelni lehessen az emberi hibákból eredő kockázatokat. Ezen igényekre való hatékony reagálás egyik alapvető feltétele az alkalmazások gyors telepíthetősége, nyilván olyan módon, hogy a beüzemelési tevékenységek ne okozzanak kimaradást, fennakadást az IT-infrastruktúrákban. A fokozódó elvárásoknak azonban a hagyományos hálózatkialakítási szemléletmódok alkalmazásával korántsem egyszerű megfelelni.
A megoldást az a nagy jövő előtt álló, új megközelítési mód jelentheti, amelynek neve SDN (Software Defined Networking – szoftverek által definiált hálózat).
Ahhoz, hogy pontos képet kapjunk arról, hogy miért is képvisel új filozófiát az SDN, fontos megismerni a következő hat pontban összefoglalt alapelveit:
1. A hálózati szoftverek elszeparálása négy, jól elkülöníthető rétegre (síkra): menedzsment, szolgáltatás, vezérlés és továbbítás.
2. A menedzsment, a szolgáltatási és a vezérlési szintek központosítása a hálózati topológiák egyszerűsítése és az üzemeltetési költségek csökkentése érdekében.
3. A cloud-követelmények szem előtt tartásával a rugalmas hálózatkiépítés és a használatalapú elszámolások lehetőségének megteremtése.
4. Olyan platform létrehozása, amely a hálózati alkalmazások, a szolgáltatások és a menedzsmentrendszerek integrációjával új üzleti megoldások előtt nyitja meg az utat.
5. Szabványosított protokollok felhasználásával biztosítani a heterogén eszközök, valamint a különböző gyártói megoldások közötti együttműködést, megteremtve ezzel a választás és a költségcsökkentés lehetőségét.
6. Az SDN alapelvek széles körű alkalmazása a hálózatok és hálózati szolgáltatások teljes spektrumában, beleértve az adatközponti és a mobil hálózatokat is.
Négyszintű megközelítés
Az SDN természetesen nem áll meg a nagy általánosságok szintjén, hiszen a különféle megfontolásokat több síkon értelmezi. Erre azért is szükség van, mert minden egyes hálózati és biztonsági eszköz – routerek, switch-ek, tűzfalak stb. – szoftveres összetevői több rétegben működnek, és ezeknek a kezelése alapjaiban határozza meg az infrastruktúrák működését. Az egyes szoftveres rétegek felosztása a szakirodalmakban korántsem egyforma. Mi most a négyrétegű modellel fogunk foglalkozni, amely a következő szinteket definiálja: továbbítás, vezérlés, szolgáltatás, menedzsment.
A legalsó réteget a továbbítási sík (Forwarding plane) képviseli, amelyet "Data plane" néven is szoktak emlegetni. Ennek legfontosabb feladata, hogy biztosítsa a hálózati csomagok mozgatását az egyes hálózati szegmensek vagy végpontok között. Ugyan kivitelezhető tisztán szoftveres úton is, azonban a leggyakrabban hardveralapú implementációkkal lehet találkozni, amiket speciális, ASIC (Application Specific Integrated Circuits) chipekkel valósítanak meg a gyártók. Az ASIC alkalmazásának legnagyobb előnye, hogy jóval gyorsabb adattovábbítást tesz lehetővé, mint a puszta szoftveres megoldások.
A második réteg a vezérlést szolgálja. Az ezen a szinten működő szoftvereknek pontosan "meg kell érteniük" a hálózati topológiát, illetve döntéseket kell hozniuk az adatfolyam- és hálózatvezérlés kapcsán. Legfontosabb feladatuk, hogy a mindenkori körülmények figyelembevételével biztosítsák az akadályoktól és fennakadásoktól mentes hálózati adatforgalmat. Ennek érdekében folyamatosan tanulnak, és minden lényeges paraméterét feltérképezik a hálózatnak, illetve az ahhoz csatlakoztatott eszközöknek. Kifinomult vezérléssel biztosítható például, hogy egy természeti katasztrófa következtében kieső, akár több ezer hálózati eszköz se okozzon leállást a teljes internetes adatforgalomban.
A harmadik réteg a szolgáltatásoké. Az adatforgalom továbbítása mellett gyakran van szükség egyéb, kiegészítő feladatok elvégzésére. Ugyan nem minden hálózati eszköz rendelkezik szolgáltatási síkon futó szoftverekkel – például az egyszerűbb switch-ek sem –, de a routerek és tűzfalak esetében fontos szerepet töltenek be azáltal, hogy végrehajtják a komplexebb műveleteket.
Végül, de nem utolsósorban a negyedik rétegben a menedzsmenteszközök helyezkednek el. Miközben a vezérlési síkon található összetevők megtanulják a hálózat felépítését, aközben a menedzsmentréteg pontos utasításokkal látja el a vezérlést. Napjainkban a legtöbb készülék egyedileg konfigurálható, nem egyszer manuálisan, parancssoros interfészeken keresztül, amelyekhez viszonylag kevés, és ennek megfelelően magas óradíjjal dolgozó szakember ért igazán.
További probléma, hogy a manuális tevékenységek mindig magukban rejtik az emberi hibák lehetőségét. Sok szolgáltató retteg attól, hogy egy építkezés során elvágják az optikai kábeleit, pedig félrekonfigurált routerek, tűzfalak sokkal gyakrabban vezetnek leállásokhoz.
Míg az adattovábbítás terén elsősorban célhardverekre építenek a gyártók, addig a vezérlési, szolgáltatási és menedzsmentsíkokon sokkal gyakrabban jelennek meg az általános célú – ezáltal olcsóbb – hardveres komponensek. Azonban szinte mindig igaz, hogy az általános célú hardverekhez speciális szoftverek kapcsolódnak, amelyek – a monolitikus architektúrák miatt – egymástól nem elválaszthatóak, és sokszor csak manuálisan konfigurálhatóak. Ezen a helyzeten pedig a hatékonyság és felügyelhetőség érdekében érdemes változtatni.
Az SDN kulcsa: központosítás egy elosztott világban
Az internet eredendően decentralizált felépítése mindennemű központosítás ellen szól, ugyanakkor azt is látni kell, hogy az adatközponti, vállalati, tudományos vagy regionális hálózatok esetében a centralizált megközelítés nagyon sok előnnyel kecsegtet. Jó példát szolgáltatnak erre a Google és a hasonló vállalatok adatközpontjai, amelyekben a viszonylag olcsó, x86-os kiszolgálókat tömegesen kell kézben tartani, ráadásul biztosítani kell a folyamatos bővíthetőséget is.
Az SDN alapelvei között megjelenő központosítás lényege, hogy az egyes konfigurációs beállítások az elosztottan működő eszközökön automatizáltan jutnak érvényre. Bob Muglia ezt a következőképpen szemléltette: "Reggelente az okostelefonra vagy táblagépre letöltődik a New York Times aktuális kiadása, majd a nap folyamán a mobilkészülék rendszeresen ellenőrzi és beszerzi a frissítéseket". Ennek az analógiának megfelelően történnek a központosított műveletek egy SDN-szemléletű hálózatban is a konfigurációs beállítások tekintetében. A centralizálás azonban nemcsak a konfigurációmenedzsmentre terjeszthető ki, hanem akár a szolgáltatásokra, és ami még ennél is fontosabb: a vezérlésre is.
Napjainkban a vezérlési réteg az egyes eszközökben – például routerekben – kap helyet, és emiatt a hálózatra való rálátás korántsem teljes körű. Az egyes eszközök egymásnak üzengetve próbálják kitalálni a legjobb útvonalakat, és optimalizálni az adatforgalmat. Amikor pedig egyikük kiesik, akkor egymás értesítésével, az alkalmazandó protokollok előírásainak megfelelően igyekeznek alternatív útvonalakat felállítani. Könnyű elképzelni, hogy az adatforgalmi helyzetek kezelése sokszor jóval egyszerűbb és hatékonyabban kivitelezhető, ha az adott hálózatot madártávlatból lehet szemlélni, és így optimalizálni az adatforgalmat.
A központosítás alól tulajdonképpen csak a továbbítási réteg marad ki, hiszen annak a természeténél fogva az egyes hálózati eszközökön kell helyet kapnia, a már jól bevált ASIC-ok formájában. Ebből szokás levonni azt a következtetést, hogy a jövő hálózatai a jelenleginél butább, de olcsóbb és rugalmasabban kezelhető hardveres megoldásokra fognak épülni, ugyanakkor az infrastruktúrák a több szinten működő, fejlett, testre szabható szoftverek révén mégis intelligensebbeké válnak.
Lépjünk a tettek mezejére!
Az SDN elméleti áttekintése után jogosan merül fel a kérdés, hogy mégis miként lehet az új megközelítéseket átültetni a gyakorlatba. Az SDN-szemlélet bevezetésére számos módszertan létezik. Azonban az leszögezhető, hogy a legtöbb esetben nem lehet a nulláról indulni, hiszen meglévő hálózatokat kell újramodellezni, átalakítani, méghozzá olyan módon, hogy eközben a kritikus üzleti alkalmazások felé biztosítani kell a megfelelő szintű rendelkezésre állást. Ezért célszerű a fokozatosság elvét követni és lépésenként haladni. Szerencsére ezt az SDN lehetővé teszi, így jól átgondolt, több lépésben elvégzett implementálásra ad módot. Bob Muglia négy pontból álló megvalósítást javasol.
Az első fázisban célszerű a menedzsmentet középpontba állítani, ugyanis ezzel lehet a leglátványosabb eredményeket elérni. Amennyiben sikerül a központosítást véghezvinni legalább a konfigurációkezelés tekintetében, akkor azzal rögtön költségeket lehet megspórolni, és nem utolsósorban azonnal javul az adott hálózat átláthatósága, felügyelhetősége. Technológiai oldalról ezt a feladatot megfelelő menedzsmenteszközökkel lehet kivitelezni, amelyek általában virtuális gépek formájában működnek. Természetesen e rendszerek illeszthetők olyan megoldásokhoz, mint amilyen a például a VMware vCloud Director, a Microsoft System Center vagy az OpenStack. Ez azt is eredményezi, hogy az üzleti és az üzemeltetési infrastruktúrák felügyelete összekapcsolhatóvá válik, és a konfigurálás nyilvános API-kon, valamint szabványosított protokollokon keresztül lesz megvalósítható.
Azt azonban nem szabad figyelmen kívül hagyni, hogy egy ilyen szintű menedzsmentrendszer, pontosabban az a mögött meghúzódó hálózat komoly mennyiségű (napló)adatot generál. Így nagyobb hálózatok esetén analitikus (big data) technológiák alkalmazása is szükségessé válhat a hálózati és a biztonsági adatok megfelelő szintű feldolgozásához, elemzéséhez. A mélyreható adatelemzés azért is lényeges, mert döntéshozatalkor csak így lehet pontos képet alkotni a hálózat állapotáról, és így lehet gyorsan reagálni a bekövetkező nemkívánatos történésekre, illetve a felmerülő üzleti igényekre.
A bevezetés második lépéseként a szolgáltatásokat érdemes górcső alá venni. Ez esetben az a cél, hogy az eddigi hálózati és biztonsági szolgáltatásokat rá lehessen ültetni általános célú, x86-os hardverekre, illetve virtuális gépekre. Így egy olyan platform jöhet létre, amely IT és biztonsági lehetőségek tárházat nyújtja. Elég, ha csak arra gondolunk, hogy a legtöbb tűzfal-appliance meglehetősen korlátozott a kapacitások bővíthetőségét illetően, viszont ha a berendezés által nyújtott szolgáltatásokat sikerül átemelni egy olcsón és könnyen skálázható hardverre vagy beilleszteni egy virtuális környezetbe, akkor az mind technológiai, mind költségszempontból előnyös.
Az implementációs folyamat harmadik fázisában is egy nagy lépést lehet előre tenni, ugyanis ekkor kerülhet sor a központosított vezérlés megvalósítására. A centralizált vezérlők révén lehetőség nyílik arra, hogy a hálózati és a biztonsági szolgáltatásokat szabadon, rugalmasan egymás mögé fűzzük. Ekkor alakul ki az úgynevezett SDN szolgáltatási lánc, melybe virtuálisan lehet beilleszteni azokat a szolgáltatásokat, amelyeken a hálózati adatforgalomnak végig kell haladnia. Napjainkban a hagyományos hálózatok esetében is megfigyelhető ez a fajta láncolat, csak éppen fizikai eszközök mozgatásával és átkonfigurálásával lehet mindezt kezelni. Az SDN-alapú szolgáltatási lánc azonban bármikor központilag átkonfigurálható anélkül, hogy leállással kellene számolni. További előny, hogy az új szolgáltatások tesztelése is könnyebben kivitelezhető, hiszen fizikai eszközökből álló tesztkörnyezet helyett virtuális gépekkel lehet elvégezni a kompatibilitási és megfelelőségi vizsgálatokat.
Az SDN-alapú szolgáltatási láncokra jó példa, amikor egy adatközpontban elhelyezett webszervert kell az internet felé kipublikálni, és az adatfolyamot különféle hálózati megoldásokon átvezetni. A fenti ábra azt mutatja, hogy az adatok miként jutnak el a webkiszolgálótól a routerig, miközben áthaladnak egy virtuális switch-en, egy terheléselosztást szabályozó szolgáltatáson, és végül egy (stateful) tűzfalon. Természetesen ebbe a láncolatba bármikor beilleszthetők egyéb szolgáltatások, amelyek például alkalmasak lehetnek NAT-olásra, mélyreható csomagvizsgálatra és egyéb biztonsági feladatok elvégzésére.
Az SDN-bevezetés utolsó lépéseként következhet az optimalizáció. Noha az SDN esetében a hardveres és a szoftveres funkciók jól elkülönülnek egymástól, azért ez nem jelenti azt, hogy az ezek közötti hatékony együttműködést nem kell biztosítani. Ezért a hardver- és szoftverfejlesztőknek célszerű szorosan együttműködniük, és úgy kialakítaniuk az egyes komponenseket, hogy azok a kellő teljesítményt biztosítsák, míg végül az összetevők a közöttük lévő kompatibilitásnak és interakcióknak köszönhetően egy komplett rendszerré állnak össze. Az SDN-ben is mindennek megvan a maga helye az ASIC-tól a különféle vezérlési és felügyeleti feladatokat ellátó szoftverekig, amelyeket külön-külön és együtt is össze kell hangolni.
A jövő kapujában állunk
Az SDN paradigmaváltást jelent a hálózati és biztonsági termékek esetében. A jövőben nemcsak a legnagyobb adatközpontok sajátja lehet, hanem jóval szélesebb körű felhasználásra számíthat. Az elterjedésével pedig az érintett piacok is alapvetően formálódhatnak át, aminek természetesen lesznek győztesei és vesztesei. Az azonban biztos, hogy a hálózatok kialakításába és az IT-üzemeltetésbe új szemléletet hoz, míg a fejlesztők számára jóval szabadabb kezet ad az eddigi megközelítésekhez képest. Ezzel pedig gyarapodhatnak az innovációk, amiből mindenki profitálhat. Az SDN előnyei egyre nyilvánvalóbbá válnak, és nagyon úgy tűnik, hogy elértünk ahhoz a fordulóponthoz, amikor a technológiaváltásnak óhatatlanul be kell következnie.