Felhő alapú hálózatok (VITMMA02) SDN a felhőben Dr. Maliosz Markosz Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Távközlési és Médiainformatikai Tanszék 2015. tavasz 1
Hagyományos hálózatok» Adat sík (Data plane): linksebesség időskálán működik (gyors)» csomagok kezelése: továbbítás, szűrés, pufferelés, jelölés, ütemezés, számlálók» Vezérlő sík (Control plane): lassabb időskála (vezérlő üzenetek kezelése)» elosztott algoritmusok» topológia változósok követése, útvonalak számítása, továbbítási szabályok beállítása» Menedzsment sík (Management plane): emberi időskála» központosított» mérések összegyűjtése és eszközök konfigurációja 2015. tavasz 2
Hálózat és hálózati eszköz architektúra» Régen egyszerű volt: Ethernet, IP, TCP» Az új vezérlési igények nagyon bonyolulttá tették» Izoláció VLAN, ACL» Traffic engineering MPLS, ECMP, súlyok» Csomagfeldolgozás Tűzfalak, NAT, middleboxes» Csomagtartalom elemzés Deep packet inspection (DPI)»» Sok komplex funkció az infrastruktúra része lett» OSPF, BGP, multicast, differentiated services, Traffic Engineering, NAT, firewalls, MPLS,» mainframe mentalitás monolitikus architketúra App App App Útvonalválasztás, menedzsment, mobilitás menedzsment, access control, VPN, Operációs rendszer millió sor nagyságrendű foráskód 5400 RFC belépési korlát Specializált csomagtovábbító hardver 500M kapu 10Gbyte RAM Bonyolult Energiaigényes 2015. tavasz 3
Ideális és megvalósult architektúra App App Operációs rendszer App Specializált csomagtovábbító hardver App App Operációs rendszer Specializált csomagtovábbító hardver App» Miért fontos a rétegek elválasztása?» szétválasztott szolgáltatások komponensekkel megvalósítva» független, de kompatibilis innováció lehetséges az egyes rétegekben» Zárt architektúra» elmosódott határok, zárt interfészek» szoftver és hardver összekötve» függőlegesen integrált, komplex, zárt, egyedi, gyártó specifikus interfészek 2015. tavasz 4
Hasonlóság a számítógép architektúrák App App App App App App Windows Windows Windows (OS) (OS) (OS) Linux Linux Linux Mac Mac Mac OS OS OS Controller Controller NOX 1 1 (Network OS) Controller Controller Network 2 OS Virtualization layer x86 (Computer) Virtualization or Slicing OpenFlow Számítógépek Hálózatok 2015. tavasz 5
Szoftver Definiált Hálózatok (SDN) Logikailag központosított vezérlés okos, de lassú API az adat sík felé (pl. OpenFlow) buta, de gyors kapcsolók 2015. tavasz 6
SDN komponensek 3. Jól definiált nyílt API 2. Operációs rendszer Bővíthető, lehetőleg nyílt forráskódú App App App Network Operating System 1.Nyílt interfész a hardver felé Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware 2015. tavasz 7
SDN virtualizáció App App App App App App App App Network Operating System 1 Network Operating System 2 Network Operating System 3 Network Operating System 4 Izolált szeletek Nyílt interfész a hardver felé Virtualization or Slicing Layer Nyílt interfész a hardver felé Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware 2015. tavasz 8
Hagyományos kapcsoló/útválasztó» Működés szétbontható síkokra» Menedzsment sík / konfiguráció» Vezérlő sík / döntések» Adat sík / csomag továbbítás 2015. tavasz 9
SDN koncepció» A vezérlő- és adatsík elemek szétválasztása» a hálózati intelligencia és állapot logikailag központosított» a vezérelt hálózati infrastruktúra absztrakt formában jelenik meg az alkalmazások számára» A vezérlősík szoftver általános hardveren fut» leválasztás a speciális hálózati hardverről» általános szerverek akalmazása» Az adatsík programozható» Az adatsík felügyelete, vezérlése és programozás egy központi helyről» Nem csak a hálózati eszközök, hanem az egész hálózat vezérelhető 2015. tavasz 10
Vezérlő szoftver program A vezérlő program az általa észlelt hálózati képen végez műveleteket» Bemenet: globális hálózati kép (gráf/adatbázis)» API-n keresztül elérhető információkkal ellátott hálózati gráf» a kapcsolóktól érkező események» topológia változás» forgalmi statisztikák» érkező csomagok» Kimenet: minden egyes hálózati eszköz beállítása» A vezérlő mechanizmus egy program, ami pl. egy gráf algoritmust valósít meg» Üzenetek küld a kapcsolóknak» szabályok beállítása, törlése» statisztikák lekérdezése» csomagok küldése A vezérlő program nem elosztott rendszer» az absztrakció elrejti az elosztott állapot részleteit 2015. tavasz 11
SDN absztrakció a vezérlő síkon Jól definiált API Útválasztás Traffic Engineering Hálózati operációs rendszer Egyéb alkalmazás Hálózat virtualizáció Hálózati kép absztrakció Csomagtovábbítás Csomagtovábbítás Csomagtovábbítás Csomagtovábbítás 2015. tavasz 12
OpenFlow» Nyílt interfész fekete dobozként kezelhető hálózati eszközökhöz (útválasztó, L2/L3 kapcsoló)» Szeparált vezérlő és adat sík» Egy OpenFlow kapcsoló adat síkja tartalmazza a folyam táblázatot (Flow Table), és egy műveletet (action) minden bejegyzéshez» A vezérlő síkban: vezérlő (controller), amely a folyam bejegyzéseket felprogramozza» Az OpenFlow tkp. egy standard interfész, amin keresztül hozzáadhatók és törölhetők bejegyzések egy Ethernet kapcsoló belső folyam táblázatához 2015. tavasz 13
OpenFlow eszközök Vezérlő/NOS» POX (Python)» általános SDN vezérlő» NOX (C++)» az első OpenFlow controller» Floodlight (Java)» ipari szintű megoldás» OpenDaylight (Java)» NFV» Ryu (Python)» nyílt forrású Network Operating System (NOS)» ovs-controller (C)» referencia vezérlő az Open vswitch-hez» Kapcsolók» Szoftveres kapcsolók» Stanford Reference Implementation v1.0» Open vswitch» Linux-based Software Switch (Kernel Space implementáció)» Nem csak OF kapcsoló, hanem hypervisorokban is alkalmazott» Szoftver Hardver» Általános hardveren» OpenWRT-t futtatva» szoftveres kacsolók portolhatók» CPU-n futtatva» user space implementáció» NetFPGA-alapú implementáció» Hardver kapcsoló gyártók» HP, Cisco, Juniper, IBM, Arista, NEC, Netgear, Pronto, 2015. tavasz 14
OpenFlow Control Program A Control Program B Network OS Packet Forwarding If header = p, send to port 4 If header = q, overwrite header with r, add header s, and send to ports 5,6 If header =?, send to me Packet Forwarding Flow Table(s) Packet Forwarding 2015. tavasz 15
OpenFlow szabályok, műveletek» Egyszerű csomagkezelési szabályok» <Header match, Action>» <Fejléc illeszkedési minta, művelet>» tetszőleges bitminta megadható: Header Data Match: 1000x01xx0101001x» Művelet (action)» Továbbítás megadott port(ok)ra, eldobás, továbbküldés a vezérlőnek» Fejléc felülírás, hozzáadás (push), levétel (pop)» Továbbítás megadott bitsebességgel 2015. tavasz 16
Folyam táblázat» Lehet több is, át lehet irányítani egyikből a másikba a feldolgozást Flow 1. Rule (exact & wildcard) Action Statistics Flow 2. Rule (exact & wildcard) Action Statistics Flow 3. Rule (exact & wildcard) Action Statistics Flow N. Rule (exact & wildcard) Default Action Statistics 2015. tavasz 17
Folyam bejegyzések» Részei» illeszkedési minta» művelet» statisztika Match Fields 1. Packet 2. Byte counters Action Stats In Port Src MAC Dst MAC Eth Type Vlan Id IP Tos IP Proto IP Src IP Dst TCP Src Port TCP Dst Port Layer 2 Layer 3 Layer 4 1. Forward packet to port(s) 2. Encapsulate and forward to controller 3. Drop packet 4. Send to normal processing pipeline 2015. tavasz 18
Pédák 1. Ethernet kapcsolás Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * 00:1f:.. * * * * * * * port6 Folyam szintű kapcsolás Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action port3 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Tűzfal Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * * * * * * * * 22 drop 2015. tavasz 19
Pédák 2. Útvonalválasztás Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action * * * * * * 5.6.7.8 * * * port6 VLAN kapcsolás Switch Port * MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport * 00:1f.. * vlan1 * * * * * TCP dport Action port6, port7, port9 2015. tavasz 20
OpenFlow építőelemek 2015. tavasz 21
Izolált szeletek» proxy a vezérlő és az adat sík között» hardver erőforrások szeletekhez rendelése» topológia felderítés szeletenként 2015. tavasz 22
Folyam szintű csomagkezelés: reaktív» folyam első csomagja a vezérlőhöz továbbítva» a vezérlő felprogramozza a folyamnak megfelelő szabályokat az adatsíkon» rendszerint egy szabály, de lehet több is (lista)» a vezérlő visszaküldi az első csomagot a hálózati eszköznek» a folyam további csomagjai a felprogramozott szabályok alapján továbbítódnak 2015. tavasz 23
SDN a felhőben» Reaktív végpont-végpont hálózatok helyett» első csomag a vezérlőhöz késleltetés» végpont-végpont: sok bejegyzés, skálázhatósági probléma» előfizetők/vm-ek változása minden kapcsolót érint» proaktív fedőhálózat (overlay)» a fizikai hálózat L2/L3 összeköttetést biztosít» a vezérlő előre felprogramozza az eszközöket kis késleltetés» alagutak: előfizető állapot csak a végpontokban (hypervisor virt. kapcs. / útválasztó), skálázható» kevesebb bejegyzés a továbbítási táblázatokban» nem a VM-ek, hanem csak fizikai szerverek közötti kapcsolatok» előfizetők változása a fizikai hálózatot nem érinti 2015. tavasz 24
Felhő menedzsment és SDN» Orchestration (vezénylés): OpenStack biztosítja» magasabb szintű absztrakció» a virtuális erőforrásokat látja» nem csak a hálózat, hanem egy teljes alkalmazás rendszer» VM-ek, háttértárak, stb. + hálózat» CLI vagy horizon dashboard» automatizált: Heat» sablonok» SDN» a fentiek alacsonyabb szintű hálózati megvalósítása Felhő menedzsment/vezénylő platform / alkalmazások Northbound API Hálózat virtualizáció menedzser/vezérlő Hypervisor Southbound API vswitch/vrouter Overlay protokoll Fizikai hálózat Hálózati szolg. Hálózati szolg. Gateway 2015. tavasz 25
OpenStack» OVS Neutron plugin» OpenFlow a virtuális kapcsoló táblázatok felprogramozására» VM MAC címe és a szerver hypervisor transzport IP címe közötti leképezés ezt a vezénylés (orchestration) számára ismert» proaktív» északi interfész (northbound): Neutron» déli interfész (southbound): OpenFlow» Lehet más SDN vezérlő plugin» pl. OpenDaylight OpenStack Neutron plugin 2015. tavasz 26
SND a felhőben» Nem csak a virtuális kapcsolók/útválasztók beállítására, hanem a fizikai hálózati eszközökre is Forrás: http://www.opencontrail.org/opencontrail-architecture-documentation/ 2015. tavasz 27
Adatközpont hálózati követelmények» Kapcsolók konfigurációjának és állapotának minimalizálása» automatizálás, amennyire lehetséges» Hatékony forgalom továbbítás, nagy teljesítmény» ne legyen hurok» alkalmazkodás a forgalmi változásokhoz» ügyfél SLA betartása» VM migráció gyorsan és könnyen» transzparens migrálás» Gyors, hatékony hiba felderítés/elhárítás» elég gyakori a nagy méretből adódóan» a hálózatnak is igazodnia kell a hibaelhárításhoz 2015. tavasz 28
Tradícionális megoldások» Layer 3 + hierarchikus címzés kis továbbítási táblázatok + OSPF gyors hibakezelés + IP TTL: hurkok kivédése - magas az adminisztrációs teher (alhálózatok konfigurálása, DHCP, stb.)» Layer2 + Flat MAC címzés (helyfüggetlen) + hurkok kivédése: STP + kevesebb az adminisztrációs teher - broadcast forgalom (nem jól skálázható) - STP nem tudja kihasználni a teljes topológiát» VLAN» skálázhatóság (max. 4K)» statikus konfigurációból származó hátrányok 2015. tavasz 29
SDN megoldás» a vezérlő teljes hálózati képet kap» eszközök felderítése» MAC, IP címek, kapcsolatok» a vezénylés által adott feladat alacsonyabb szintű hálózati megvalósítása» gyors és dinamikus hálózat kialakítás» rugalmas: ügyfelek által megadott módon» automatizált hálózati erőforrás kiosztás/kezelés» forgalmi terhelés optimalizálása, akár adatközpontok között» skálázhatóság» NFV 2015. tavasz 30
Felhő specifikus feladatok» terheléskiegyenlítés (Load Balancing LB)» adatközpontok közötti alagút» VM migrálás» skálázható csomagtovábbítás 2015. tavasz 31
Terheléskiegyenlítés» Dinamizmus» az OpenFlow bejegyzésekhez időzítő tartozik» Terheléskiegyenlítéshez szükséges műveletek» a publikus IP cím átírása a kiszolgáló IP címére» a kiszolgálóhoz tartozó kimeneti portra továbbítás» az ellenkező irányba fordítottan ugyanez» Megoldandó» hash alapú útválasztás» TCP flag vizsgálat az új folyamok megkülönböztetésére» Plug-n-Serve: Load-Balancing Web Traffic using OpenFlow» terheléskiegyenlítés a hálózat és a kiszolgálók terhelése alapján, elosztott módon Forrás: http://conferences.sigcomm.org/sigcomm/2009/demos/sigcomm-pd-2009-final26.pdf 2015. tavasz 32
SDN adatközpontok közötti forgalomra» Forgalom» cloud bursting» földrajzi szempontok a terheléskiegyenlítésben» Alagutak kiépítése reaktív módszerrel» multipath» útvonalak változtatása = fejlécek átprogramozása menet közben Forrás: http://www.opencontrail.org/how-to-setup-opencontrail-gateway-juniper-mx-cisco-asr-and-software-gw/ 2015. tavasz 33
VM migrálás» Okai» karbantartás, terheléskiegyenlítés» VM-ek összerendezése (energiatakarékosság)» katasztrófa elhárítás: teljes alkalmazás rendszer áttelepítés» Másik alhálózatba migrálás nehézségei» hierarchikus IP címzés» kézi átkonfigurálás nem életképes megoldás» az élő TCP kapcsolatok ne szakadjanak meg» CrossRoads» helyfüggetlenség: pszeudo MAC (PMAC) és IP címek (PIP)» SDN vezérlő kezeli az összerendeléseket Forrás: Mann, V.; Vishnoi, A; Kannan, K.; Kalyanaraman, S., "CrossRoads: Seamless VM mobility across data centers through software defined networking," Network Operations and Management Symposium (NOMS), 2012 IEEE, vol., no., pp.88,96, 16-20 April 2012 2015. tavasz 34
SDN skálázhatóság» Kihívás a vezérlő sík számára» VM-ek száma, ügyfél szabályok, SLA-k, folyamok száma, stb.» multi domain környezetben vezérlők szövetsége (federation)» információcsere» állapotok megosztása» könnyen bővíthető» NEC 2014. tesztek» Trema OpenFlow vezérlő» Layer 2 hálózatok VXLAN technológiával» vezérlő terheléskiegyenlítéssel: több kiszolgáló» egy kiszolgáló 410 kapcsolót kezel, lineáris skálázódás» 16 000 virtuális hálózatot kezel» 1024 kapcsoló, mindegyiken 128 VM» konstans 4 mp egy virtuális hálózat kialakítása 2015. tavasz 35
Alkalmazások» Amazon, Google, Facebook, Microsoft Azure» saját egyedi SDN megoldások» Google inter-datacenter WAN: SDN + OpenFlow» központosított forgalom szervezés (traffic engineering)» hálózati költségek csökkentése» NEC által telepített adatközpontokban» költségek csökkentése» VMware» Nicira (SDN, hálózat virt.)» Network Virtualization Platform (NVP): overlay hálózati technológia VMware NSX 2015. tavasz 36
Források» Nick McKeown (Stanford University),"Software-defined Networking, Infocom Keynote Talk, April 2009, Rio de Janeiro, Brazil» Srini Seetharaman, OpenFlow/SDN tutorial, Nov 2011» Jennifer Rexford (Princeton University), Computer Science 461: Computer Networks, Software Defined Networking» Matt Davy (Indiana University), Software Defined Networking & OpenFlow, GENI Workshop, July 7th, 2011» Open Networking Foundation, https://www.opennetworking.org/» http://www.openflow.org/» CHIBA Yasunobu, SUGYOU Kazushi, OpenFlow Controller Architecture for Large-Scale SDN Networks, NEC Technical Journal/Vol.8 No.2/Special Issue on SDN and Its Impact on Advanced ICT System, 2014 2015. tavasz 37