-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchapter2.tex
executable file
·129 lines (92 loc) · 13.1 KB
/
chapter2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
\chapter{Základní problematika virtualizace síťových funkcí}
Tato kapitola se zabývá základní analýzou a popisem problematiky spojené s oblastí virtuálních síťových funkcí. Nejprve uveden přehled a krátký popis virtualizace a cloud computingu spolu s jejich přínosem pro IT. Následně je vysvětlena potřeba virtualizace síťových funkcí. Zde jsou porovnány jednotlivé přístupy k řešení a návrhu počítačových sítí. Zároveň je zde vysvětlen i základní koncept virtualizace síťových funkcí. Dále je v této kapitole zmíněna i souvislost virtualizace síťových funkcí se softwarově definovanými sítěmi.
\section{Virtualizace a Cloud Computing}
Virtualizace je technologie, která změnila způsob, jakým se přistupuje k IT infrastruktuře. V tradičním modelu IT infrastuktury servery podporují pouze jeden operační systém v daném čase. Na tomto systému obvykle běží pouze jedna aplikace. Přestože by na tomto systému mohlo běžet více aplikací, tak je lepší držet aplikace odděleně na různých systémech z důvodu minimalizace potencionálních bodů selhání. Pokud například nastane s aplikací problém, tak častým řešením je restartování systému. Pokud by na systému bylo více aplikací, znamenalo by to jejich vyřazení z provozu po dobu restartu, který může trvat velice dlouho. \cite{VM_book}
Z výše zmíněných důvodů došlo k velkému rozvoji a nasazování virtualizace. Virtualizací obecně označujeme techniky, které umožňují k dostupným hardwarovým zdrojům přistupovat jiným způsobem, než jakým fyzicky existují. Je tomu díky softwaru, který tento hardware abstrahuje a vytvoří tím virtuální prostředí. Virtualizované prostředí se dá snadněji přizpůsobit potřebám uživatelů, případně skrýt pro uživatele nepodstatné detaily (jako např. rozmístění hardwarových prostředků). Tím je tedy umožněno na jednom fyzickém serveru provozovat více od sebe oddělených virtuálních strojů, které mají každý svůj vlastní operační systém s aplikacemi.
Software, který slouží pro virtualizaci, se nazývá hypervisor. Jak zmiňuje Popel a Goldberg v \cite{VM_architektura}, tak existují tyto dva základní typy hypervisorů:
\begin{itemize}
\item Typ 1 (Nativní - Bare-metal) - Tento hypervisor běží přímo na fyzickém hardwaru. Tím umožňuje provozovat více operačních systémů na jednom fyzickém stroji. Příkladem takového hypervisoru je VMware ESXi, XEN a KVM.
\item Typ 2 (Hostovaný) - Na rozdíl od předchozího případu tento typ hypervisoru běží v prostředí operačního systému. Příkladem je například velice oblíbený Virtualbox či VMware Workstation.
\end{itemize}
Obrázek \ref{fig:virtualization} zobrazuje schématický popis obou typů hypervisorů a jejich rozdíl.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.6]{images/virtualization}
\par\end{centering}
\caption{Schéma hypervisorů \label{fig:virtualization}}
\end{figure}
Virtualizace je základní technologie, na které je postavena virtualizace síťových funkcí. Ve většině případů je však využití pouze jednoho hypervizoru telekomunikačními provozovateli a velkými společnostmi nedostačující a je proto nutné využít cloud computing.
Existuje několik definic pro cloud computing. Nejčastější používaná definice pro cloud computing je \cite{nist_definition}, kde je uvedeno, že je to model umožnující využívání společného poolu počítačových zdrojů vzdáleně přes počítačovou síť. Tyto zdroje mohou být flexibilně alokovány a uvolňovány dle potřeby. Základní charakteristiky cloudu jsou tedy:
\begin{itemize}
\item Služby dostupné na požádání
\item Všudypřítomný přístup k síti
\item Sdílení zdrojů
\item Vysoká elasticita a flexibilita
\item Měření využitých zdrojů
\end{itemize}
Z technického hlediska je cloud resp. cloudová infrastruktura několik společně propojených serverů v clusteru. Na těchto serverech běží hypervisor, který vytváří virtuální infrastrukturu. Tímto způsobem je tvořen společný pool zdrojů. Pro vytváření cloudových služeb zde ještě musí existovat cloudová platforma, která dokáže celou tuto virtuální infrastrukturu centrálně spravovat. Výhodou tohoto přístupu je efektivní využívání dostupných výpočetních zdrojů a velká flexibilita v poskytování a využívání služeb. Více informací lze najít například v \cite{cloud_book}.
\section{Potřeba virtualizace síťových funkcí}
Tradiční počítačové sítě jsou složené ze značného množství propojených hardwarových zařízením, jako jsou např. routery, switche a firewally. Tyto zařízení jsou speciálně určená pro daný účel a jejich řízení může být skrze distribuované protokoly. Díky tomu se počítačové sítě staly stabilními a vysoce výkonnými, avšak omezilo je to ve flexibilitě. Tradiční schéma sítě je zobrazeno na obrázku č. \ref{fig:network}.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.30]{images/network}
\par\end{centering}
\caption{Tradiční schéma počítačové sítě} \label{fig:network}
\end{figure}
Z obrázku je patrné, že takovéto sítě se mohou skládat z desítek či i stovek hardwarových boxů. Management je tedy velice náročný a velice často může docházet k chybám. Bylo tedy nalézt lepší řešení. V \cite{Middleboxes} je například navrhnuto přesunout většinu funkcionality do veřejného cloudu a tím správu sítě přenechat třetí straně. To však pro telekomunikační poskytovatele a většinu velkých firem není vhodné řešení.
Z tohoto důvodu bylo navrhnut koncept NFV. Celá myšlenka NFV je založena na tom, že dojde k separování softwarové funkcionality v síťových prvcích od proprietárního hardwaru, na kterém běží. Jak znázorňuje obrázek č. \ref{fig:vize_NFV}.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.5]{images/vize_NFV}
\par\end{centering}
\caption{Koncept virtualizace síťových funkcí, převzato z \cite{NFVChalanges}\label{fig:vize_NFV}}
\end{figure}
To umožní se síťovými funkcemi zacházek jako s klasickými softwarovými aplikacemi, které mohou běžet na standardním komerčně dostupných serverech jenž organizace v současnosti používají. Díky tomu může být také využito cloudu (privátních) a virtualizace. To umožní zlepšit následující aspekty provozu telekomunikačních sítí.
\begin{itemize}
\item Smíření investičních nákladů – snížení potřeby nákupu jednoúčelových hardwarových zařízení, možnost platby pouze za využité kapacity a snížení rizik přílišného předimenzování kapacit
\item Snížení provozních nákladů – snížení prostoru, napájení a požadavky na chlazení, zjednodušení správy a řízení síťových služeb
\item Urychlení Time-to-market – zkrácení doby pro nasazení nových síťových služeb, chopení se nových příležitosti na trhu, vyhovění potřebám zákazníka
\item Doručit agilitu a flexibilitu – možnost rychle škálovat (rozšiřovat nebo zmenšovat služby) dle měnících se požadavků od zákazníka. Podpora služeb, které mají být dodány pomocí softwaru na libovolném standardním serverovém hardwaru
\end{itemize}
Za zmínění stojí poznámka v \cite{NFVState}, kde je řečeno, že obecný koncept oddělení síťové funkce od hardwaru ještě nutně neznamená potřebu využití virtualizace. Protože budou síťové funkce dostupně jako software, tak mohou být nainstalovány a provozovány přímo na fyzickém stroji. Ovšem rozdíl je, že tento stroj již nebude speciální hardware, ale klasický server. Tento scénář může být do jisté míry použit při nasazovaní síťových funkcí v malém měřítku např. v uživatelských koncových bodech. Avšak pro plné využití všech výše zmíněných výhod, které jsou třeba ve velkých datových centrech, je třeba s použitím virtualizace počítat.
\section{NFV a softwarově definované sítě (SDN)}
Kromě NFV existuje i další technologie, která se snaží zlepšit řízení a správu počítačových sítí. Jde o softwarově definované sítě (SDN). Dle \cite{SDN_clanek} jde o koncept, ve které je oddělena řídící logika (control plane) z jednotlivých routerů a switchů, které přeposílají traffic (data plane). Tím, že dojde k oddělení datové a řídící vrstvy, se routery a switche stanou pouze přeposílající data a veškerá řídí logika může být implementována v jednom logicky centrálním místě (SDN Controller). Z tohoto centrálního místa lze do jednotlivých routerů a switchů předávat instrukce pomocí aplikačních programovacích rozhraní (API). Samotný SDN Controller také obsahuje API, které mohou využívat aplikace a tím řídit, resp. programovat celou počítačovou síť.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.70]{images/SDN}
\par\end{centering}
\caption{Schéma SDN, převzato z \cite{SDN_clanek}\label{fig:SDN}}
\end{figure}
Obrázek č. \ref{fig:SDN} ukazuje jednoduché schéma softwarově definovaných sítí. Jak je z obrázku patrné, tak celou architekturu lze tedy rozdělit do 3 logických vrstev, které spolu komunikují pomocí API.
\begin{itemize}
\item Aplikační vrstva - Na této úrovni se nachází samotné síťové aplikace jako jsou například DHCP, ACL, NAT, DNS a další. Jejich vytváření by
mělo být poskytováno prostřednictvím nižší vrstvy, nazývané northbound API.
\item Control vrstva - V této vrstvě je centralizována veškerá logika, které dříve byla v síťových prvcích.
\item Vrstva infrastruktura - Nejnižší vrstvou je samotný hardware pro předávání datagramů na fyzické úrovni. Pro funkčnost celé architektury je nutné, aby zde byla nasazena zařízení, která umí přijímat pokyny od control plane skrze southbound API.
\end{itemize}
Přestože Softwarově definované sítě a virtualizace síťových funkcí jsou dvě různé technologie a koncepty, tak dle \cite{Toward_NFV} využití obou těchto technologii je nejlepší cestou pro telekomunikační poskytovatelé a velké firmy. Je to z důvodu toho, že se každá orientuje na jinou část datového provozu. To znázorněno na obrázku č. \ref{fig:sdn_nfv}.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.58]{images/sdn_nfv}
\par\end{centering}
\caption{ Srovnání SDN a NFV \label{fig:sdn_nfv}}
\end{figure}
Fakt je, že SDN umožňuje programaticky ovládat počítačovou síť. To lze využít u NFV pro poskytnutí programovatelné konektivity mezi jednotlivými virtuálními síťovými funkcemi. Tento proces nazývá Service Chaining.
\subsection{Service Chaining} \label{sub:SDN}
Jednou z výhod NFV a SDN je možnost využít Service Chaining. Service chaining je ve skutečnosti součást SDN. Jde o princip jakým lze dynamicky pospojovat jednotlivé VNF a ovládat tak toky v síti. \cite{NFV_simplified}
Service chaining není ve skutečnosti nic nového. V klasických počítačových sítích je používán také, ale pomocí fyzických síťových prvků. Jedná se zjednodušeně o způsob zapojení mezi jednotlivými síťovými prvky (či VNF) a způsob, jakým na sebe navazují. Příklad takového zapojení je vidět na obrázku č. \ref{fig:service_chaining}.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.6]{images/service_chaining}
\par\end{centering}
\caption{Ukázka klasického service chainigu pomocí fyzických síťových prvků\label{fig:service_chaining}}
\end{figure}
Zde se provozovatel sítě rozhodl, že odchozí data z klientských stanic musí jít přes firewall, IDS a nakonec přes NAT do Internetu. Příchozí data mají logicky obrácené pořadí. Toto zapojení funguje dobře pro síť, kde není třeba rozlišovat cestu jakou proudí data jednotlivých uživatelských stanic. Ale není to optimální řešení pro sítě s více uživateli, kde každý požaduje jinou síťovou funkci. Také je možné, že se potřeby pro jednotlivé síťové služby mohou měnit v čase. Příklad takové sítě lze nalézt ve většině datových center.
Zde tedy přichází na řadu VNF spolu s SDN. Protože jednotlivé VNF existují jako virtuální stroje, tak mohou být dynamicky nasazovány dle aktuálním požadavků jednotlivých klientů a pomocí SDN mohou být tyto VM dynamicky pospojovány. Obrázek č. \ref{fig:service_chaining_new} ukazuje schéma zapojení, kde každý klient může mít jinou požadovanou cestu do internetu. Je možná i varianta, kde každý klient má své vlastní VNF s jinou konfigurací.
\begin{figure}[h]
\begin{centering}
\includegraphics[scale=0.6]{images/service_chaining_new}
\par\end{centering}
\caption{Ukázka VNF service chainigu\label{fig:service_chaining_new}}
\end{figure}
Je tedy vidět, že NFV a SDN jdou velice dobře dohromady a lze pomocí nich získat mnoho výhod. Vzhledem k tomu, že tato práce se zabývá managementem a orchestrací VNF, tak zde tedy nutné počítat s využitím SDN při návrhu NFV frameworku, na kterém budou následně testovány jednotlivé VNF.