• Nie Znaleziono Wyników

Lokalna komunikacja sieciowa

W dokumencie Index of /rozprawy2/10081 (Stron 40-45)

Technologie leżące u podstaw pracy

2.2.1. Lokalna komunikacja sieciowa

Umożliwienie lokalnej komunikacji sieciowej dla VM jest możliwe na wiele sposobów, a wy-bór konkretnego zależy od dostępności danego rozwiązania w stosowanej implementacji wirtualizacji.30 Dla platformy Linux są dostępne m.in. następujące rozwiązania:

27

Z uwagi na wyczerpywanie się przestrzeni adresowej protokołuIPv4 (ang. Internet Protocol version 4 ).

28W większości przypadków wystarcza topologia sieci lokalnej LAN, jednak aby móc zapewnić takie właściwości jak wsparcie dla QoS czy filtrację komunikacji wymagane będzie zastosowanie np. routingu, podziału na podsieci, itp.

29

Czyli symulacja ograniczeń podobnych do ograniczeń na CPU i pamięć operacyjną definiowanych w mo-mencie uruchamiania komputera wirtualnego.

30Listę dostępnych technik w różnych popularnych implementacjach wirtualizacji przedstawia sekcja 2.3.6.

• Komunikacja interfejsem typu „ethertap” — czyli dołączenie interfejsu wirtualnego31 jako nasłuchującego na fizycznym interfejsie komputera fizycznego. W tym przy-padku konieczne jest użycie wolnego adresu z sieci, do której podłączony jest kom-puter fizyczny. Komunikacja pozostałych fizycznych maszyn z wirtualną odbywa się bezpośrednio i komputery te nie są w stanie rozróżnić czy komunikacja odbywa się z komputerem wirtualnym czy też nie. W podejściu tym często wykorzystywany jest mechanizm Proxy-ARP [17].

• Komunikacja za pomocą powiązanych interfejsów wirtualnych — każdy wirtualny interfejs posiada swój odpowiednik na liście interfejsów komputera fizycznego, z któ-rym jest podłączony bezpośrednio łączem typu punkt-punkt (rysunek 2.1). Komu-nikacja z innymi węzłami jest możliwa tylko dzięki zastosowaniu dodatkowych me-chanizmów (np. technik routingu lub przełączania oraz translacji adresów NAT — co powoduje, że komunikacja ta widziana ze zdalnych urządzeń, pochodzi z fizycz-nego komputera). Podejście to oferuje największe możliwości konfiguracyjne, gdyż stosując routing, przełączanie i NAT możemy budować dowolne topologie sieciowe z użyciem wirtualnych komputerów. Dodatkowo, możliwe jest zastosowanie dla in-terfejsów typu punkt-punkt dowolnych ustawień takich jak filtracja (Firewall) czy kolejkowanie i kształtowanie ruchu (QoS).

Rysunek 2.1. Tworzenie wirtualnej sieci z wykorzystaniem techniki przełączania

• Użycie interfejsów logicznych tap/tun — jądro systemu operacyjnego Linux udo-stępnia sterowniki dla dwóch rodzajów wirtualnych interfejsów sieciowych. Pierwszy z nich — interfejs typu tap symuluje interfejs Ethernet i operuje na warstwie 2 mo-delu OSI/ISO (ang. Open Systems Interconnection/International Organization for

Standardization). Użycie tego interfejsu umożliwia odbieranie informacji w postaci

kompletnych ramek Ethernet. Z kolei interfejs tun pozwala na symulację urządzenia działającego na warstwie 3 (sieciowej) poprzez zastosowanie komunikacji poziomu pakietów IP (ang. Internet Protocol ). Typowe zastosowanie interfejsu tap to stwo-rzenie sieci w oparciu o mechanizm przełączania, podczas gdy urządzenie tun nadaje się do implementacji routingu.

Wszystkie dane przekazane do wirtualnych urządzeń tap/tun są przekazywane do uruchomionego w przestrzeni użytkownika programu, który dokonał wcześniejszego dołączenia do w/w urządzenia (rysunek 2.2)32.

31Interfejs ten dla oprogramowania komputera wirtualnego jest widziany jako zwykły interfejs fizyczny.

32

Rysunek 2.2. Tworzenie wirtualnej sieci z wykorzystaniem technik tunelowania komunikacji

