Hálózatok építése és üzemeltetése

Hasonló dokumentumok
Hálózatok építése és üzemeltetése

Hálózatok építése és üzemeltetése

A hálózat mint platform

SDN a különböző gyártói megközelítések tükrében

Számítógépes Hálózatok GY 8.hét

SDN a különböző gyártói megközelítések tükrében

Cloud computing. Cloud computing. Dr. Bakonyi Péter.

Using the CW-Net in a user defined IP network

Számítógépes Hálózatok GY 9.hét

Cloud computing Dr. Bakonyi Péter.

Radware terhelés-megosztási megoldások a gyakorlatban

Hálózatok építése és üzemeltetése

Ethernet/IP címzés - gyakorlat

Felhő alapú hálózatok (VITMMA02) SDN a felhőben

NCS5500 bemutató. Balla Attila

Teszt topológia E1/1 E1/0 SW1 E1/0 E1/0 SW3 SW2. Kuris Ferenc - [HUN] Cisco Blog -

Cisco Alkalmazásközpontú Application Centric Infrastructure

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

Hálózati rendszerek adminisztrációja JunOS OS alapokon

ARM processzorok felépítése

Modbus kommunikáció légkondícionálókhoz

Az M2M szabványosítási helyzete

IP alapú komunikáció. 2. Előadás - Switchek 2 Kovács Ákos

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

Számítógépes hálózatok

Organizáció. Számítógépes Hálózatok Gyakorlati jegy. Vizsga. Web-oldal

Számítógépes Hálózatok ősz 2006

Organizáció. Számítógépes Hálózatok ősz Tartalom. Vizsga. Web-oldal

Kommunikációs rendszerek programozása. Switch-ek

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

Újdonságok Nexus Platformon

Everything Over Ethernet

Az internet ökoszisztémája és evolúciója. Gyakorlat 4

Felhő alapú hálózatok (VITMMA02) OpenStack Neutron Networking

TP-LINK Business Wireless Az EAP Kontrolleres Wi-Fi termékcsalád bemutatása - bevezető SMB Product Line

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

Pletykaalapú gépi tanulás teljesen elosztott környezetben

Kezdőlap > Termékek > Szabályozó rendszerek > EASYLAB és TCU-LON-II szabályozó rendszer LABCONTROL > Érzékelő rendszerek > Típus DS-TRD-01

Felhő alapú hálózatok (VITMMA02) Hálózati megoldások a felhőben

Újdonságok Nexus Platformon

Energia automatizálás

Konfiguráljuk be a TCP/IP protokolt a szerveren: LOAD INETCFG A menüpontokból válasszuk ki a Proctcols menüpontot:

Eladni könnyedén? Oracle Sales Cloud. Horváth Tünde Principal Sales Consultant március 23.

Párhuzamos programozási platformok

Számítógépes Hálózatok. 8. gyakorlat

Technológiák a Felhő alapú adatközpontokhoz

Előnyei. Helyi hálózatok tervezése és üzemeltetése 2

Infrastruktúra lehetőségek idén

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT október 29. HSNLab SINCE 1992

Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban

Operációs rendszerek Memóriakezelés 1.1

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Számítógépes Hálózatok

Utolsó módosítás:

Párhuzamos és Grid rendszerek

Gazdálkodj Okosan! OpenFlow eszközökkel

Utolsó módosítás:

Hálózati és Szolgáltatási Architektúrák

Új generációs GSM-R vasútüzemi kommunikáció

Utasítások. Üzembe helyezés

INDEXSTRUKTÚRÁK III.

IPv6 Biztonság: Ipv6 tűzfalak tesztelése és vizsgálata

EXTREME NETWORKS MEGOLDÁSOK ANALYTICS & SDN KRUPA ZSOLT ICT SMART SOLUTION SZAKMAI NAP

Huawei Cisco Interworking Szolgáltatói környezetben

EEA, Eionet and Country visits. Bernt Röndell - SES

Az Ethernet példája. Számítógépes Hálózatok Az Ethernet fizikai rétege. Ethernet Vezetékek

