System analizy pracy sieci - podstawowe właściwości

Transkrypt

System analizy pracy sieci - podstawowe właściwości
Czy tcpdump jest dobry na wszystko?
Analiza pracy sieci komputerowych nie jest w Polsce zbyt popularna. Wielu integratorów oraz
administratorów polega na własnym doświadczeniu, które oczywiście jest bardzo cennym
kapitałem, ale intuicja jednak dość często zawodzi - zwłaszcza w przypadku dużych i bardziej
złożonych systemów.
Przenośne analizatory pracy sieci komputerowej lub stacjonarne, zintegrowane z
urządzeniami transmisyjnymi system analizujący są powszechnie stosowane na całym Świecie.
Dzięki rzetelnej i udokumentowanej analizie pracy sieci komputerowej - tego krwiobiegu
systemu informacyjnego nowoczesnej organizacji można nie tylko zdiagnozować i usunąć w
zarodku powstające problemy - lecz również przeprowadzić symulacje obciążenia, sprawdzić
wydajność serwerów itp.
Oszczędności, które uzyskuje się w wyniku stosowania analizatorów wielokrotnie
przewyższają ich cenę zakupu - a nie bez znaczenia jest również pozytywny wpływ ich
stosowania na bezpieczeństwo całego systemu.
Na rynku jest kilka firm oferujących takie analizatory. W Polsce są one mało znane (warto
sprawdzić hasło "Network Analyzer" czy "Packet Analyzer" w angielskiej wikipedii), a należy
podkreślić, że do analizatorów sieci nie zalicza się takich produktów jak OpenView czy Tivoli.
Powszechna znajomość narzędzi do analizy sieci ogranicza się do snifferów typu tcpdump lub
Wireshark (dawniej Ethereal), których funkcjonalność jest znacznie ograniczona.
Spróbujmy się zatem zastanowić, jakich funkcji powinniśmy oczekiwać od profesjonalnego
analizatora sieciowego.
Najpierw trzeba zebrać informacje:
Niby nic prostszego - a jednak diabeł siedzi w szczegółach. Współczesne sieci komputerowe
(z wyjątkiem sieci Wireless) bardzo rzadko korzystają ze współdzielonego medium lub prostych
rozgałęźników. Podstawą są sieci przełączane (switched networks) pracujące w trybie Full
Duplex:
Podstawowy problem polega na ograniczeniu pasma, które może przejąć analizator ponieważ przełącznik agreguje transmisje TX i RX. W efekcie dostępne do analizy jest jedynie
50% przesyłanych w trybie Full Duplex danych. Warto zdać sobie sprawę, że przełącznik
zazwyczaj nie przekaże do portu SPAN informacji o tym, że następuje odrzucanie pakietów!
Może to prowadzić nawet do wyciągania błędnych wniosków.
(c) Tomasz Barbaszewski, Kraków 2009
str. 1 z 8
[email protected]
Pewnym rozwiązaniem tego problemu jest monitorowanie sieci 10/100Mbps za pomocą
gigabitowego portu przełącznika. Oczywiście wówczas nie powinniśmy się obawiać utraty
informacji przesyłanej do analizatora pod warunkiem odpowiedniej wydajności przełącznika.
Drugim problemem jest odrzucanie przez przełącznik ramek (lub innych struktur) na
poziomie 2 warstwy modelu ISO/OSI. Na przykład w sieci Ethernet ramki z błędami sumy
kontrolnej nie pojawią się na porcie SPAN. A właśnie błędne ramki są dość często przyczyną
powstawania znaczących opóźnień w pracy sieci. Nikogo także nie trzeba chyba przekonywać,
że ilość błędów transmisji jest interesującym parametrem oceny jakości sieci komputerowej.
Odrzucanie błędnych ramek (lub innych struktur danych) uniemożliwia również wykrycie
źródła ich powstawania - najczęściej uszkodzonej karty sieciowej.
Bardziej "subtelną" wadą jest niezdefiniowany czas przekazania pakietu na port SPAN, co
przy analizie zależności czasowych może spowodować niezgodność pomiędzy znacznikami
czasu (TIME STAMP), a czasem rzeczywistym, co znów może prowadzić do błędnych wniosków np. zaniżenia wydajności serwera dla danego protokołu.
Jedynym naprawdę skutecznym rozwiązaniem tych problemów jest użycie fizycznych
rozgałęźników sygnału TAP (Test Access Point):
Proszę zwrócić uwagę na kierunek strzałek na rysunku - dane do analizatora są przesyłane
dwoma kanałami - analizator musi mieć więc otwarte dwa porty wejściowe, albowiem tylko
w taki sposób będzie możliwe zarejestrowanie wszystkich ramek, pakietów lub innych struktur
danych przesyłanych w trybie FULL DUPLEX z maksymalną wydajnością.
(c) Tomasz Barbaszewski, Kraków 2009
str. 2 z 8
[email protected]
Kolejnym wyzwaniem są coraz częściej wykorzystywane łącza zwielokrotnione
- np. 2 x 1 Gbps.
Jeśli chcemy analizować pracę takich łączy, to musimy wziąć pod uwagę, że transmisje
sieciowe mogą być realizowane dowolną drogą (patrz rysunek). Analizator musi więc nie tylko
posiadać równoczesny i stały dostęp do obu połączeń oraz być wystarczająco wydajny, aby
zarejestrować bez strat oba strumienie danych (Full Duplex!).
To jednak nie koniec problemów - są bowiem jeszcze maszyny wirtualne! Jeśli korzystamy z
wirtualizacji to mamy do czynienia z dwoma kanałami komunikacyjnymi:
Wewnętrznym - pomiędzy maszynami wirtualnymi osadzonymi na jednym komputerze,
Zewnętrznym - przez który maszyny wirtualne komunikują się ze "światem zewnętrznym" - np.
komputerami lub terminalami użytkowników.
(c) Tomasz Barbaszewski, Kraków 2009
str. 3 z 8
[email protected]
Rozważmy dość typowe rozwiązanie - serwer WWW współpracujący z bazą SQL poprzez
oprogramowanie typu "Middle Ware"
zrealizowany w oparciu o trzy maszyny
wirtualne na jednym komputerze:
Podłączony do sieci komputerowej
analizator jest w stanie rejestrować jedynie
ruch wychodzący na zewnątrz. Cały ruch
realizowany wewnątrz komputera, na którym
pracują maszyny wirtualne jest więc dla
niego niedostępny, gdyż nie opuszcza on
wirtualnego przełącznika (vSwitch).
Nie mamy więc możliwości sprawdzenia
np. czasu odpowiedzi bazy danych, opóźnień
wnoszonych przez Middle Ware - możemy
jedynie analizować pracę komputera jako
całości (np. czas odpowiedzi serwera WWW).
Analizę ruchu wewnętrznego można zrealizować
wprowadzając kolejną maszynę wirtualną, na
której zainstalujemy próbnik analizatora.
Przełącznik wirtualny musimy wówczas
skonfigurować w taki sposób, aby powstał port
SPAN, który będzie wykorzystywany przez
oprogramowanie analizujące. Dzięki temu będzie
on w stanie monitorować i w konsekwencji
analizować ruch pomiędzy maszynami
wirtualnymi. Będziemy się mogli np. dowiedzieć,
że przyczyną opóźnień w pracy naszego serwera
jest długi czas odpowiedzi bazy danych.
Rozwiązanie takie jest jednak typowo lokalne.
Dane zbierane przez próbnik pracujący na
maszynie wirtualnej nie będą dostępne dla
urządzeń podłączonych do sieci zewnętrznej (np.
systemu IDS).
Rozwiązanie tego problemu jest możliwe
jedynie po zainstalowaniu drugiej karty
sieciowej przeznaczonej do udostępniania
rezultatów analizy i skonfigurowanie w
próbniku tak zwanego Virtual Test Access
Point (vTAP). Próbnik musi mieć oczywiście
skonfigurowane dwie wirtualne karty
sieciowe (vNIC). Takie rozwiązanie (patrz
schemat poniżej) zapewnia przekazanie
całego ruchu wewnętrznego na dodatkową
fizyczną kartę sieciową (pNIC). Dzięki temu
urządzenia podłączone do sieci
zewnętrznej uzyskują dostęp danych
związanych z ruchem wewnątrz systemugospodarza.
(c) Tomasz Barbaszewski, Kraków 2009
str. 4 z 8
[email protected]
Powyższy rozdział poświęcony przechwytywaniu informacji z sieci w celu jej analizy nie jest
oczywiście kompletny. Ze względu na brak miejsca nie omówiono w nim zagadnień związanych
z sieciami Fibre Channel, ATM, WAN, Packet-over-SONET/SDH itp.
Na zakończenie tej części warto jednak podkreślić, że karty sieciowe, które zamierzamy
stosować w analizatorach i próbnikach powinny przepuszczać w sposób przeźroczysty wszelkie
transmisje sieciowe do warstw wyższych, aby stały się one dostępne dla oprogramowania
analizującego. Nie wystarczy tu tylko promiscuous mode ponieważ nie przepuści on np.
uszkodzonych ramek. Problem ten sygnalizowałem już w pierwszej części tego opracowania.
Rozproszona analiza sieci (DNA - Distributed Network Analysis)
Kolejnym wyzwaniem dla analizatora sieciowego jest umożliwienie analizy pracy sieci w wielu
miejscach jednocześnie - tak, aby administrator czuwający nad jej pracą miał dostęp do
wszystkich informacji z jednej konsoli.
Oczywiście przesyłanie wszystkich ramek sieciowych nie ma żadnego sensu - analiza powinna
być prowadzona w określonej lokalizacji "in situ" według wymagań zdefiniowanych przez
administratora, zaś do stanowiska centralnego powinny być przesyłane jedynie dane zbiorcze.
Wymagania komunikacyjne powinny być jak najmniejsze, ponieważ zazwyczaj będzie
zachodzić potrzeba przesyłania informacji z próbników analizatora poprzez sieć WAN.
Administrator łączy się z dowolnym próbnikiem i konfiguruje go stosownie do swoich potrzeb.
Próbnik filtruje i buforuje dane lokalnie, a wyniki udostępnia konsoli.
Ponieważ próbniki są wykonywane w wersjach dla różnych sieci (patrz rysunek) administrator
dysponuje pełnym obrazem pracy sieci LAN, SAN, WAN oraz Wireless na swojej stacji roboczej.
Jednak dostęp do transmisji sieciowych to jeszcze nie wszystko!
Przechwycone dane należy zapisywać - a właściwie buforować. I to szybko! Proszę pamiętać,
że współczesne analizatory pozwalają na monitorowanie pracy sieci Gigabit, a nawet 10Gigabit
(c) Tomasz Barbaszewski, Kraków 2009
str. 5 z 8
[email protected]
Ethernet.
Jeśli chcemy przeanalizować pracę sieci w określonym okresie będzie nam potrzebna duża i
szybka pamięć masowa (macierz dyskowa). Wiele profesjonalnych analizatorów udostępnia
opcję "Write to SAN" - o ile oczywiście taka sieć jest do dyspozycji.
Im szybszą sieć chcemy analizować - tym większy problem. Aby nie następowało "gubienie"
informacji musimy dysponować naprawdę szybkim komputerem oraz sporą pamięcią RAM INTEL Quad Core i 8 GB RAM nie będzie tu wcale przesadą! Oczywiście korzystnie jest
stosowanie 64 bitowej wersji systemu operacyjnego.
Próbniki mogą być instalowane na zwykłych (lecz odpowiednio wydajnych) komputerach lub
dostarczane (dla systemów stacjonarnych) w wersji do wbudowania do typowych szaf 19".
Filtracja i parsing - czyli teraz dopiero zaczyna się prawdziwa zabawa!
Jak łatwo się domyślić analizator sieciowy (zwłaszcza pracujący w systemie rozproszonym)
może zebrać bardzo dużą ilość informacji. Powszechna już dziś w użyciu sieć Gigabit Ethernet
może wygenerować około 80-100 MB danych na sekundę, a w trybie Full Duplex nawet
dwukrotnie więcej. W praktyce jest to oczywiście znacznie mniej, lecz nie należy się dziwić, że
profesjonalne analizatory instalowane przez operatorów telekomunikacyjnych umożliwiają zapis
nawet powyżej 250 TB danych (najczęściej instalowane są wersje wyposażone w szybkie
specjalizowane macierze o pojemności 16-32 TB).
Jedną z najważniejszych cech dobrego analizatora jest szybkość oraz przejrzystość prezentacji
stanu sieci - od obciążenia poszczególnych jej fragmentów aż po wydajność poszczególnych
aplikacji, udziału grup roboczych, obciążenia urządzeń sieciowych itp. Jest więc oczywiste, że
analizator musi wspierać takie protokoły jak SNMP, NetFlow, sFlow itp.
To jednak nie wystarcza - aby określić np. czas odpowiedzi serwera bazy danych ORACLE
niezbędna jest możliwość odfiltrowania tego protokołu. Na jakość pracy sieci - a więc tym
samym na wydajność oraz zadowolenie jej użytkowników mogą wpływać różne parametry - w
przypadku pracy terminalowej (z wykorzystaniem cienkich klientów) będą to przede wszystkim
opóźnienia wnoszone przez samą sieć ("Round Trip Delay"), jak i czasy odpowiedzi serwerów
aplikacyjnych. Dla rozwiązań wykorzystujących komputery PC jako stacje robocze z kolei
istotnym parametrem będzie wydajność osiągana przy transmisjach plikowych zarówno przez
samą sieć, jak również przez serwery protokołu SMB itp.
Poniżej umieściłem przykład analizy wydajności typowego serwera SMB (MS Windows Server),
który wraz z szerszym opisem umieściłem w "Old Man GURU Magazine" nr.4 z 18 września
2009:
(c) Tomasz Barbaszewski, Kraków 2009
str. 6 z 8
[email protected]
Jak widać, sieć nie wnosi w tym przypadku mierzalnych opóźnień, nie występują również
błędy. Maksymalny czas odpowiedzi wyniósł 300 ms.
Powyższy przykład dotyczy powszechnie wykorzystywanego protokołu SMB - dobry analizator
powinien jednak wspierać powszechnie akceptowane standardy nadzoru pracy urządzeń
sieciowych (np. CISCO NetFlow) oraz protokoły specjalizowane - FIX (transakcje finansowe),
specyficzne protokoły transkcji giełdowych (np. MOLD i UDQF wykorzystywane przez NASDAQ)
DICOM (transmisja obrazów medycznych), VoIP (różne wersje) itp.
Dysponowanie narzędziem, które pozwala na taką analizę oraz umożliwia błyskawiczne i
bezbłędne znalezienie "wąskich gardeł" i efektywne im przeciwdziałanie.
Wyposażenie analizatora w elementy systemu ekspertowego (patrz rysunek) znacznie
przyspiesza proces analizy i pozwala na rozbudowę bazy wiedzy oraz
prowadzenie analiz "What-If", które są więc niezastąpione przy zmianach konfiguracji lub
rozbudowie systemu.
(c) Tomasz Barbaszewski, Kraków 2009
str. 7 z 8
[email protected]
Dobry analizator powinien być także wyposażony w system alertów informujących
administratora o pojawiających się zagrożeniach - np. wzrost stopy błędów transmisji,
przekroczenie określonego obciążenia segmentu sieci, nagły spadek wydajności serwera,
przeciążenie routera itp.
Warto zwrócić uwagę, że analizator, który został wyposażony w odpowiednie pamięci masowe
dokumentuje także pracę sieci - a więc może być bardzo pomocny w przypadku ataku
sieciowego ułatwiając, a niekiedy wręcz umożliwiając jego rozpoznanie, a tym samym
przeciwdziałanie.
Czy dobry analizator może być tani?
Odpowiedź na to pytanie nie jest jednoznaczna. Jeśli zamierzamy korzystać z analizy pracy
sieci jedynie okazjonalnie wystarczy zainstalować odpowiednie oprogramowanie na typowym
komputerze - warto jednak zainwestować w specjalną kartę sieciową, której wewnętrzne
oprogramowanie nie będzie odrzucać transmisji zawierających błędy - tylko bowiem za pomocą
takiego interfejsu sieciowego uzyskamy możliwość wykrycia źródła tych błędów.
Praca analizatora silnie obciąża zasoby komputera - powinien więc on mieć odpowiednią moc
obliczeniową oraz sporą pamięć RAM (konieczność buforowania). Zazwyczaj analizatory
ostrzegają, że nie są w stanie rejestrować całego ruchu sieciowego i następuje odrzucanie
pakietów. Jeśli decydujemy się na instalację analizatora na komputerze przenośnym (notebook)
powinien to być komputer "z górnej półki".
Jeśli analizator ma zapewnić nam ciągłą kontrolę pracy sieci (zwłaszcza o złożonej topologii,
wielu serwerach itp.) wydatki będą oczywiście większe. Najkorzystniejsze jest zintegrowanie
próbników analizatora z urządzeniami sieciowymi (np. przełącznikami) lub podłączenie ich
bezpośrednio do okablowania (za pomocą urządzeń typu TAP).
Uzupełnienie systemu o system zapisu danych (analizy historyczne) również zwiększy koszty
instalacji - korzystne są więc rozwiązania modularne, które mogą być rozbudowywane
stosownie do potrzeb.
Dla integratorów lub osób, którzy zajmują się nadzorem sieci najkorzystniejszy będzie wybór
kompletnych urządzeń typu "portable" przeznaczonych do pracy w tak zwanym "terenie".
(c) Tomasz Barbaszewski, Kraków 2009
str. 8 z 8
[email protected]