• Komunikacja za pomocą mechanizmów IPC — komunikacja ta jest możliwa tylko w niektórych przypadkach i jest rzadko stosowana ze względu na ograniczenia, które wprowadza.33

• Oprogramowanie sieciowe działające w przestrzeni użytkownika — interfejsy tun/tap umożliwiają odbieranie i wysyłanie pakietów obsługiwane przez oprogra-mowanie działające w trybie użytkownika. Urządzenia te są widziane jako interfejsy sieciowe działające w trybie punkt-punkt, które zamiast odbierać informacje z fizycz-nego medium, odbierają je z oprogramowania użytkownika, z kolei wszystko co jest wysyłane przez ten interfejs jest przekazywane do oprogramowania obsługującego dany interfejs.

Obsługa urządzeń tun/tap za pomocą oprogramowania umożliwia stworzenie wir-tualnej sieci poprzez odbieranie danych z maszyny wirwir-tualnej i wysyłania ich za pomocą fizycznego interfejsu (rysunek 2.2).

• Routing pomiędzy interfejsami fizycznymi i wirtualnymi, a także interfejsami po-mocniczymi używanymi do implementacji polityki zarządzania ruchem sieciowym (rysunek 2.3).

Dzięki dostępności w/w rozwiązań budowanie sieci lokalnych z użyciem maszyn wirtu-alnych uruchomionych w obrębie tego samego komputera (rysunek 2.1) nie stanowi pro-blemu. Jednak technologie te nie pozwalają na realizację komunikacji po sieci lokalnej wirtualnych komputerów uruchomionych na różnych węzłach znajdujących się w różnych sieciach LAN. Przekazywanie pomiędzy VM ruchu broadcast czy multicast w takiej wirtual-nej sieci lokalwirtual-nej, bez wprowadzenia technik tunelowania i enkapsulacji oraz mechanizmów wspierających automatyczne tworzenie tych połączeń nie będzie możliwe.

Techniki separacji ruchu

Innym istotnym problemem jest utrzymanie na poziomie sieciowym separacji, którą daje nam wirtualny komputer. Separacja ta znika w przypadku używania istniejących rozwiązań tzw. plik urządzenia, który obsługiwany jest przez zwykłe systemowe funkcje read()/write().

33

Większość mechanizmów komunikacyjnych IPC (z wyjątkiem gniazd) wymaga aby komunikujące się procesy/wątki działały w obrębie jednego systemu operacyjnego. Dodatkowo interfejs programistyczny IPC jest silnie zależny od rodziny systemu operacyjnego, utrudniając tworzenie przenośnych aplikacji.

Rysunek 2.3. Tworzenie wirtualnej sieci z wykorzystaniem routingu w warstwie sieciowej

zapewniających dostęp do sieci dla wirtualnych komputerów. W większości przypadków aby taką separację osiągnąć wymagane jest ograniczenie pewnych rodzajów komunikacji (jeżeli urządzenia znalazłyby się w różnych sieciach lokalnych) lub należy wprowadzić wsparcie ze strony infrastruktury sieciowej.

Technologie i rozwiązania sieciowe, których zastosowanie mogłoby umożliwić uzyskanie rozdzielenia ruchu sieciowego dla VM uruchomionych w obrębie jednego fizycznego węzła i komunikujących się przez pojedynczy fizyczny interfejs sieciowy przedstawia tabela 2.134. Przy ocenie możliwości dostępnych metod separacji komunikacji należy odnieść się do funkcjonalności wymaganej w konkretnym zastosowaniu technik wirtualizacji. Jeżeli wymagany jest wysoki poziom bezpieczeństwa komunikacji i zapewnienie poufności trans-mitowanych danych to najlepszymi metodami będą techniki wydzielonych interfejsów fi-zycznych, sieci wirtualne w warstwie 2 OSI/ISO oraz enkapsulacja za pomocą technologii wspierających szyfrowanie jak np. protokół IPSec (ang. Internet Protocol Security) czy tunelowanie SSH (ang. Secure SHell ). Z punktu widzenia wydajności komunikacji istotny będzie narzut w postaci dodatkowych danych związanych z enkapsulacją oraz dodatkowy czas konieczny do nawiązania połączenia. W tej kategorii najbardziej efektywnymi me-todami są techniki tagowania oraz sieci wirtualne. Największy narzut wprowadzany jest przez metody wykorzystujące koncepcje P2P (ang. Peer To Peer ) [40, 41] oraz enkapsu-lacja za pomocą protokołu TCP (ang. Transmission Control Protocol ). Zwiększenie nie-zawodności oraz osiągalności wirtualnych maszyn szczególnie w sieciach rozległychWAN, wspierają rozwiązania działające w warstwach 5–7 czyli takie rozwiązania jak sieci MPLS (ang. Multiprotocol Label Switching ), czy technologie VRF (ang. Virtual Routing and

For-warding )/MBGP (ang. Multiprotocol BGP ).