Computer Architecture

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

CSOMAGSZŰRÉS CISCO ROUTEREKEN ACL-EK SEGÍTSÉGÉVEL PACKET FILTERING ON CISCO ROUTERS USING ACLS

Internet Protokoll 6-os verzió. Varga Tamás

Kommunikációs Hálózatok 2 MPLS: Címke, VPN, TE

16F628A megszakítás kezelése

Allied Telesis. Szakmai nap 2017 Pásztor András

TÁVKÖZLŐ HÁLÓZATOK MÉRTÉKADÓ MŰSZAKI KÖVETELMÉNYEI

Android Pie újdonságai

Hálózatok építése és üzemeltetése

USER MANUAL Guest user

Routing update: IPv6 unicast. Jákó András BME EISzK

vezeték nélküli Turi János Mérnök tanácsadó Cisco Systems Magyarország Kft.

9. MPI

ARM Cortex magú mikrovezérlők. mbed

Széchenyi István Egyetem

SAS Enterprise BI Server

(NGB_TA024_1) MÉRÉSI JEGYZŐKÖNYV

Hálózati és Szolgáltatási Architektúrák

Construction of a cube given with its centre and a sideline

Félreértések elkerülése érdekében kérdezze meg rendszergazdáját, üzemeltetőjét!

Párhuzamos programozási platformok

Hálózatok építése és üzemeltetése

LAN Technológiák. Osztott médium hálózatok. LAN-ok

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

Több app. Egy kódbázis

9. Gyakorlat: Network Load Balancing (NLB)

IP alapú kommunikáció. 3. Előadás Switchek 3 Kovács Ákos

Proxer 7 Manager szoftver felhasználói leírás

TI TMDSEVM6472 rövid bemutatása

On The Number Of Slim Semimodular Lattices

Átírás:

Hálózatok építése és üzemeltetése A hálózat mint platform (SDN) 1 2016/10/12

Hálózatok gyors helyzetkép! Switch-ek különböző gyártóktól + interfészek, linkek! Különböző config felületek/support! Ki kell találni a hálózat hogy működjön! A switch-eket router-eket a hozzájuk való config felületen be kel állítani egyesével! Ha mindent jól csináltuk, akkor működik a hálózat! De kell egy szakértő csapat, aki a felmerülő hibákat folyamatosan figyeli és javítja.! Kinek jó ez? 2

Mai téma! A hálózat mint platform (SDN)! A hálózati eszközöket egységben kezelve egy (szoftver) platformot kapunk, amire alkalmazások fejleszthetők! Gyökeres váltás a hagyományos gondolkodáshoz képest! Miért kell ezt tanulni? SDN is still young. But understanding OpenFlow controllers and virtualization, and having these skills on your CV, will be crucial to stay relevant.'' --- Joachim Bauernberger 3 2016/10/12

Miért most?! Voltak már próbálkozások! Most mi változott?! Google, datacenters Networks are in my way.! Evolúciós dolgok (vízvezeték)! Ehhez egy stabil hálózat kell, most jutottunk el oda, hogy kifejlődtek a stabil hálózatok világméretű szabványai! Stabilitás, hibatűrés már nem akkora kihívás extra szolgáltatások (vö. autóipar) 4

Hagyományos hálózatok Összefoglalás 5 Hálózatok építése és üzemeltetése, A hálózat mint platform (SDN) - Gulyás András,, BME-TMIT 2016/10/12

Hagyományos hálózatok! Síkok (miért?)! Milyen időskálán dolgozik és milyen szintűek a feladatai! Pl. Szoftverfejlesztő cég:! Menedzsment (milyen irányba menjen a cég)! Projekt (adott projekt feladatainak összehangolása)! Programozás: jól körülhatárolt lokális problémák megoldása gyorsan! Pl. törvényhozás síkjai 6

