Hlavní navigace

Základní principy fungování softwarově definovaných sítí (SDN)

Peter Frolo

Podívejme se na to, v čem se skrývá kouzlo softwarově definovaných sítí a v čem fungují jinak než klasické sítě. K pochopení nám nejlépe poslouží, pokud se podíváme na rozdíl mezi SDN a tradičním networkingem.

Doba čtení: 4 minuty

Sdílet

V minulosti jsme měli běžný server (bare metal), dnes už můžeme mít virtualizovaný server, takže naše virtuální mašina (VM) může sídlit na libovolném fyzickém „železe“. Přináší nám to jednak lepší využití HW prostředků, ale i orchestrační funkce (rychlejší vybudování VM, lepší zálohování apod.) a škálovatelnost. Když se podíváme na vývoj technologií v oblasti datových úložišť, tak nejčastěji uslyšíme termín NAS, tedy úložiště, které se nachází v jiné lokalitě a přistupujeme na něj pomocí speciálního typu sítě.

Takové řešení nám přináší lepší dostupnost, lepší využití úložné kapacity, jednodušší provisioning a centralizovaný management. Všechen tento pokrok je skvělý a neoddiskutovatelný a posunul IT technologie vpřed o velký skok. Zaměřme se ale na poslední část skládačky v oblasti IT infrastruktury – Networking. Ten na svůj skok vpřed prozatím čekal. Až doteď to fungovalo tak, že každé zařízení si „hrálo“ na svém vlastním písečku a vykonávalo svou funkci v síti samostatně. Management takové sítě se skládá z managementu jednotlivých síťových prvků. Ty jako takové musí používat různé síťové služby a protokoly, abychom zabezpečili chod sítě bez vytvoření smyček a výměnu všech informací, potřebných na forwardování datových paketů.

Takový princip ale není příliš v souladu s pokroky v computingu a storage části. Proto je na čase, aby i síťová oblast IT infrastruktury doběhla dobu a trošku se zmodernizovala. Jak tedy naše síť může fungovat lépe a chytřeji? Odpověď na tuto otázku nám dává technologie SDN, neboli Software Defined Networking.

Co to vlastně SDN je? SDN je jiný přístup k síťovým technologiím, který využívá čtyři hlavní pilíře.

Oddělená kontrolní, management a datová úroveň

Každé síťové zařízení funguje jako samostatný prvek v naší síti. Ano, existují technologie jako stohování (stacking), které v jistém smyslu toto pravidlo porušují, ale stále jen ve velmi malém měřítku. Při stohování můžeme mít jistý, menší počet zařízení (2–10) řízených jedním aktivním prvkem.

Představme si, že tento princip použijeme v naší síti plošně. Každé zařízení by tedy bylo řízené nějakým dedikovaným a nadřazeným zařízením – kontrolérem. To znamená, že kontrolní (control plane) a management (management plane) funkci soustředíme do tohoto kontroléru. Ten dokáže celou síť ovládat, měnit konfiguraci, monitorovat, zastřešovat výměnu informací a podobně.

Tímto principem si velmi pomůžeme při správě naší sítě, jelikož je spravovaná z jediného bodu. Tento pilíř představuje asi největší změnu oproti tradičnímu způsobu networkingu a přináší i nejvíc výhod.


NFV – Network Functions Virtualization

Jakékoliv tradiční síťové zařízení je implementované ve formě fyzického prvku, který má vícero funkčních úrovní.

Kontrolní úroveň, která je zodpovědná za získání informací potřebných na forwarding paketů. Je to tedy software – ve formě operačního systému, který takovouto činnost vykonává pomocí služeb a protokolů. Datová úroveň, což je funkční úroveň, která forwarduje pakety na základě informací získaných od kontrolní úrovně. Tato úroveň je typicky reprezentovaná dedikovaným čipem (ASIC – Application Specific Integrated Circuit). To je úzce specializovaný čip, který dokáže forwardovat pakety obrovskou rychlostí.

Co kdybychom datovou úroveň realizovali také pomocí softwaru? Určitě vás napadlo, že takové řešení bude pomalejší než to za použití ASIC čipu, ale stále může být dostatečně rychlé pro naše potřeby. Tím pádem bychom celé síťové zařízení mohli mít ve formě softwaru a ten nasadit ve virtualizovaném prostředí. Můžeme si například vybudovat v naší síti server, který bude vykonávat funkci firewallu, routeru a wireless LAN kontroléru (za předpokladu, že bude pro tento účel dostatečně výkonný).


Programabilita

Tradiční síťová zařízení se většinou konfigurují pomocí CLI (Command Line Interface). Tento způsob konfigurace je tu z historických důvodů a má velkou řadu výhod. Umíme si tedy naši konfiguraci šablonovat (templating), umíme být velmi přesní a granulární v tom, co a jak chceme nakonfigurovat na našem zařízení.

Mezi nevýhody patří, že každá změna musí být vykonávaná relativně manuálně a administrátor musí umět syntaxi konfiguračních příkazů. Pokud chci do své infrastruktury přidat novu aplikaci, která poběží na mých serverech a budou k ní mít přístup klienti v mé síti, není to problém. Zapnu si textový editor, do něj naťukám několik desítek či stovek příkazů a budu doufat, že jsem se nespletl. Výsledek nakopíruji na síťové zařízení.

Co když ale existuje lepší způsob? Jeden z pilířů SDN je programabilita. Je to vlastnost sítě, která nám zabezpečí větší ohebnost, flexibilitu a automatizaci. Definice říká, že programabilita je soubor procedur a funkcí, které nám umožní zpřístupnit funkce anebo data operačního systému. V SDN to bude znamenat, že pomocí speciálních protokolů dokážeme komunikovat se síťovým zařízením a jistým způsobem ho řídit.

Existují dva základní typy API protokolů v SDN:

Northboud APIs – sloužící ke komunikaci mezi SDN kontrolérem a aplikacemi. Jinými slovy, i samotná aplikace v SDN světě dokáže ovlivnit to, jak síť funguje.

Southbound APIs – slouží ke komunikaci mezi SDN kontrolérem a síťovým zařízeními. Označení south (jih) a north (sever) odkazují na obrázek níže, kde SDN kontrolér je umístěný mezi aplikacemi a síťovými zařízeními.


Overlay služby – Fyzické zapojení sítě představuje fyzickou topologii. Ta ale nějakou zvlášť velkou míru flexibility nenabízí, jelikož co jednou fyzicky zapojím, to bude zapojené, dokud to nerozpojím a nezapojím jiným způsobem. Pokud tedy chce SDN nabídnout větší míru flexibility a ohebnosti, musí si sítě stavět jiným způsobem. K tomu slouží vlastnost overlay, kdy si na své fyzické síti postavím další síť pomocí dodatečné vrstvy. Jinými slovy, overlay se rovná tunneling, tedy vícenásobná enkapsulace. Tento pilíř není v principu nový. V jisté míře je již přítomný i v tradičních sítích.


Toto jsou tedy základní stavební bloky a principy, na kterých funguje SDN. Jejich aplikace se pak v praxi liší podle konkrétního řešení a implementace.