Sieć dostarczania aplikacji
Sieć dostarczania aplikacji ( ADN ) to zestaw technologii, które po wspólnym wdrożeniu zapewniają dostępność, bezpieczeństwo, widoczność i przyspieszenie aplikacji internetowych, takich jak strony internetowe. Komponenty ADN zapewniają funkcje pomocnicze, które umożliwiają dostarczanie treści witryny odwiedzającym i innym użytkownikom tej witryny w szybki, bezpieczny i niezawodny sposób.
Gartner definiuje sieć dostarczania aplikacji jako połączenie kontrolerów optymalizacji sieci WAN (WOC) i kontrolerów dostarczania aplikacji (ADC). Na końcu centrum danych ADN znajduje się ADC, zaawansowane urządzenie do zarządzania ruchem, często nazywane również przełącznikiem sieciowym, przełącznikiem zawartości lub przełącznikiem wielowarstwowym, którego celem jest dystrybucja ruchu między szereg serwerów lub geograficznie przemieszczonych miejsc w oparciu o kryteria specyficzne dla aplikacji. W części oddziału ADN znajduje się kontroler optymalizacji WAN, który działa w celu zmniejszenia liczby bitów przepływających przez sieć za pomocą buforowania i kompresji oraz kształtuje ruch TCP za pomocą ustalania priorytetów i innych technik optymalizacji. Niektóre komponenty WOC są instalowane na komputerach PC lub klientach mobilnych, a część WOC jest zwykle instalowana w centrum danych. Sieci dostarczania aplikacji są również oferowane przez niektórych dostawców CDN.
ADC, jeden z elementów ADN, wyewoluował z przełączników warstw 4-7 pod koniec lat 90., kiedy stało się jasne, że tradycyjne techniki równoważenia obciążenia nie są wystarczająco niezawodne, aby obsłużyć coraz bardziej złożony ruch aplikacji dostarczany przez szerszą gamę sieci opcje łączności.
Techniki dostarczania aplikacji
Internet został zaprojektowany zgodnie z zasadą end-to-end . Ta zasada sprawia, że sieć rdzeniowa jest stosunkowo prosta i przenosi inteligencję w jak największym stopniu do punktów końcowych sieci: hostów i klientów. Sieć dostarczania aplikacji (ADN) usprawnia dostarczanie aplikacji przez Internet, stosując szereg technik optymalizacji. Wiele z tych technik opiera się na uznanych najlepszych praktykach wykorzystywanych do efektywnego kierowania ruchem w warstwie sieci, w tym redundancji i równoważenia obciążenia
Teoretycznie sieć dostarczania aplikacji (ADN) jest ściśle powiązana z siecią dostarczania treści . Różnica między tymi dwiema sieciami dostarczania polega na inteligencji ADN w celu zrozumienia i optymalizacji aplikacji, zwykle określanej jako płynność aplikacji. Application Fluent Network (AFN) opiera się na koncepcji Application Fluency odnoszącej się do technik optymalizacji sieci WAN stosowanych w warstwach od czwartej do siódmej modelu OSI dla sieci. Płynność aplikacji oznacza, że sieć płynnie lub inteligentnie rozumie i jest w stanie zoptymalizować dostarczanie każdej aplikacji. Application Fluent Network to dodatek do możliwości SDN. Akronim „AFN” jest używany przez firmę Alcatel-Lucent Enterprise w odniesieniu do Application Fluent Network.
Dostarczanie aplikacji wykorzystuje jeden lub więcej przełączników warstw 4–7 , znanych również jako przełącznik sieciowy, przełącznik zawartości lub przełącznik wielowarstwowy, aby inteligentnie rozdzielać ruch do puli serwerów, znanej również jako klaster lub farma. Kontroler dostarczania aplikacji (ADC) ma przypisany pojedynczy wirtualny adres IP (VIP), który reprezentuje pulę serwerów. Ruch przychodzący do ADC jest następnie kierowany do jednego z serwerów w puli (klaster, farma) w oparciu o szereg czynników, w tym wartości danych aplikacji, protokół transportu aplikacji, dostępność serwerów, aktualne wskaźniki wydajności i parametry specyficzne dla klienta . ADN zapewnia korzyści w postaci dystrybucji obciążenia, zwiększenia pojemności serwerów, ulepszonej skalowalności, bezpieczeństwa i zwiększonej niezawodności dzięki kontrolom kondycji specyficznym dla aplikacji.
Coraz częściej sieć ADN zawiera redundantną parę przetworników ADC, w których zintegrowano wiele różnych zestawów funkcji zaprojektowanych w celu zapewnienia funkcji bezpieczeństwa, dostępności, niezawodności i przyspieszenia. W niektórych przypadkach urządzenia te są nadal oddzielnymi jednostkami, wdrażanymi razem jako sieć urządzeń, przez które dostarczany jest ruch aplikacji, z których każda zapewnia określoną funkcjonalność, która usprawnia dostarczanie aplikacji.
Techniki optymalizacji ADN
multipleksowanie TCP
Multipleksowanie TCP jest luźno oparte na ustalonych technikach puli połączeń wykorzystywanych przez platformy serwerów aplikacji do optymalizacji wykonywania zapytań do baz danych z poziomu aplikacji. ADC ustanawia pewną liczbę połączeń z serwerami w swojej puli i utrzymuje otwarte połączenia. Gdy żądanie zostanie odebrane przez ADC od klienta, żądanie jest oceniane, a następnie kierowane do serwera przez istniejące połączenie. Ma to wpływ na zmniejszenie narzutu nałożonego na ustanowienie i zerwanie TCP z serwerem, poprawiając czas reakcji aplikacji.
Niektóre implementacje ADN posuwają tę technikę o krok dalej, a także multipleksują żądania HTTP i aplikacji. Zaletą tego jest równoległe wykonywanie żądań, co zwiększa wydajność aplikacji.
Optymalizacja TCP
Istnieje wiele wniosków o komentarze (RFC), które opisują mechanizmy poprawy wydajności protokołu TCP. Wiele ADN implementuje te RFC, aby zapewnić ulepszone dostarczanie aplikacji dzięki wydajniejszemu wykorzystaniu protokołu TCP.
Najczęściej implementowane RFC to:
- Opóźnione potwierdzenia
- algorytm nagłego
- Wybiórcze podziękowania
- Wyraźne powiadomienie o przeciążeniu ECN
- Ograniczone i szybkie retransmisje
- Adaptacyjne okna początkowego przeciążenia
Kompresja i buforowanie danych
Sieci ADN zapewniają również optymalizację danych aplikacji za pomocą technik buforowania i kompresji. Istnieją dwa rodzaje kompresji stosowane obecnie przez ADN: standardowa w branży kompresja HTTP i zastrzeżone algorytmy redukcji danych. Należy zauważyć, że koszt cykli procesora w celu skompresowania danych podczas przechodzenia przez sieć LAN może mieć negatywny wpływ na wydajność, dlatego najlepszą praktyką jest stosowanie kompresji tylko w przypadku dostarczania aplikacji przez sieć WAN lub szczególnie przeciążone szybkie łącze danych.
Kompresja HTTP jest asymetryczna i niewidoczna dla klienta. Obsługa kompresji HTTP jest wbudowana w serwery WWW i przeglądarki internetowe. Wszystkie komercyjne produkty ADN obsługują obecnie kompresję HTTP.
Drugą technikę kompresji uzyskuje się za pomocą algorytmów redukcji danych. Ponieważ te algorytmy są zastrzeżone i modyfikują ruch aplikacji, są symetryczne i wymagają urządzenia do ponownego złożenia ruchu aplikacji, zanim klient będzie mógł go odebrać. Oddzielna klasa urządzeń znana jako WAN Optimization Controllers (WOC) zapewnia tę funkcjonalność, ale technologia ta była powoli dodawana do portfolio ADN w ciągu ostatnich kilku lat, ponieważ ta klasa urządzeń staje się coraz bardziej świadoma aplikacji, zapewniając dodatkowe funkcje dla określonych aplikacji, takich jak CIFS i SMB .
Techniki niezawodności i dostępności ADN
Zaawansowane sprawdzanie stanu
Zaawansowane sprawdzanie kondycji to zdolność ADN do określania nie tylko stanu serwera, na którym hostowana jest aplikacja, ale także stanu aplikacji, którą dostarcza. Zaawansowane techniki kontroli stanu pozwalają ADC inteligentnie określić, czy treść zwracana przez serwer jest poprawna i czy powinna zostać dostarczona do klienta.
Ta funkcja włącza inne funkcje niezawodności w ADN, takie jak ponowne wysłanie żądania do innego serwera, jeśli treść zwrócona przez oryginalny serwer okaże się błędna.
Algorytmy równoważenia obciążenia
Algorytmy równoważenia obciążenia stosowane w dzisiejszej sieci ADN są znacznie bardziej zaawansowane niż uproszczone algorytmy okrężne i najmniejszej liczby połączeń stosowane na początku lat 90. Algorytmy te były pierwotnie luźno oparte na algorytmach planowania systemów operacyjnych, ale od tego czasu ewoluowały, uwzględniając warunki charakterystyczne dla środowisk sieciowych i aplikacji. Bardziej dokładne jest opisanie dzisiejszych algorytmów „równoważenia obciążenia” jako algorytmów routingu aplikacji, ponieważ większość ADN wykorzystuje świadomość aplikacji, aby określić, czy aplikacja jest dostępna, aby odpowiedzieć na żądanie. Obejmuje to zdolność ADN do określenia nie tylko, czy aplikacja jest dostępna, ale także tego, czy aplikacja może odpowiedzieć na żądanie w ramach określonych parametrów, często określanych jako umowa dotycząca poziomu usług .
Dostępne obecnie standardowe algorytmy równoważenia obciążenia w branży obejmują:
- Okrągły Robin
- Najmniej połączeń
- Najszybszy czas reakcji
- Ważony Round Robin
- Ważone najmniejsze połączenia
- Niestandardowe wartości przypisane do poszczególnych serwerów w puli w oparciu o SNMP lub inny mechanizm komunikacji
Tolerancja błędów
ADN zapewnia odporność na awarie na poziomie serwera, w pulach lub farmach. Osiąga się to poprzez wyznaczenie określonych serwerów jako „zapasowych”, które są aktywowane automatycznie przez ADN w przypadku awarii serwerów głównych w puli.
ADN zapewnia również dostępność i niezawodność aplikacji dzięki możliwości bezproblemowego przełączania awaryjnego na urządzenie dodatkowe w przypadku awarii sprzętu lub oprogramowania. Zapewnia to kontynuację ruchu w przypadku awarii jednego urządzenia, zapewniając w ten sposób odporność aplikacji na awarie. Odporność na awarie jest realizowana w sieciach ADN za pośrednictwem połączenia sieciowego lub szeregowego.
Przełączanie awaryjne oparte na sieci
Wirtualny adres IP (VIP) jest współdzielony między dwoma urządzeniami. Demon pulsu na urządzeniu dodatkowym sprawdza, czy urządzenie główne jest aktywne. W przypadku utraty pulsu urządzenie pomocnicze przejmuje współużytkowany adres VIP i rozpoczyna obsługę żądań. Proces ten nie jest natychmiastowy i chociaż większość ADN replikuje sesje z serwera podstawowego do pomocniczego, nie ma możliwości zagwarantowania, że sesje zainicjowane w czasie potrzebnym serwerowi pomocniczemu do przejęcia statusu VIP i rozpoczęcia zarządzania ruchem zostaną utrzymane.
Szeregowe przełączanie awaryjne
W konfiguracji przełączania awaryjnego opartej na połączeniu szeregowym dwa urządzenia ADN komunikują się za pośrednictwem standardowego połączenia RS-232 zamiast sieci, a cała wymiana informacji o sesji i statusie odbywa się za pośrednictwem tego połączenia. Przełączanie awaryjne jest niemal natychmiastowe, chociaż podlega tym samym ograniczeniom dotyczącym sesji inicjowanych, gdy urządzenie podstawowe ulega awarii, co przełączanie awaryjne oparte na sieci.
Bezpieczeństwo ADN
Zabezpieczenia warstwy transportowej
Choć często błędnie przypisywany do warstwy aplikacji, protokół SSL jest obecnie najpowszechniejszą metodą zabezpieczania ruchu aplikacji przez sieć ADN. SSL wykorzystuje PKI do ustanowienia bezpiecznego połączenia między klientem a ADN, co utrudnia atakującym odszyfrowanie przesyłanych danych lub przejęcie sesji. [ potrzebne źródło ]
Bezpieczeństwo warstwy aplikacji
Maskowanie zasobów
Korzystanie z wirtualnego adresu IP (VIP) i pozycji ADN w sieci zapewnia środki, za pomocą których niektóre zasoby mogą być maskowane lub ukrywane przed klientem. Ponieważ sieć ADN została zaprojektowana w celu zrozumienia aplikacji i protokołów aplikacji, takich jak HTTP , może manipulować niektórymi aspektami protokołu, aby ukryć serwery w puli i zapobiec ujawnieniu potencjalnie użytecznych informacji dotyczących oprogramowania i infrastruktury sprzętowej.
Typowym zastosowaniem tej funkcjonalności jest ukrycie systemu operacyjnego i oprogramowania serwera używanego do hostowania aplikacji. Zwykle jest to realizowane przez przepisanie pola Serwer w odpowiedzi HTTP.
Drugim typowym zastosowaniem tej funkcjonalności jest wykorzystanie zdolności ADN do przepisania części URI żądania HTTP. Klient otrzymuje URI i VIP, które są znane tylko ADN, a po otrzymaniu żądania ADN może albo (a) przepisać URI i wysłać przekierowanie 302 lub (b) w przejrzysty sposób przetłumaczyć URI i odpowiedzieć klientowi tak jakby identyfikator URI był właściwy.
Zapora aplikacji
W ostatnich latach komercyjne sieci ADN zaczęły zawierać funkcję zapory aplikacji w celu dalszego zabezpieczenia aplikacji podczas procesu dostarczania. Jest to gorący temat, w którym wielu specjalistów ds. bezpieczeństwa twierdzi, że funkcje zawarte w zaporze ogniowej aplikacji są niepotrzebne i powinny być obsługiwane przez aplikację, podczas gdy inni uważają, że najlepszym rozwiązaniem jest zastosowanie jak największej ochrony, niezależnie od pozycji w sieci dostarczania ćwiczyć. Wiele komercyjnych firm ADN nabyło i zintegrowało te funkcje i prezentuje je jako część strategii głębokiej obrony, często cytowanej przez specjalistów ds. bezpieczeństwa.
Bezpieczeństwo warstwy sieciowej
ADN jest najczęściej wdrażany w strefie DMZ na skraju sieci. Powoduje to narażenie na potencjalne ataki warstwy sieciowej, w tym Denial of Service (DoS) z powodzi ICMP i SYN. W rezultacie ADN musi koniecznie chronić nie tylko siebie, ale także dostarczane przez siebie aplikacje przed takimi atakami. ADN na ogół stosuje szereg zabezpieczeń przed typowymi atakami warstwy sieciowej, chociaż nie zapewnia pełnego bezpieczeństwa oferowanego przez IPS . Niektóre z technologii Network Layer Security, które mogą być wykorzystywane przez urządzenia ADN, obejmują:
Opóźnione wiązanie
Opóźnione wiązanie , zwane również splicingiem TCP, to odroczenie połączenia między klientem a serwerem w celu uzyskania wystarczających informacji do podjęcia decyzji o routingu. Niektóre przełączniki i routery aplikacji opóźniają powiązanie sesji klienta z serwerem do czasu zakończenia odpowiednich uzgadniania, aby zapobiec atakom typu „odmowa usługi”.
Filtrowanie adresów IP
ADN często mają możliwość filtrowania ruchu na podstawie list kontroli dostępu (ACL), fałszywych zakresów adresów IP (filtrowanie Bogon) i dopasowywania wzorców głębokiej inspekcji pakietów . W niektórych przypadkach mogą być zastosowane progi lub ograniczenia szybkości adresów IP lub zakresów adresów IP.
Zarządzanie ruchem
ADN coraz częściej dodają zaawansowane funkcje zarządzania ruchem. Możliwości głębokiej inspekcji pakietów niektórych z tych produktów mogą identyfikować ruch według typu aplikacji i mogą być wykorzystywane do analizowania, blokowania, kształtowania i ustalania priorytetów ruchu.