Generator pakietów w systemie Linux

W codziennej pracy administrator bardzo często spotyka się z sytuacją, gdy zachodzi konieczność przetestowania wydajności połączenia lub urządzenia sieciowego. Generatory pakietów to narzędzia niezbędne, jeżeli zamierzamy poznać maksymalne możliwości infrastruktury. Generatory będą potrzebne nie tylko do testowania wydajności sieci, ale także jej bezpieczeństwa. Ułatwiają też poprawną diagnozę w przypadku problemów sieciowych.

Tradycyjnie istnieją dwa typy rozwiązań służących do generowania i analizy ruchu. Pierwsze to rozwiązania bazujące na sprzęcie. Ze względu na specjalizację i najczęściej produkcję w niewielkich ilościach rozwiązania sprzętowe są drogie. Projektowane są w celu minimalizacji opóźnień oraz zwiększenia wydajności rozwiązania. Wszystkie funkcjonalności są realizowane w bliskiej współpracy ze sprzętem, w celu zredukowania wpływu systemu operacyjnego na wydajność. Narzędzia sprzętowe mają ściśle ustalony zakres funkcjonalności testowania, który nie zawsze jest elastyczny w sensie dostosowania się do określonych potrzeb testowania. W wielu przypadkach, szczególnie przy nietypowych interfejsach, generatory sprzętowe będą niezastąpione.

Drugą grupę rozwiązań stanowi oprogramowanie uruchamiane na komputerach. Tu z kolei mogą pojawić się problemy z wydajnością. Narzędzia bazujące na rozwiązaniach programowych są znacznie tańsze do sprzętowych. Mogą być także elastyczniejsze w konfiguracji niż sprzętowe. Narzędzia programowe są jednak mniej wydajne. Szczególnie brak wydajności będzie objawiał się w przypadku generowania ruchu na poziomie gigabitów na sekundę, realizowanych z wykorzystaniem małych pakietów. Warto zrealizować podział na aplikacje wykorzystujące do działania gotowe biblioteki programistyczne oraz narzędzia pracujące w bezpośredniej współpracy z jądrem systemu. Biblioteki są zazwyczaj dołączane do kodu danej aplikacji i zawierają funkcje wykorzystywane przez dane narzędzie. Znacznie ułatwia to pisanie oprogramowania, ale ma wpływ na szybkość jego pracy. Jądro systemu jest jedynym elementem posiadającym bezpośredni dostęp do sprzętu. Komunikacja z wykorzystaniem bibliotek będzie zdecydowanie wolniejsza niż przy bezpośrednim wykorzystaniu jądra systemu. Istnieją rozwiązania, które łączą specyfikę wydajności rozwiązań sprzętowych z niskim kosztem wdrożenia rozwiązań programowych.

Generator pakietów w systemie Linux

Spirent SmartBits – system analizy wydajności sieci

Kilka cech generatorów ruchu powinno być szczególnie istotnych z punktu widzenia użytkownika. Podstawową funkcją każdego generatora jest możliwość generowania różnych typów połączeń TCP/UDP/ICMP. Im więcej możliwości i typów generowanego ruchu, tym większą funkcjonalność testowania otrzymujemy. Do większości zastosowań wystarczy funkcjonalność generowania pakietów TCP/UDP/ICMP. Kolejnym parametrem jest liczba połączeń, jakie może jednocześnie utworzyć generator. Im więcej połączeń, tym większa możliwość testowania bardzo wydajnych sieci. Oprogramowanie powinno umożliwiać generowanie pakietów z wykorzystaniem różnych kart sieciowych, a także z możliwością jednoczesnego wykorzystania kilku kart sieciowych. W większości przypadków każdy generator posiada kilka interfejsów sieciowych. Każdy z interfejsów może generować niezależne strumienie ruchu. W ramach interfejsu jest możliwość wykorzystywania VLAN 802.1q. Powinna istnieć możliwość generowania ruchu zarówno IPv4, jak i IPv6, ale także generowania ruchu VoIP, video czy sprawdzania odporności infrastruktury na ataki DoS. Typowa implementacja generatora ruchu to przyłączenie jednego lub wielu interfejsów generatora do badanej infrastruktury sieciowej lub testowanego urządzenia.

Jeżeli zamierzamy dokładnie zmierzyć możliwości infrastruktury, na wyjściu powinien znajdować się element monitorujący w postaci sniffera czy analizatora ruchu. IETF wydał rekomendacje dotyczące metodologii analizy i pomiarów sieci. RFC 2544 definiuje metodologię elementów łączących sieć. RFC 2889 rozszerza testy zdefiniowana w poprzednim dokumencie o mechanizmy sprawdzania sieci LAN i przełączników. Testowane parametry zgodnie z informacjami IETF to:

• przepustowość – maksymalna prędkość transmisji, przy jakiej ramki nie są odrzucane przez urządzenia

• opóźnienia – czas potrzebny na transport pakietu ze źródła do miejsca przeznaczenia, uwzględniający opóźnienia sieci oraz przetwarzania w urządzeniach

• straty – procent ramek, które nie zostały przesłane z powodu słabości zasobów sieciowych.

Testy powinny zostać powtórzone dla różnych wielkości ramek. Zgodnie z RFC 2544 dla urządzeń Ethernet wielkości ramek testowanych to: 64, 128, 256, 512, 1024, 1280 oraz 1518. Generator powinien wspierać wskazane opcje.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200