Programozható hálózatok: OpenFlow a gyakorlatban

A tantárgy angol neve: Software Defined Networks: OpenFlow in Practice

Adatlap utolsó módosítása: 2013. március 22.

Tantárgy lejárati dátuma: 2013. december 31.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Mérnök informatikus szak
Villamosmérnöki szak
Szabadon választható tantárgy
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VITMAV09   2/0/2/f 4  
3. A tantárgyfelelős személy és tanszék Dr. Sonkoly Balázs,
4. A tantárgy előadója
Név: Beosztás: Tanszék, Int.:
Dr. Sonkoly Balázs egy. adjunktusBME- TMIT
Németh Felicián tanársegéd BME-TMIT
Dr. Gulyás András egy. adjunktusBME- TMIT
5. A tantárgy az alábbi témakörök ismeretére épít Alapvető számítógép-hálózati ismeretek.
7. A tantárgy célkitűzése

A nyílt interfészeknek köszönhetően a szoftveripar már több évtizede elképesztő gyorsasággal fejlődik ennek eredménye, hogy ma már egy-egy innovatív ötlet szoftverbe való átültetése rendkívül gyorsan elvégezhető. A számítógép-hálózatok esetében azonban nem ez a helyzet. A mai hálózati eszközök gyártói – érthető módon – elrejtik a belső, megvalósítási részleteket, azok nem hozzáférhetők a kutatók számára, ebből adódóan komoly problémát jelent az új ötletek valós hálózatokban, valós körülmények melletti kipróbálása, tesztelése. A hálózati eszközök zárt interfészei nem adnak lehetőséget a hálózati eszközök külső programozására, ami gyakorlatilag lehetetlenné tesz bármiféle innovációt. Ennek következtében a hálózatok struktúrája igen merev, hiszen csak olyan hálózati megoldások kerülnek megvalósításra, amit egy-egy eszközgyártó cég arra érdemesnek talál.

Az OpenFlow jelenleg az egyetlen széles körben elfogadott architektúra, amely nyílt interfészeinek köszönhetően lehetővé teszi a gyors innovációt. A 2008-ban indult rendszer mellé egyre több egyetem és fokozatosan több eszközgyártó (pl. Ericsson, HP, Cisco) és szolgáltató (pl. Facebook, Google, Microsoft) állt.

A tárgy célja, hogy előadáson megismertesse a hallgatósággal az OpenFlow elméleti hátterét és laborok keretében gyakorlati tudást adjon a hallgatóknak, hogy ötleteiket valós hálózatokban ki tudják próbálni és megérezzék az innováció ízét és közelségét. A tárgyban egy-egy alkalommal eszközgyártók vendégelőadói ipari szempontból járják körül az OpenFlow-t és az abban rejlő lehetőségeket.

8. A tantárgy részletes tematikája

1. hét:

Előadás: Bevezető előadás. Egy OpenFlow kapcsoló felépítése, architektúrális alapok, összehasonlítás a hagyományos hálózati megközelítéssel. Az OpenFlow mögött álló szervezetek, OpenFlow hálózatok a világban, a BME OpenFlow hálózata.

Labor: Hálózat egy notebookban: virtuális tesztkörnyezet létrehozása néhány egyszerű paranccsal, saját topológiák készítése.

2. hét:

Előadás: Teszthálózat egy notebookban: virtualizáció a Mininet segítségével. Virtuális topológiák létrehozása, OpenFlow rendszer futtatása virtuális környezetben, monitorozó eszközök ismertetése

Labor: Hálózat egy notebookban: egyszerűbb mérések, forgalommérések elvégzése, Wireshark és iperf használata.

3. hét:

Előadás: Az OpenFlow protokoll bemutatása. Üzenettípusok áttekintése, OpenFlow alapvető működése üzenetváltási példákon keresztül, folyamok kezelése. Kontroll és adat sík együttműködése.

Labor: OpenFlow switch-ek konfigurálása DPCTL-lel: folyambejegyzés létrehozása, a switch működésének megfigyelése különféle folyambejegyzések hatására.

4. hét:

Előadás: DPCTL: parancssoros interfész OpenFlow switch-ek konfigurálásához. Folyambejegyzések kezelése OpenFlow switch-ekben (hozzáadása, lekérdezése, törlése). switch konfiguráció, lineáris és hash táblák lekérdezése. Statisztikák lekérdezése OpenFlow switch-ekből.

Labor: OpenFlow switch-ek konfigurálása DPCTL-lel: lineáris és hash-táblák konfigurálása, statisztikák lekérdezése és kiértékelése.

5. hét:

Előadás: OpenFlow kontrollerek (NOX, POX, Beacon, Maestro, Trema), NOX részletesebb bemutatása, eseménykezelő interfész ismertetése. bevezetés a NOX kontroller programozásába, NOX lefordítása, forráskód szerkesztése, esettanulmány: példa NOX alkalmazás bemutatása

Labor: NOX kontroller: NOX alkalmazások futtatása és tesztelése, NOX fordítás.