Hagyományos hálózatok síkjai! Adatsík: Az adatsík gyakorlatilag a hálózati (kapcsoló) eszközöket tartalmazza, amelyek feladata nem más, mint a csomagok hatékony és extrém gyors továbbítása.! Vezérlősík: A vezérlő sík különböző protokolljai oldják meg, hogy a kapcsolóeszközökben levő kapcsolási logika (táblázatok) megfelelően működjön! Menedzsment sík: A menedzsment síkban lehet megadni és nyomon követni a kívánt hálózati funkcionalitást.! Tehát a menedzsment sík definiálja, a vezérlő sík kikényszeríti, az adatsík pedig végrehajtja a kívánt működést. 7 Hálózatok építése és üzemeltetése, A hálózat mint platform Fig. (SDN) 3. - Gulyás Layered András, viewbme-tmit of networking functionality.

Síkok példa OSPF-el! Menedzsment sík: legyen OSPF! Vezérlősíkban az OSPF egyedek monitorozzák a topológiát, kiszámolják a legrövidebb utakat és beállítják az útválasztási táblákat! Az adatsík meg a táblázatok alapján villámgyorsan pakolja a csomagokat. 8

Hagyományos hálózatok működési logikája! Síkok megvalósítása, vezérlő - és adatsík egy eszközben (olyan mintha nem lenne projektvezető, vagy mindenki az lenne)! Elosztott protokollok! Drága (CAPEX, OPEX)! Lassú innováció! Extra funkciók middlebox-okban Fig. 3. Layered view of networking functionality. 9

Middlebox-ok 10

Az SDN alapkövei 11 Hálózatok építése és üzemeltetése, A hálózat mint platform (SDN) - Gulyás András,, BME-TMIT 2016/10/12

Mi nem az SDN?! Nem egy új hálózati működési elv! Nem egy új algoritmus! Nem egy új protokoll! Az SDN nem változtatja meg a hálózatok alapvető lehetőségeit és korlátait 12

Mi akkor az SDN?! Egy újfajta szemléletmód és technológia, amivel a hálózat funkcionalitását megadjuk, nyomon követjük és teljesítményét ellenőrizzük. 13

Az SDN alapkövei I.! A vezérlő és adatsíkok szétválasztása. A vezérlési funkciókat kivesszük a kapcsolóeszközökből, amik ezek után egyszerű csomagtovábbító elemekké válnak mindenféle intelligencia nélkül. 14

Az SDN alapkövei II.! A kapcsolási döntéseket nem csomag, hanem folyamszinten hozzuk meg. 15

Az SDN alapkövei III.! A vezérlési logikát (ami hagyományos IP hálózatokban a kapcsolókban van) egy külső entitásba, a kontrollerbe más nevén a hálózati operációs rendszerbe (Network Operating System (NOS)) költöztetjük.! Kontrollhálózat Igénytelen, egyszerű (pl. broadcast) hálózat akár alacsony átviteli sebességgel de magas rendelkezésreállásal 16

Az SDN alapkövei IV.! A hálózat programozható a NOS felett futó alkalmazások segítségével. Az alkalmazások kommunikálhatnak a kapcsolóeszközökkel és dinamikusan változtathatják azok viselkedését.! Alkalmazások pl.: routing, tűzfal 17

Analógia a szoftver platformokkal Szoftver Alkalmazások Nyílt interfész Hálózatok Zárt Speciális alkalmazások Alkalmazások Nyílt interfész Windows Linux Mac OS Speciális control Control Control Nyílt interfész Mikroprocesszor Nyílt interfészek Gyors innováció Óriási ipar Speciális hardver Zárt védett interfészek Lassú innováció Nyílt interfész Speciális kapcsoló chipek 18

Az SDN síkjai 19 Hálózatok építése és üzemeltetése, A hálózat mint platform (SDN) - Gulyás András,, BME-TMIT 2016/10/12

Software-Defined Networking Convention Az SDN síkjai Network$Applica2ons$ MAC$ Learning$ Rou2ng$ Algorithms$ Intrusion$ Detec2on$ System$ SDN$controller$ Load$ Balancer$ Menedzsment sík Vezérlősík Adatsík s d n Fig. 5. Traditional networking versus Software-Defined Networking (SDN). With SDN, management becomes simpler and middleboxes services can be 20

