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]