6. hét:

Előadás: Egyszerű NOX alkalmazások és modulok elemzése (switch, hub, discovery, web, monitoring), modulok betöltése, üzenetek fogadása más moduloktól, praktikus programozási megfontolások

Labor: NOX kontroller: saját NOX alkalmazás készítése és futtatása.

7. hét:

Előadás: Innováció éles hálózaton. Több hálózati logika egy fizikai rendszeren: szegmentálás FlowVisor-ral. FlowVisor működési elve, több NOX alkalmazás futtatása egyazon fizikai hálózaton, flowspace definíciók, párhuzamos fejlesztési lehetőségek

Labor: Hálózat virtualizáció: FlowVisor kezelése, konfigurálása, tesztelése párhuzamosan futó NOX alkalmazásokkal. Mérőcsoportok NOX alkalmazásai párhuzamosan egyazon fizikai rendszeren.

8. hét:

Előadás: OpenFlow switch-ek bemutatása. Folyambejegyzések kezelése, tárolása, lekérdezése, az illesztési (matching) folyamat, lineáris és hash táblákban való keresés. PC-n futó szoftver switch-ek működésének bemutatása.

Labor: Hálózat virtualizáció: FlowVisor tesztelése, mérőcsoportok NOX alkalmazásainak párhuzamos futtatása egyazon fizikai rendszeren.

9. hét:

Előadás: Az olcsó megoldás: OpenFlow házilag OpenWrt-n. Az OpenWrt bemutatása, konfigurálása, lehetőségek és korlátok áttekintése. OpenFlow fordítása OpenWrt-re. Teljesítmény paraméterek meghatározása.

Labor: OpenFlow referencia switch PC-n és OpenWrt-n. Teszthálózat építése PC-k és otthoni vezetéknélküli útválasztók felhasználásával.

10. hét:

Előadás: Közelebb a hardverhez: OpenFlow NetFPGA-n, nagy teljesítményű OpenFlow switch-ek: HP ProCurve konfigurációja és teljesítménye

Labor: Hardver switch-ek: HP OpenFlow switchek kipróbálása és integrálása a teszhálózatba.

11. hét:

Előadás: Felejtsük el az IP-t! Alternatív útválasztási és kódolási stratégiák. Bloom filter használata a forrás útvonalválasztásban, mohó útválasztás működése és felhasználási területei. A standard OpenFlow architektúra korlátai.

Labor: Kísérletezés alternatív útválasztási módszerekkel: Bloom filter és mohó útválasztás megvalósítása és kipróbálása.

12. hét:

Előadás: A hálózati kódolás alapjai. Hálózati kódolás vezetéknélküli és vezetékes hálózatokban, hibatűrés és hálózati kapacitás növelése kódolási technikák segítségével. Esettanulmány: hálózati kódolás megvalósítása OpenFlow-ban.

Labor: Kísérletezés alternatív útválasztási módszerekkel: saját „matching” folyamat implementálása és tesztelése.

13. hét:

Előadás: Garantált szolgáltatásminőség biztosítása. A QoS megoldások építőkockái: sorok és ütemezők, valamint ezek beállításai a Linux TC segítségével.

Labor: QoS OpenFlow felett: sorok konfigurálása, folyamok sorokhoz rendelése.

14. hét

Előadás: OpenFlow hálózat szabványos menedzsmentje. OF Config. ForCES. OpenFlow és NETCONF integráció, Yang, SNMP, az OpenNMS rendszer felépítése

Labor: QoS OpenFlow felett: QoS mérések elvégzése.

 

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

Hetente 2 órás előadás és 2 órás labor.

10. Követelmények
  • A szorgalmi időszakban: laborokon való sikeres részvétel.
  • Kisebb csoportoknak kiadott házi feladat elkészítése a vizsgaidőszakig.

 

11. Pótlási lehetőségek

A félév során legfeljebb 2 elmulasztott labor alkalom és a házi feladat pótlására a pótlási időszakban van lehetőség.

12. Konzultációs lehetőségek

Igény szerint, az oktatóval egyeztetve.

13. Jegyzet, tankönyv, felhasználható irodalom
  • Nick McKeown és mások: „OpenFlow: Enabling Innovation in Campus Networks”
  • The Open Networking Foundation: „OpenFlow Switch Specification, Version 1.2 (Wire Protocol 0x03)”, December 5, 2011.
  • RFC5810: Forwarding and Control Element Separation (ForCES) Protocol Specification (http://tools.ietf.org/html/rfc5810)
14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra56
Félévközi készülés órákra 40
Felkészülés zárthelyire 0
Házi feladat elkészítése 24
Kijelölt írásos tananyag elsajátítása -
Vizsgafelkészülés -
Összesen 120
15. A tantárgy tematikáját kidolgozta
Név: Beosztás: Tanszék, Int.:
Dr. Sonkoly Balázs egy. adjunktusBME- TMIT
Németh Felicián tanársegéd BME-TMIT
Dr. Gulyás András egy. adjunktusBME- TMIT