korabbi

Szolgáltatási háló minőségének emulációja [elkészült]

Leírás: A legtöbb dolog amit ma az interneten elérhetünk, valamilyen szolgáltatás orientált architektúrában áll a rendelkezésünkre. Egy népszerű szolgáltatási háló (service mesh) implementáció a Kubernetes, amit elterjedten használnak az ipar vezető szereplői. A Kubernetes nem tartalmaz beépített hálózatkezelést, azt külső megoldások CNI (Container Network Infrastructure) moduljaival valósítja meg. Több CNI modul is a rendelkezéünkre áll (Calico, Canal, Cilium, Flannel, WeaweNet, stb.) ezek közül tetszés szerint választhatunk. Ezek képességei viszont eltérőek, konfigurációjuk sem egységes.

Forgalom szabályozó konténer hálózatokhoz [elkészült]

Leírás: A konténer virtualizációs technológia segítségével az operációs rendszer rendszermag fölötti részét virtualizálhatjuk. Ennek ellenére szükség lehet hálózat virtualizációra is, hogy az egyes konténerek saját, virtuális hálózattal rendelkezzenek. A Linux kernel több féle konténer hálózat-virtualizációs módszert ismer, viszont ezek felhasználása a konténer orkesztrációs rendszerek által (Docker stack, Kubernetes, LXC, stb.) nem teljes körű. A diplomamunka célja a közelmúltban megjelent Linux cgroup alrendszer eBPF programokkal történő hálózati hozzáférés vezérlésének implementálása lenne ezen konténer orkesztrációs rendszerek valamelyikéhez.

BCC alapú alkalmazás diagnosztikai szoftver fejlesztése [elkészült](https://github.com/Matyasch/tracerface)

Leírás: Mikor egy nyílt forráskódú szoftver működését szeretnénk megérteni majd módosítani, komplexitástól függően sok időt eltölthetünk a forráskód és a működés tanulmányozásával. A folyamat gyorsabb lenne, ha látnánk működés közben milyen függvények hívódnak meg gyakran, milyen hívási láncon keresztül és milyen típusú és értékű paraméterekkel, stb. Linux alatt létező megoldásokkal a programok futása nagyon jól nyomonkövethető de ezek konfigurációja nehézkes és szöveges felületen történik a visszajelzés is. Egyik sokoldalú nyomkövető megoldás a BCC (BPF Compiler Collection) aminek a használata nagyobb programok átvilágítására kényelmetlen.

Hálózati forgalom szabályozó implementálása eBPF alapokon [elkészült]

Leírás: Az eBPF egy virtuális gép a Linux kernelen belül, saját utasításkészlettel és műveletekkel. Segítségével garantáltan biztonságos módon hozzáférhetünk nagyon sok Linuxos alrendszer (hálózat, I/O, rendszerhívások, ütemező) belső állapotához és módosíthatjuk a működésüket is. A szakdolgozat keretein belül a hallgató megismerkedik a Linux kernel csomagütemező részével. A munka célja egy eBPF-ben megvalósított forgalomszabályozó TC (TrafficControl) modul lenne. Ez hasonlóan a Linux TC alap netem moduljához képes lenne egy megadott sávszélesség korlát közelében tartani forgalom sebességét (például nem engedi 500 Mbit/s fölé, akkor sem, ha 1Gbit/s is elérhető lenne).

Nagy teljesítményű hálózati csomagszűrő eBPF/XDP alapokon [elkészült]

Leírás: Az XDP (eXpress Data Path) egy nagy teljesítményű programozható adattovábbítási sík. Első verziója 2016 októberében a 4.8-as Linux kernelben jelent meg, folyamatosan fejlesztik azóta is. Segítségével nagyon korán hozzáférhetünk a beérkező hálózati csomagokhoz, megvizsgálhatjuk, módosíthatjuk vagy el is dobhatjuk őket. A hagyományos Linux hálózati alrendszer csak az XDP adatsík módosításai után fog hozzáférni a beérkező csomaghoz, kivéve ha előtte eldobjuk. A szakdolgozat keretein belül a hallgató megismerkedik a Linux kernel hálózati részének csomagszűrő részével.