Hálózati szolgáltatások automatikus konfigurálása SDN technológiák alkalmazásával

Szerző: 
Németh Balázs
Konzulens (TMIT): 
Konzulens (külső): 
Dr. Kern András, Ericsson
Év: 
2013
Szekció: 
Hálózattervezés
Helyezés: 
1. helyezés
Különdíj: 
Kari zsűri különdíja

Napjainkban az SDN (Software Defined Networking) megoldások rugalmasságuknak és költséghatékonyságuknak köszönhetően rohamosan terjednek. A koncepció lényege, hogy segítségével szétválaszthatjuk az adat és vezérlési síkot a hálózati eszközökben, így a hálózatot egy központi, tetszőleges logikát megvalósító kontrollerből irányíthatjuk. A kontroller és a hálózati kapcsolók közötti kommunikációt szolgálja az OpenFlow protokoll, mely segítségével az eszközök működése irányítható és felülírható. Az OpenFlow kontroller platformok számos különböző implementációja van jelen (NOX, Beacon, POX stb.), melyek révén új hálózati alkalmazásunk programozási nyelve szinte szabadon megválasztható (C/C++, Java, Python stb.).

Projektünk célja egy olyan SDN architektúra létrehozása, melyben lehetőségünk van leírni különböző típusú szolgáltatásokat, funkciókat és akár ezek közötti relációkat. Mindezt a hálózatot felépítő eszközök és azok szoftvereinek ismerete nélkül, sőt akár a hálózat szerkezete felőli részletes tájékozottság nélkülözésével. Vagyis a jelenleginél eggyel magasabb absztrakciós szinten szeretnénk irányelveket megfogalmazni a hálózatunkra vonatkoztatva, melyet a rendszerünk értelmez és lefordít alacsony szintű szabályokra.

Ilyen magas szintű szolgáltatás leírásnak a beviteléhez a jelenlegi SDN megoldások, illetve az OpenFlow még nem nyújt lehetőséget, mivel a hardveres, valamint szoftveres eszközök túl mélyreható ismeretét és programozását követeli meg a felhasználóktól. Egyelőre SDN szolgáltatások implementálásakor foglalkoznunk kell a konkurens modulok egymásra hatásával, csomagfejlécekre való illeszkedési szabályok meghatározásával, melyek átlapolódása esetén döntenünk kell a bejegyzések prioritásáról, továbbá az elhelyezett csomagtovábbító bejegyzések működést befolyásoló információt rejthetnek el a központi kontroller elől.

Ezen problémák feloldására jelentek meg kutatás alatt lévő megoldások a közelmúltban, melyek felhasználásával, illetve továbbfejlesztésével érhetnénk el célkitűzésünket. A Princeton Egyetemen fejlesztett, jelenleg még kezdeti fázisban lévő, nyílt forráskódú Frenetic kontroller platform teszi lehetővé OpenFlow hálózatok deklaratív programozását egy külön erre a célra kialakított programozási nyelv segítségével. A Frenetic nyelvet alkalmazva hálózatok programozására, néhány fent említett probléma megoldódik.

Jelen dolgozat célja ennek a szoftvernek a kibővítése a projektet támogató modulokkal, melyek segítségével megvizsgálhatjuk a Freneticet előnyök, hátrányok, hiányosságok, skálázhatóság és teljesítmény szempontjából. További cél, hogy javaslatot tegyünk a szoftver lehetőségeinek kibővítésére a dinamikusság és futás közbeni újrakonfigurálás területén. Ehhez a kontroller állapotának egy frissítési algoritmusát valósítjuk meg, és értékeljük ki szimulált hálózati környezetben.