Symulatory i emulatory sieci

Emulacja sieci jest bardzo podobna do symulacji. W tym przypadku jednak realizowane jest rzeczywiste odwzorowanie sieci za pomocą modelu idealnie opisującego rzeczywistą infrastrukturę sieciową. Emulowana sieć może bezpośrednio współpracować z rzeczywistą siecią lub sprzętem. Tego typu aplikacje pracują w czasie rzeczywistym i mogą łączyć się z rzeczywistymi sieciami, urządzeniami oraz aplikacjami. Przy zastosowaniu emulacji możliwe jest przetestowanie rzeczywistych scenariuszy przy określonych parametrach w warunkach laboratoryjnych. W przypadku emulatorów można przeanalizować, sprawdzić i rozwijać określony system docelowy. W odniesieniu do emulacji częściej mówimy jednak o emulacji sieci niż urządzeń.

Decyzja o wyborze symulatora lub emulatora zależy od wielu czynników. Jeżeli istnieje możliwość wykorzystania do analizy danego przypadku emulatora, z powodów praktycznych warto wybrać właśnie emulator w przeciwieństwie do symulatora. Symulatory są idealne do zastosowań naukowych oraz edukacyjnych. Funkcjonalności obu systemów nie są identyczne, ale w wielu przypadkach mogą się uzupełniać. Symulator w określonych sytuacjach może być emulatorem. Emulator nigdy nie będzie symulatorem.

Charakterystyka emulatorów

Emulatory można podzielić na programowe oraz sprzętowe. Idea każdego z rozwiązań jest podobna. We „wnętrzu” oprogramowania lub sprzętu można zasymulować działanie odpowiedników fizycznych urządzeń oraz systemów i przetestować w połączeniu z siecią rzeczywistą. W przypadku rozwiązań sprzętowych najczęściej stosowane typy testów są realizowane w połączeniu z siecią fizyczną. W przypadku emulatorów programowych najczęściej pracujemy opierając się na strukturze wirtualnej, więc czasami wydajność takiego rozwiązania jest trudna do realnego oszacowania.

Emulator sieci pozwala zbadać zachowania aplikacji w różnych warunkach pracy sieci rozległej

Emulator sieci pozwala zbadać zachowania aplikacji w różnych warunkach pracy sieci rozległej

Emulator sieci pozwala stworzyć realistyczny model sieci i jej parametrów, tak aby można było emulować w jednym urządzeniu czy aplikacji środowisko takie jak WAN o różnych parametrach, sieć bezprzewodowa, łącze satelitarne, MPLS czy łączność 3G. Podłączając do takiego urządzenia realną infrastrukturę, możliwe jest przetestowanie istniejącej lub nowej aplikacji w zasymulowanym środowisku testowym. Wykorzystując taki model w analizie przedwdrożeniowej lub na etapie rozwiązywania problemów, będziemy mogli sprawdzić potencjalne zachowanie badanego rozwiązania w różnych warunkach. Będą to jednak warunki laboratoryjne, które umożliwią modyfikację rozwiązania bez wpływu na infrastrukturę produkcyjną.

Emulator w postaci sprzętu zazwyczaj jest włączany do sieci fizycznej pomiędzy testowane systemy, przykładowo pomiędzy stację roboczą a serwer. W stronie sprzętowej emulatora zainteresowanie użytkownika opiera się głównie na zakresie interfejsów WAN. Wiele systemów potrafi symulować interfejsy Fast/Gigabit Ethernet, DSL, DOCSIS, łącza satelitarne, ale także bardziej zbliżone operatorom technologie typu E1, E3 czy ATM. System może zmieniać parametry dotyczące prędkości sieci, opóźnień, zmienności opóźnień, strat pakietów. Wśród zaawansowanych możliwości warto wymienić wsparcie dla procesu degradacji i celowego uszkadzania pakietów. Dla maksymalnej elastyczności możliwe jest wsparcie protokołów zarówno w trybie mostu, jak i routera. Dostępne są przeważnie protokoły trasowania typu statycznego, OSPF, RIP, BGP, a także trasowanie ruchu multicast (PIM, IGMP). Dla większości protokołów powinniśmy otrzymać wsparcie dla IPv6 i IPv4 oraz możliwość przechwytywania pakietów i dekodowania protokołów sieciowych. W pewnym sensie emulator jest czarną skrzynką, do której przyłączamy elementy sieciowe na wejście i wyjście, a następnie określamy, jak parametry sieci ze „skrzynki” powinny wyglądać.

Zastosowania emulatorów

Emulatory sieci pracują na podstawie zdefiniowanej charakterystyki sieci. Jest ona oparta na zdefiniowanych opóźnieniach, stratach pakietów, zatorach, zmienności opóźnień. Emulator może zostać skonfigurowany w sposób, który umożliwi identyczne zachowanie, jak rzeczywista sieć. Emulator może zostać skonfigurowany do emulacji linku satelitarnego, sieci WAN czy łącza do dostawcy usług cloud.

Sprzętowy emulator sieci pozwala zaimplementować środowisko umożliwiające testowanie aplikacji i sprzętu sieciowego, który powinien pracować w sieci. Typowo emulator wspiera wiele parametrów pracy, które możemy odpowiednio modyfikować, m.in. opóźnienia, przepustowość, zmienność opóźnień. Przeważnie urządzenie pracuje w trybie przeźroczystym dla warstwy drugiej, co ułatwia szybką instalację w testowanych systemach. W celu dostosowania się do istniejącej infrastruktury, możliwe jest wykorzystanie VLAN w standardzie 802.1Q, emulacja routera, przełącznika i innych zaawansowanych elementów emulacji. Prędkość emulowanej sieci może rozpoczynać się od kilku bitów na sekundę, a kończyć nawet na kilkudziesięciu gigabitach na sekundę. Taki system może wspierać wiele jednoczesnych połączeń i w tym samym czasie symulować sieć LAN oraz WAN.