Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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ó Traffic engineering Csomagfeldolgozás Csomagtartalom elemzés …
»
OSPF, BGP, multicast, differentiated services, Traffic Engineering, NAT, firewalls, MPLS, …
VLAN, ACL MPLS, ECMP, súlyok Tűzfalak, NAT, middleboxes Deep packet inspection (DPI)
Sok komplex funkció az infrastruktúra része lett
„mainframe” mentalitás – monolitikus architketúra
App
App
App
Operációs rendszer Specializált csomagtovábbító hardver 2015. tavasz
Útvonalválasztás, menedzsment, mobilitás menedzsment, access control, VPN, … millió sor nagyságrendű foráskód
5400 RFC
belépési korlát
500M kapu 10Gbyte RAM
Bonyolult
Energiaigényes
3
Távközlési és Médiainformatikai Tanszék
Ideális és megvalósult architektúra App
App
App App
Operációs rendszer Specializált csomagtovábbító hardver
App App
Operációs rendszer Specializált csomagtovábbító hardver
» 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
Távközlési és Médiainformatikai Tanszék
Hasonlóság a számítógép architektúrák App App
App
Windows Windows Windows (OS) (OS) (OS)
Linux Linux Linux
Számítógépek
2015. tavasz
App
App
Mac Mac Mac OS OS OS
Virtualization layer x86 (Computer)
App
Controller Controller NOX 11 (Network OS)
Controller Controller Network OS 22
Virtualization or “Slicing” OpenFlow
Hálózatok
5
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
SDN komponensek
2. Operációs rendszer Bővíthető, lehetőleg nyílt forráskódú
3. Jól definiált nyílt API
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
Távközlési és Médiainformatikai Tanszék
SDN virtualizáció App
App
Network Operating System 1
App
App
Network Operating System 2
App
App
Network Operating System 3
App
App
Network Operating System 4
Nyílt interfész a hardver felé
Izolált “szeletek”
Virtualization or “Slicing” Layer Nyílt interfész a hardver felé Simple Packet Forwarding Hardware
Simple Packet Forwarding Hardware
2015. tavasz
Simple Packet Forwarding Hardware
Simple Packet Forwarding Hardware
Simple Packet Forwarding Hardware 8
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
SDN absztrakció a vezérlő síkon Hálózat virtualizáció
Jól definiált API Útválasztás
Traffic
Engineering
Egyéb alkalmazás
Hálózati operációs rendszer
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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 » …
2015. tavasz
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, …
14
Távközlési és Médiainformatikai Tanszék
OpenFlow Control Program A
Control Program B
Network OS “If header = p, send to port 4” Packet Forwarding
Packet Forwarding
2015. tavasz
“If header = q, overwrite header with r, add header s, and send to ports 5,6” “If header = ?, send to me”
Flow Table(s) Packet Forwarding
15
Távközlési és Médiainformatikai Tanszék
OpenFlow szabályok, műveletek » Egyszerű csomagkezelési szabályok »
» » 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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
Folyam bejegyzések » Részei » illeszkedési minta » művelet » statisztika
In Port
Src MAC
Dst MAC
Eth Type
Layer 2 1. 2. 3. 4.
Vlan Id
1. Packet 2. Byte counters
Match Fields
IP Tos
IP Proto
IP Src
Layer 3
Action
IP Dst
Stats
TCP Src Port
TCP Dst Port
Layer 4
Forward packet to port(s) Encapsulate and forward to controller Drop packet Send to normal processing pipeline
2015. tavasz
18
Távközlési és Médiainformatikai Tanszék
Pédák 1. Ethernet kapcsolás
Switch MAC Port src *
MAC Eth dst type 00:1f:.. *
*
VLAN IP ID Src
IP Dst
IP Prot
TCP TCP Action sport dport
*
*
*
*
IP Dst
IP Prot
TCP TCP Action sport dport
*
*
port6
Folyam szintű kapcsolás
Switch MAC Port src
MAC Eth dst type
port3 00:20.. 00:1f.. 0800
VLAN IP ID Src
vlan1 1.2.3.4 5.6.7.8
4
17264 80
port6
Tűzfal
Switch MAC Port src
* 2015. tavasz
*
MAC Eth dst type
*
*
VLAN IP ID Src
IP Dst
IP Prot
TCP TCP Action sport dport
*
*
*
*
*
22
drop 19
Távközlési és Médiainformatikai Tanszék
Pédák 2. Útvonalválasztás
Switch MAC Port src *
*
MAC Eth dst type *
*
VLAN IP ID Src
IP Dst
*
5.6.7.8 *
*
IP Dst
TCP TCP Action sport dport
*
IP Prot
TCP TCP Action sport dport *
port6
VLAN kapcsolás
Switch MAC Port src *
2015. tavasz
*
MAC Eth dst type 00:1f.. *
VLAN IP ID Src vlan1 *
*
IP Prot *
*
*
port6, port7, port9
20
Távközlési és Médiainformatikai Tanszék
OpenFlow építőelemek
2015. tavasz
21
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
SDN »
2015. tavasz
Felhő menedzsment/vezénylő platform / alkalmazások
» sablonok
a fentiek alacsonyabb szintű hálózati megvalósítása
Northbound API Hálózat virtualizáció menedzser/vezérlő
Hálózati szolg.
Southbound API Hálózati szolg.
Hypervisor vSwitch/vRouter Overlay protokoll
Gateway
Fizikai hálózat
25
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
Terheléskiegyenlítés » »
»
»
Dinamizmus »
az OpenFlow bejegyzésekhez időzítő tartozik
» » »
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
» »
hash alapú útválasztás TCP flag vizsgálat az új folyamok megkülönböztetésére
»
terheléskiegyenlítés a hálózat és a kiszolgálók terhelése alapján, elosztott módon
Terheléskiegyenlítéshez szükséges műveletek
Megoldandó
Plug-n-Serve: Load-Balancing Web Traffic using OpenFlow
Forrás: http://conferences.sigcomm.org/sigcomm/2009/demos/sigcomm-pd-2009-final26.pdf 2015. tavasz
32
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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 Mann, V.; Vishnoi, A; Kannan, K.; Kalyanaraman, S., "CrossRoads: Seamless VM mobility összerendeléseket Forrás: 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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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
Távközlési és Médiainformatikai Tanszék
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