Przy rozważaniu zastosowania technik separacji komunikacji sieciowej, należy również uwzględnić możliwość zdalnego dostępu do konsoli (lub interfejsu graficznego) wirtual-nego komputera. Dostęp ten powinien być również możliwy w trybie wydzielonym, czyli być możliwy bez względu na stan i konfigurację interfejsów sieciowych VM. Istniejące implementacje wirtualizacji jak np. Xen mają możliwość udostępniania interfejsu

admini-34Tabela ta przedstawia możliwe rozwiązania uszeregowane zgodnie z warstwami modelu referencyjnego OSI/ISO.

Warstwa OSI Technologia/metoda Właściwości

Warstwa fizyczna wydzielone interfejsy fizyczne Wyposażenie fizycznego węzła w od-powiednią liczbę interfejsów sieciowych tak aby możliwe było powiązanie VM z interfejsem relacją jeden-do-jeden. Warstwa

łącza-da-nych

sieci wirtualne VLAN

(ang. Virtual LAN )

Zastosowanie metody separacji ruchu generowanego przez wirtualne komputery na styku pomiędzy fizycznym interfejsem sieciowym a siecią LAN. Metody umożliwiają uzyskanie separacji w obrębie sieci w warstwie 2. Najczęściej będzie to wykorzystanie sieci wirtualnych, lub zwykłe przesyłanie unicastu czy broadcastu (tunelowanie) w warstwie łącza danych. Zapewnienie możliwości wydzielonej komunikacji w obrębie systemu autonomicznego (AS (ang. Autonomic System)) w warstwie 3.

protokoły 802.1q/p (lub ISL (ang. Inter-Switch Link )) Warstwa sieciowa tagowanie w warstwie 3 (IPv4

ToS (ang. Type of Service)/IP Precedence, IPv6 (ang.

Inter-net Protocol version 6 )

flow-label, czy etykiety MPLS [79]) enkapsulacja IPSec

routing unicastowy lub/i multicastowy

Warstwa transpor-towa

enkapsulacja TCP/UDP

(ang. User Datagram

Pro-tocol ) w wersji unicastowej

(TCP) i muliticastowej (UDP)

Dystrybucja informacji o adresacji (identyfikatorze sieci lokalnej) w celu umożliwienia dołączenia wirtualnego węzła z poza lokalnego systemu auto-nomicznego.

Warstwy sesji, pre-zentacji i aplikacji

sieci nakładkowe VRF wy-korzystywane rozszerzenie wielo-protokołowości

BGP-4 (ang. Border Gateway

Protocol 4 ) (MBGP) [7, 77]

techniki dystrybucji etykiet MPLS [79]

protokoły wykorzystujące koncepcje sieci P2P

Tabela 2.1. Technologie separacji komunikacji sieciowej

stratora w oparciu o technologię RFB (ang. Remote Frame Buffer ) (implementacja VNC (ang. Virtual Network Computing )). Połączenie to jest możliwe nawet z węzłami, których komunikacja sieciowa nie została skonfigurowana, gdyż odbywa się poprzez przekierowa-nie graficznej konsoli i udostępprzekierowa-nieprzekierowa-nie jej przez oprogramowaprzekierowa-nie uruchomione na hoście fizycznym.35

35

Komunikacja ta może być zastąpiona przez protokół X (ang. X Window System) wraz z wprowadzonymi przez np. firmę NoMachine rozszerzeniami, które zmniejszają ilość koniecznych do przesyłania informacji poprawiając równocześnie interaktywność sesji.

W dokumencie Index of /rozprawy2/10081 (Stron 40-45)