OpenFlow är ett protokoll för att hantera processen att bearbeta data som överförs över ett dataöverföringsnätverk av routrar och switchar som implementerar mjukvarudefinierad nätverksteknik .
Protokollet används för att hantera nätverksväxlar och routrar från en central enhet - en nätverkskontroller (till exempel från en server eller till och med en persondator ). Denna kontroll ersätter eller kompletterar det inbyggda programmet som körs på växeln (routern) som bygger en rutt, skapar en växlingskarta etc. Regulatorn används för att hantera växelflödestabellerna, baserat på vilka ett beslut fattas att överföra mottaget paket till en specifik port på switchen. Således bildas direkta nätverksanslutningar i nätverket med minimala dataöverföringsfördröjningar och nödvändiga parametrar.
Firmwareversioner som stöder Openflow har utvecklats för enheter från många tillverkare, inklusive Extreme Networks , Juniper , Cisco , HP , IBM , NEC , MikroTik . [ett]
Datasökvägen ( datasökväg ) består av en flödestabell och åtgärder som tilldelats varje post i tabellen. Tabellerna själva kan relatera till både Ethernet (eller andra länklagerprotokoll) och högre lagerprotokoll (IP, TCP). Den exakta listan över åtgärder kan variera, men de viktigaste är: vidarebefordran (vidarebefordra ett datafragment - ett paket, en ram - till en given port), skicka ett datafragment till kontrollanten genom en säker kanal för vidare forskning, kassera en datafragment (släpp). För enheter som kombinerar openflow och normal paketbearbetning med hjälp av enhetens firmware, läggs en fjärde typ av åtgärd till: bearbetning av ett datafragment på konventionellt sätt. Hårdvaran som stöder dessa fyra åtgärder är Type0- enheter.
En OpenFlow-enhet består av minst tre komponenter:
Varje post i strömtabellen har tre fält: en PDU-rubrik (datafragment), som låter dig bestämma PDU:ns överensstämmelse med strömmen, åtgärden och fältet med statistik (antal byte och PDU som motsvarar strömmen , transittiden för den sista PDU som motsvarar strömmen).
Rubriken kan bestå av många fält på olika nivåer (till exempel käll- och destinations-MAC-adresser, fält från IP-pakethuvudet, fält från TCP-segmenthuvudet). Det bör noteras att den aktuella versionen av protokollet [2] inte stöder kontroll av till exempel SYN-flaggan i TCP-segmenthuvudet. Varje fält kan ha ett speciellt värde ( asterisk ) som matchar vilket värde som helst i motsvarande fält i PDU:n. [3]
Typ1- enheter , som kommer att tillhandahålla nätverksadressöversättning , stöd för klasser och prioriteringar, är planerade, men deras specifikation har ännu inte fastställts.
Styrenheterna sörjer för att fylla flödestabellen, ta emot paket genom en säker kanal från enheten. De kan implementeras som en enkel algoritm som liknar beteendet hos en switch som separerar paket över logiska nätverk ( VLAN ), eller så kan de implementera komplex dynamisk logik som påverkar flödet av paket baserat på externa skäl (åtkomsträttigheter, serverbelastning, tjänsteprioriteringar , etc.). ).