SDN vs hagyományos Software-Defined Networking Conventional Networking Network$Applica2ons$ MAC$ Learning$ Rou2ng$ Algorithms$ Intrusion$ Detec2on$ System$ SDN$controller$ Load$ Balancer$ Menedzsment sík Vezérlősík Adatsík applications e distributed 21 Fig. 5. Traditional networking Hálózatok versus építése Software-Defined és üzemeltetése, Networking A hálózat (SDN). mint platform (SDN) - Gulyás András, BME-TMIT With SDN, management becomes simpler and middleboxes services can be

Legrövidebb útválasztás OSPF példa 22

Az adat és vezérlősík szétválasztásából adódó előnyök! Sokkal könnyebb a hálózatot új funkciókkal bővíteni, hiszen egy SDN alkalmazás egyszerre használhatja, a kontroller által nyújtott információkat és a magas szintű programozási nyelveket.! Minden alkalmazás használhatja a hálózatról rendelkezésre álló információkat ezért sokkal hatékonyabb szolgáltatások készíthetők és a vezérlősík szoftvermoduljai több modulnál is újrahasznosíthatók.! Az alkalmazások nagyon könnyen újrakonfigurálhatják a hálózat bármely részében levő kapcsolókat, ezért nincs szükség előre eldönteni, hogy hova helyezzük az egyes funkciókat (pl. terheléselosztó, tűzfal)! A szolgáltatások integrációja sokkal egyszerűbb. Pl. egyszerűen megadhatjuk, hogy a terheléselosztó alkalmazásnak nagyobb prioritása legyen a routing alkalmazásnál. 23

Az SDN rétegei 24 Hálózatok építése és üzemeltetése, A hálózat mint platform (SDN) - Gulyás András,, BME-TMIT 2016/10/12

Rétegek! Miért beszélünk rétegekről? Specifikus-e ez?! Pl: a hallás rétegei! Ha az interfészek letisztultak és változatlanok, akkor a fejlődés (innováció) párhuzamosan mehet a rétegeken belül. Alkalmazás: értelem Reprezentáció: hangok Transzport: idegpályák Adatkapcsolat: fül Fizikai réteg: levegő 25

Az SDN rétegei Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture 26

Infrastruktúra! A hálózat fizikai kapcsolóelemeinek és a köztük levő összeköttetések halmaza! Mit csinál egy SDN kapcsoló: OpenFlow SDN$CONTROLLER$ SDN$DEVICE$ RULE% ACTION% STATS% Packet%+%counters% Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture A. Layer I: Infrastructure An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed FLOW%TABLE% on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to Network$$ Opera5ng$$ System$ Control$ Communica5ons$ Control$ Communica5ons$ FLOW$TABLES$ Switch% port% 1. Forward%packet%to%port(s)% 2. Encapsulate%and%forward%to%controller% 3. Drop%packet% 4. Send%to%normal%processing%pipeline% MAC% src% MAC% dst% Eth% type% VLAN% ID% IP%% src% IP%% dst% TCP% psrc% TCP% pdst% 27

Déli interfész! A kapcsolóelemek és a NOS közötti információátadás módja Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture! Lényege, hogy implementációtól függetlenül specifikálja a kontroll és adatsík kommunikációját! OpenFlow esetében az OpenFlow protokoll! Esemény alapú működés! Link, port események küldése a NOS-nak! Flow statisztikák küldése (pl. hány csomag volt része egy adott folyamnak)! Packet-in és flow-mod: a kapcsoló jelzi, ha nem tudja mit kezdjen egy csomaggal a NOS erre táblabejegyzést helyezhet el. Management plane Control plane Data plane A. Layer I: Infrastructure Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to 28

Hálózati hypervisor! Virtualizációnak van-e értelme?! Hálózati virtualizáció: Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture A. Layer I: Infrastructure An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to! Lehet pl. eszköz szintű: bizonyos kapcsolókat és linkeket külön NOS-hoz rendeljük hozzá.! Lehet pl. folyamtér (flow-space) szintű, amikor adott folyamokat rendelük külön NOS-hoz, vagy alkalmazáshoz 29

