Cisco Poland Blog
Share

Jak testować sprzęt operatorski bez komercyjnych generatorów ruchu


12 November 2012


Sprawdzenie urządzeń i ich konfiguracji w bezpiecznym środowisku, przed wdrożeniem w sieci produkcyjnej, to nie tylko dobra praktyka, ale również duży komfort i ograniczenie potencjalnych awarii. Komercyjnie dostępne generatory ruchu, mierniki często stanowią wydatek większy od testowanego sprzętu – w zamian pozwalają uzyskać wielką wartość w laboratorium – umożliwiają uruchomienie symulacji wszystkich działających w sieci protokołów, sprawdzenie wydajności router’ów, wykonanie testów stanowych, itp.

Co zrobić, gdy nie ma budżetu na zakup sprzętu testującego? Są przynajmniej dwa atrakcyjne wyjścia z sytuacji. Pierwsze – możemy zdecydować się na wypożyczenie komercyjnych produktów od dystrybutorów na rynek Polski. Cena wypożyczenia jest zazwyczaj atrakcyjna, a na pewno przy pierwszej prośbie można porozumieć się na wyjątkowych warunkach. Służę kontaktami do odpowiednich osób.

Inną możliwością są dostępne za darmo projekty oparte na architekturze x86. Ten artykuł poświęcę przedstawieniu najbardziej użytecznych wg mnie projektów. Korzystam z nich regularnie w laboratorium Cisco w Warszawie i szczerze je polecam.

  • Quagga: Oprogramowanie implementujące protokoły routingu: RIP, RIPng, OSPFv2, OSPFv3, BGP. Quagga działa pod linuksami i uniksami, posiada wsparcie dla IPv6, funkcjonalności Route Server’a i ma tę zaletę, że konfiguruje się ją podobnie do Cisco IOSa. Dodatkowo jest możliwość zapisania przechwytywania komunikatów i ich zapisywania do pliku jako “raw data” np. do późniejszej analizy.
  • ExaBGP – narzędzie dostępne z Google Code dobrze implementuje protokół BGP i pozwala w szybki sposób przeprowadzić testy skalowalności routerów. Oprogramowanie solidnie wspiera wiele RFC / draftów (szczegóły na stronie projektu) – stąd dla testów BGP wymagających sprawdzenia nowych mechanizmów protokołu – wybieram właśnie tę pozycję. Konfiguracja przez pliki tekstowe – podobne w strukturze do JunOSa.

  • Ostinato – generator ruchu pracujący pod wieloma platformami. Ostinato, kolejny projekt na Google Code, pozwala generować i monitorować proste strumienie – Eth, 802.1q, QinQ/802.1ad, IPv4, IPv6, UDP, TCP, tunelowanie, nagłówki wybranych protokołów L7. Program ma prosty, graficzny interfejs użytkownika. Pozwala śledzić generowane strumienie na interfejsie docelowym. Interfejsy oczywiście wybieramy spośród dostępnych na naszym komputerze.
  • HPing3 – generator ruchu – rozbudowany ping – pozwalający na szybko przejść przez wiele prostych przypadków testowych. Możliwe jest definiowanie m.in. adresów źródłowych / docelowych na różnych warstwach, określenie szybkości wysyłania pakietów (pps). Niestety wsparcie dla IPv6 jest minimalne (a w wersjach, z których korzystałem w ogóle go nie było).
  • Scappy – Mój ulubiony software do generowania ruchu. Scappy i jego wersja z obsługą IPv6 (Scappy6) pozwolił wygenerować prawie każdy pakiet, który był mi kiedykolwiek potrzebny. Mimo swoich dużych możliwości Scappy zachowuję prostotę obsługi. Pakiety budujemy za pomocą prostych wywołań funkcji, jak np. “rh0pkt=IPv6(src=SRC,dst=MID)/IPv6ExtHdrRouting(addresses=[MID,DST])/ICMPv6EchoRequest()”. Dodatkowo dla każdej funkcji możemy podawać parametry, np. zmieniające pola nagłówków. Napisany w Pythonie, Scapy daje możliwość tworzenia skryptów lub całych programów wykonujących skomplikowane przypadki testowe. Polecam! Na stronie projektu znajduje się dobrze przygotowana dokumentacja wraz z tutorialem.
  • Wireshark – oczywiście nieodzowny przy testach, pozwala na zapisanie strumieni ruchu i ich analizę. W swoich testach często korzystam z paru (3-4) sond opartych o wireshark uruchomionych na osobnej maszynie wirtualnej serwera.

Warto zaznaczyć, iż opisane generatory ruchu uruchomione na serwerze / komputerze osobistym / notebooku – będą wysycały zasoby CPU. Stąd, dla osiągnięcia większej wydajności polecam zaznajomić się z dostępnymi płytami startowymi – zawierającymi np. minimalną potrzebną wersję linuksa wraz z zestawem narzędzi – jak np. Scappy.

Życzę powodzenia i w przypadku pytań / opinii – zapraszam do udzielenia komentarzy.

Leave a comment

1 Comments

  1. Hi colleagues, its fantastic paragraph on the topic of teachingand completely defined, keep it up all the time.