FlowVisor Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture A. Layer I: Infrastructure new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin An SDN infrastructure, similarly to a traditional network, is or with a miss (when no rule is found for that packet). A flow composed of a set of networking equipment (switches, routers rule can be defined by combining different matching fields, a and middlebox appliances). The main difference resides in the illustrated in Figure 7. If there is no default rule, the packe fact that those traditional physical devices are now simple will be discarded. However, the common case is to instal forwarding elements without embedded control or software a default rule which tells the switch to send the packet to to take autonomous decisions. The network intelligence is the controller (or to the normal non-openflow pipeline of th removed from the data plane devices to a logically-centralized switch). The priority of the rules follows the natural sequenc control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, actions include (1) forward the packet to outgoing port(s), (2 number of the tables and the row order in a flow table. Possibl these new networks are built (conceptually) on top of open encapsulate it and forward it to the controller, (3) drop it, (4 and standard interfaces (e.g., OpenFlow), a crucial approach send it to the normal processing pipeline, (5) send it to th for ensuring configuration and communication compatibility next flow table or to special tables, such as group or metering and interoperability among different data and control plane tables introduced in the latest OpenFlow protocol. devices. In other words, these open interfaces enable controller As detailed in Table III, each version of the OpenFlow entities to dynamically program heterogeneous forwarding specification introduced new match fields including Ethernet devices, something difficult in traditional networks, due to IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o the large variety of proprietary and closed interfaces and the those matching fields are mandatory to be compliant to a given distributed nature of the control plane. protocol version. Similarly, many actions and port types ar In an SDN/OpenFlow architecture, there are two main optional features. Flow match rules can be based on almos elements, the controllers and the forwarding devices, as shown arbitrary combinations of bits of the different packet header in Figure 7. A data plane device is a hardware or software using bit masks for each field. Adding new matching field element specialized in packet forwarding, while a controller has been eased with the extensibility capabilities introduced is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding Match (OXM) based on type-length-value (TLV) structures in OpenFlow version 1.2 through an OpenFlow Extensibl device is based on a pipeline of flow tables where each entry To improve the overall protocol extensibility, with OpenFlow of a flow table has three parts: (1) a matching rule, (2) version 1.4 TLV structures have been also added to ports, ta actions to be executed on matching packets, and (3) counters bles, and queues in replacement of the hard-coded counterpart that keep statistics of matching packets. This high-level and of earlier protocol versions. simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, Overview of available OpenFlow devices other specifications of SDN-enabled forwarding devices are Several OpenFlow-enabled forwarding devices are availabl being pursued, including POF [31], [120] and the Negotiable on the market, both as commercial and open source product Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. OpenFlow switches and routers, among other appliances. Mos (see Table IV). There are many off-the-shelf, ready to deploy Inside an OpenFlow device, a path through a sequence of of the switches available on the market have relatively smal flow tables defines how packets should be handled. When a Ternary Content-Addressable Memory (TCAMs), with up to 30

Hálózati operációs rendszer NOS! Az agy: ide fut be minden információ az infrastruktúrából Fig. 6. Software-Defined Networks (a) planes, (b) layers, and (c) system design architecture! Magas szintű API az infrastruktúrával (kapcsolóelemekkel) való kommunikációra (hasonlóan az OS-ekhez), izoláció, biztonság, konkurens hozzáférés actions to be executed on matching packets, and (3) counters! Alapvető szolgáltatások, topológia felderítés, monitorozás! Kapcsolóelemek konfigurációja, menedzsmentje (korábban kézzel, zárt struktúrában), akár többféle déli interfész támogatásával! Erre épülnek a hálózati alkalmazások Management plane Control plane Data plane A. Layer I: Infrastructure Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to 31

Hálózati operációs rendszerek OpenFlow-hoz 32

Északi interfész! Magát a hálózat absztrakcióját valósítja meg Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture! A déli interfésszel szemben ez egy szoftver rendszer! Az alkalmazások és a NOS közötti kommunikációt adja meg! Még nincs gyakorlatban elfogadott verzió! Legtöbb NOS-nak az API-ja jelenti az északi interface! De vannak már próbálkozások (frenetic REST API)! Hasonló kéne legyen mint az OS-ek esetében a POSIX Management plane Control plane Data plane A. Layer I: Infrastructure Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to 33

Programozási nyelvek! Assembly OpenFlow üzenetek! Tisztán az OpenFlow üzenetekkel is lehet hálózatot vezérelni,! nagyon bonyolult, hiszen csomó hardver közeli apróságra kell figyelni, mint pl. konkurens folyamtábla-szerkesztés, átfedő folyamtábla bejegyzések, dinamikus működésből adódó inkonzisztens állapotok stb.! Ráadásul ilyen alacsony szintű nyelven nehéz jól strukturált újrafelhasználható kódot írni.! Magasabb szintű nyelvek: c/c++, java, python, ruby Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture A. Layer I: Infrastructure An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to 34

Magas szintű programozási nyelvek nyelvek! A fő céljuk ezeknek a nyelveknek az, hogy a fejlesztőknek ne kelljen annyit a hálózat megvalósításával foglalkozniuk, ehelyett a konkrét megoldandó feladatra (logikai működés) tudjanak fókuszálni! Előnyeik:! A hálózat magas szintű absztrakciója, melyen keresztül a hálózat funkcionalitása (pl. legrövidebb útválasztás) könnyen megadható. A fordító mechanizmusok feladata ezután, hogy a magas szinten megadott leírást végül konkrét OpenFlow üzenetekké transzformálják.! Produktív, problémaközpontú környezet kialakítása, a fejlesztés és innováció gyorsítása, hibalehetőségek minimalizálása.! Moduláris, újrahasznosítható kód létrehozása.! Nyelv alapú hálózati virtualizáció. Ez kb. azt jelenti, hogy a hálózat elemeihez virtuális objektumokat rendelhetünk (egy kapcsolóhoz akár többet is), így magán a hálózati alkalmazáson belül hálózatvirtualizációt valósíthatunk meg. 35

Magas vs. alacsony szint példa Simple Repeater def switch_join(switch): # Repeat Port 1 to Port 2 p1 = {in_port:1} a1 = [forward(2)] install(switch, p1, DEFAULT, a1) # Repeat Port 2 to Port 1 p2 = {in_port:2} a2 = [forward(1)] install(switch, p2, DEFAULT, a2) Web Traffic Monitor def switch_join(switch)): # Web traffic from Internet p = {inport:2,tp_src:80} install(switch, p, DEFAULT, []) query_stats(switch, p) def query_stats(switch, p, bytes,...) print bytes sleep(30) query_stats(switch, p) Composition: Repeater + Monitor def switch_join(switch): pat1 = {inport:1} pat2 = {inport:2} pat2web = {in_port:2, tp_src:80} install(switch, pat1, DEFAULT, None, [forward(2)]) install(switch, pat2web, HIGH, None, [forward(1)]) install(switch, pat2, DEFAULT, None, [forward(1)]) query_stats(switch, pat2web) # Static repeating between ports 1 and 2 def repeater(): rules=[rule(inport:1, [forward(2)]), Rule(inport:2, [forward(1)])] register(rules) # Monitoring Web traffic def web_monitor(): q = (Select(bytes) * Where(inport:2 & tp_src:80) * Every(30)) q >> Print() # Composition of two separate modules def main(): repeater() web_monitor( def query_stats(switch, xid, pattern, packets, bytes): print bytes sleep(30) query_stats(switch, pattern) 36

Alkalmazások! Az SDN architektúra (SDN stack) tetején ülnek az alkalmazások. Ezek! adják meg a hálózat funkcióját, működési logikáját.! Alap (általában a NOS-al együtt jár) topology, discovery, monitoring! Load balancing, firewall, routing, multipath, hibatűrés, energiafogyasztás minimalizálás, QoS, mobilitás kezelés, hálózatoptimalizálás stb.! Nézzük meg hogyan töltünk alkalmazásokat egy OpenFlow hálózatra Management plane Control plane Data plane Network$Applica7ons$ Programming$Languages$ Language<based$Virtualiza7on$ Northbound$Interface$ Network$Opera7ng$System$ Network$Hypervisor$ Southbound$Interface$ Network$Infrastructure$ Debugging,$Tes7ng$&$Simula7on$ Network$Applica7ons$ Rou7ng$ Access$ Control$ Load$ balancer$ Network$Opera7ng$ System$(NOS)$and$ Network$Hypervisors$ (a)$ (b)$ (c)$ Fig. 6. Software-Defined Networks in (a) planes, (b) layers, and (c) system design architecture A. Layer I: Infrastructure An SDN infrastructure, similarly to a traditional network, is composed of a set of networking equipment (switches, routers and middlebox appliances). The main difference resides in the fact that those traditional physical devices are now simple forwarding elements without embedded control or software to take autonomous decisions. The network intelligence is removed from the data plane devices to a logically-centralized control system, i.e., the network operating system and applications, as shown in Figure 6 (c). More importantly, these new networks are built (conceptually) on top of open and standard interfaces (e.g., OpenFlow), a crucial approach for ensuring configuration and communication compatibility and interoperability among different data and control plane devices. In other words, these open interfaces enable controller entities to dynamically program heterogeneous forwarding devices, something difficult in traditional networks, due to the large variety of proprietary and closed interfaces and the distributed nature of the control plane. In an SDN/OpenFlow architecture, there are two main elements, the controllers and the forwarding devices, as shown in Figure 7. A data plane device is a hardware or software element specialized in packet forwarding, while a controller is a software stack (the network brain ) running on a commodity hardware platform. An OpenFlow-enabled forwarding device is based on a pipeline of flow tables where each entry of a flow table has three parts: (1) a matching rule, (2) actions to be executed on matching packets, and (3) counters that keep statistics of matching packets. This high-level and simplified model derived from OpenFlow is currently the most widespread design of SDN data plane devices. Nevertheless, other specifications of SDN-enabled forwarding devices are being pursued, including POF [31], [120] and the Negotiable Datapath Models (NDMs) from the ONF Forwarding Abstractions Working Group (FAWG) [121]. Inside an OpenFlow device, a path through a sequence of flow tables defines how packets should be handled. When a new packet arrives, the lookup process starts in the first tabl and ends either with a match in one of the tables of the pipelin or with a miss (when no rule is found for that packet). A flow rule can be defined by combining different matching fields, a illustrated in Figure 7. If there is no default rule, the packe will be discarded. However, the common case is to instal a default rule which tells the switch to send the packet to the controller (or to the normal non-openflow pipeline of th switch). The priority of the rules follows the natural sequenc number of the tables and the row order in a flow table. Possibl actions include (1) forward the packet to outgoing port(s), (2 encapsulate it and forward it to the controller, (3) drop it, (4 send it to the normal processing pipeline, (5) send it to th next flow table or to special tables, such as group or metering tables introduced in the latest OpenFlow protocol. As detailed in Table III, each version of the OpenFlow specification introduced new match fields including Ethernet IPv4/v6, MPLS, TCP/UDP, etc. However, only a subset o those matching fields are mandatory to be compliant to a given protocol version. Similarly, many actions and port types ar optional features. Flow match rules can be based on almos arbitrary combinations of bits of the different packet header using bit masks for each field. Adding new matching field has been eased with the extensibility capabilities introduced in OpenFlow version 1.2 through an OpenFlow Extensibl Match (OXM) based on type-length-value (TLV) structures To improve the overall protocol extensibility, with OpenFlow version 1.4 TLV structures have been also added to ports, ta bles, and queues in replacement of the hard-coded counterpart of earlier protocol versions. Overview of available OpenFlow devices Several OpenFlow-enabled forwarding devices are availabl on the market, both as commercial and open source product (see Table IV). There are many off-the-shelf, ready to deploy OpenFlow switches and routers, among other appliances. Mos of the switches available on the market have relatively smal Ternary Content-Addressable Memory (TCAMs), with up to 37