Zapoznanie ze środowiskiem Mininet. Instalacja zewnętrznego kontrolera SDN.

Podobne dokumenty
W celu uruchomienia kontrolera należy w katalogu głównym kontrolera z wiersza poleceń wydać następujące polecenie: $ java -jar target/floodlight.

Software Defined Networking

Wprowadzenie do tworzenia własnego modułu w kontrolerze Floodlight.

Instrukcja instalacji oprogramowania dla środowiska Linux

Laboratorium podstaw telekomunikacji

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Tworzenie maszyny wirtualnej

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

Ping. ipconfig. getmac

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

ZASADY ADRESOWANIA IP cz. II

Laboratorium Zarządzania. Janusz Granat, Wojciech Szymak

Laboratorium 2 Sieci Komputerowe II Nazwisko Imię Data zajęd

Wireshark analizator ruchu sieciowego

Instalacja i konfiguracja serwera SSH.

System kontroli dostępu ACCO NET Instrukcja instalacji

WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ. Pracownia specjalistyczna. Numer ćwiczenia: 5.

T: Zabezpieczenie dostępu do komputera.

1. Instalacja centrali Asterisk w systemie Ubuntu 12.04

Ćwiczenie Konfiguracja statycznych oraz domyślnych tras routingu IPv4

SPRAWOZDANIE SIECI KOMPUTEROWE I BAZY DANYCH LABORATORIUM NR2 BADANIE SIECI KAMIL BOGDANOWSKI

Instalacja i konfiguracja serwera telnet.

Instrukcja instalacji oprogramowania dla środowiska Linux

Instrukcja instalacji oprogramowania dla środowiska MacOS

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Warsztaty z Sieci komputerowych Lista 3

Laboratorium Badanie topologii i budowa małej sieci

Instrukcja instalacji oprogramowania dla środowiska Linux

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Instrukcja do laboratorium. Wprowadzenie do problematyki wirtualizacji. Wirtualizacja sieci.

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Sieci komputerowe i bazy danych

Warsztaty z Sieci komputerowych Lista 1

ZADANIE.02 Podstawy konfiguracji (interfejsy) Zarządzanie konfiguracjami 1,5h

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Zakład Teleinformatyki i Telekomutacji LABORATORIUM SIECI

Laboratorium Sieci Komputerowych - 2

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

NS-2. Krzysztof Rusek. 26 kwietnia 2010

Laboratorium nr 4 Ataki aktywne

Laboratorium 3.4.2: Zarządzanie serwerem WWW

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Wirtualne laboratorium - Cisco Packet Tracer

Praca w środowisku Cygwin. Przygotował Mateusz Dudek

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Ćw. I. Środowisko sieciowe, połączenie internetowe, opcje internetowe

Narzędzia diagnostyczne protokołów TCP/IP

Packet Tracer - Podłączanie routera do sieci LAN

Wirtualne laboratorium - Packet Tracer

ABA-X3 PXES v Podręczna instrukcja administratora. FUNKCJE SIECIOWE Licencja FDL (bez prawa wprowadzania zmian)

Opis instalacji i konfiguracji programu HW Virtual Serial Port z kasą PS3000Net

Wprowadzenie 5 Rozdział 1. Lokalna sieć komputerowa 7

Narzędzia do diagnozowania sieci w systemie Windows

Instalacja i konfiguracja Symfonia.Common.Server oraz Symfonia.Common.Forte

Warsztaty z Sieci komputerowych Lista 1

Instalacja i konfiguracja serwera IIS z FTP

Strona1. Suse LINUX. Konfiguracja sieci

Aplikacje WWW - laboratorium

Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Zadanie OUTSIDE /24. dmz. outside security- level /24. inside security- level /16 VLAN

LABORATORIUM SIECI. Zakład Cyberbezpieczeństwa IT PW. Instrukcja do ćwiczenia: Switching, VLAN & Trunking Przedmiot: Sieci Lokalne (LAN)

0. Stanowisko laboratoryjne

Kalipso wywiady środowiskowe

Routing - wstęp... 2 Routing statyczny... 3 Konfiguracja routingu statycznego IPv Konfiguracja routingu statycznego IPv6...

Laboratorium - Używanie wiersza poleceń systemu IOS do obsługi tablic adresów MAC w przełączniku

Laboratorium sieci komputerowych

REST API w module kontrolera Floodlight. Implementacja kolektora statystyk OpenFlow.

AKTYWNY SAMORZĄD. Instrukcja instalacji, aktualizacji i konfiguracji.

Open vswitch lab. Radosław Kujawa 14 czerwca 2017 OSEC

11. Rozwiązywanie problemów

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Bezpieczeństwo systemów informatycznych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Topologia sieci. Cele nauczania.

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Instalacja serwera baz danych PostgreSQL ze źródeł i pierwsze uruchomienie

Instrukcja do laboratorium 1

Laboratorium - Konfiguracja karty sieciowej do używania protokołu DHCP w systemie Windows XP

Usługi sieciowe systemu Linux

Laboratorium - Przeglądanie tablic routingu hosta

Użycie pakietów instalacyjnych.msi w oprogramowaniu WYWIAD Plus

Ćwiczenie Konfiguracja routingu inter-vlan 802.1Q opartego na łączach trunk

Laboratorium - Konfiguracja karty sieciowej z wykorzystaniem protokołu DHCP w systemie Vista

IBM SPSS Statistics - Essentials for R: Instrukcje instalacji dla Linux

Podstawy Sieci Komputerowych Laboratorium Cisco zbiór poleceń

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat hasła SOHO (ang. Small Office/Home Office).

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Transkrypt:

Instrukcja do laboratorium 1 Zapoznanie ze środowiskiem Mininet. Instalacja zewnętrznego kontrolera SDN. 1. Cel ćwiczenia Celem ćwiczenia jest zaznajomienie się ze środowiskiem Mininet, protokołem OpenFlow oraz zewnętrznym kontrolerem sieci SDN. 2. Przygotowanie stanowiska 2.1 Instalacja programu Whireshark Proszę sprawdzić dostępność aplikacji Wireshark w systemie Ubuntu 16 oraz wtyczki pozwalającej na rozpoznawanie pakietów protokołu OpenFlow (Help About Wireshark Plugins). W przypadku stwierdzenia braku, instalacji można dokonać wykonując następujące polecenia z wiersza poleceń: $ sudo apt-get update $ sudo apt-get install software-properties-common python-softwareproperties $ sudo add-apt-repository ppa:pi-rho/security $ sudo apt-get update $ sudo apt-get install wireshark W razie problemów z instalacją należy wykonać następujące polecenia: $ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/cache/apt/archives/lock $ sudo rm /var/lib/dpkg/lock $ sudo apt-get update 3. Mininet wprowadzenie Mininet to środowisko pozwalające na emulację sieci. Można w nim tworzyć rzeczywistą sieć uruchamianą na poziomie jądra systemu operacyjnego. Integruje nowoczesne rozwiązania takie jak np. Open vswitch, z wirtualnymi interfejsami (veth) oraz wydzielanymi przestrzeniami nazw. Uruchomienie środowiska Mininet następuje po wydaniu komendy: $ sudo mn W celu wyświetlenia listy opcji startowych należy wydać polecenie: $ sudo mn -h W razie problemów ze środowiskiem proszę skorzystać z polecenia: $ sudo mn -c 1

3.1 Domyślna topologia Domyślna topologia (minimal) zawierająca jeden przełącznik OpenFlow łączący dwa hosty oraz referencyjny kontroler OpenFlow została przedstawiona na rysunku 1. Jej uruchomienie następuje po wydaniu polecenia: $ sudo mn lub $ sudo mn --minimal Kontroler c0 Przełącznik s1 Host h1 Host h2 RYSUNEK 1. Domyślna topologia (minimal) Zadanie 1. Proszę zaobserwować proces zestawiania połączenia przełącznika z kontrolerem OpenFlow. Uwaga: przed uruchomieniem środowiska Mininet należy uruchomić sniffowanie w programie Wireshark na interfejsie loopback. 3.2 Pomocne polecenia Po uruchomieniu środowiska warto także zapoznać się z następującymi komendami: mininet> help W celu wyświetlenia listy węzłów: mininet> nodes W celu wyświetlenia istniejących połączeń: mininet> net Zrzut wszystkich podstawowych informacji o węzłach następuje po wydaniu polecenia: mininet> dump 2

Aby wykonać polecenie na danym węźle, należy w CLI podać nazwę węzła a następnie wykonywane na nim polecenie. Przykładowo, aby wyświetlić listę wszystkich interfejsów sieciowych należących do hosta h1 należy wydać polecenie: mininet> h1 ifconfig -a Uwaga: Ponieważ emulowane hosty działają we własnych przestrzeniach nazw, ich interfejsy sieciowe widoczne są tylko z poziomu emulowanych hostów. Ponieważ emulowany przełącznik OpenFlow wykorzystuje przełącznik Open vswitch działający w przestrzeni jądra systemy operacyjnego, jego interfejsy będą widoczne w przestrzeni nazw należącej do systemu operacyjnego. Proszę wydać podobne polecenie jak wyżej dla uruchomionego przełącznika z poziomu środowiska Mininet oraz sprawdzić wszystkie interfejsy sieciowe z poziomu użytkownika root głównego systemu (Ubuntu, nie mininet potrzebna jest dodatkowa konsola). Podczas pracy ze środowiskiem Mininet przydatnymi komendami uruchamianymi na danych urządzeniach mogą być także polecenia route, ps, arp, jobs, kill, & (oraz inne polecenia powłoki Bash). 3.3 Testowanie połączenia. Obserwacja wiadomości OpenFlow Uwaga: Przed wykonaniem zadania proszę uruchomić sniffowanie w programie Wireshark lub wyczyścić listę obserwowanych pakietów. Aby przetestować łączność pomiędzy hostatmi h1 oraz h2, z poziomu CLI można wydać następujące polecenie: mininet> h1 ping h2 Zadanie 2. Proszę dokładnie przeanalizować komunikację pomiędzy przełącznikiem a kontrolerem, tj. pakiety: packet_in, packet_out, flow_mod. Zadanie 3. Dlaczego pierwszy pakiet ICMP miał zdecydowanie większe opóźnienie od kolejnych (dyskusja). Proszę powtórzyć polecenie ping. Czy taka sytuacja ma dalej miejsce? Przydatne polecenie: mininet> pingall testuje łączność pomiędzy wszystkimi węzłami 3.4 Wykorzystanie xterms Mininet pozwala na bezpośredni dostęp do konsoli emulowanych urządzeń z wykorzystaniem emulatora terminala xterm. W celu uruchomienia emulatora terminala dla hosta h1 należy wydać polecenie: mininet>xterm h1 Proszę wypróbować podstawowe polecenia powłoki Bash wewnątrz tego terminala. Proszę sprawdzić działanie także podstawowych programów, np. tcpdump. 3

Uwaga: Podczas startu środowiska możliwe jest automatyczne uruchomienie terminali dla wszystkich urządzeń z wykorzystaniem opcji -x, np. $ mn -x 3.5 Uruchamianie podstawowych usług sieciowych (serwer HTTP) Środowisko Mininet oprócz podstawowych poleceń ma wbudowane podstawowe usługi pozwalające na testowanie własnych rozwiązań, np. serwer HTTP. Proszę w konsoli xterm węzła h1 wydać następujące polecenie: # python -m SimpleHTTPServer 80 Polecenie to uruchamia prosty serwer HTTP nasłuchujący na porcie 80. Następnie z poziomu CLI środowiska proszę wydać polecenie: mininet> h2 wget -O - h1 Zadanie 4. Proszę dokładnie prześledzić komunikację przełącznik-kontroler (protokół OpenFlow) podczas zestawiania sesji HTTP. 3.5 Wykorzystanie innych (dostępnych domyślnie) topologii Proszę uruchomić środowisko następującymi poleceniami: $ mn --topo single,3 $ mn --topo linear,4 $ mn --topo tree,depth=2 $ mn --topo tree,depth=2,fanout=4 Zadanie 5. Proszę narysować uruchomione topologie 3.6 Testowanie wydajności połączeń Środowisko Mininet pozwala na korzystanie z popularnych rozwiązań do testowania połączeń, np. programu iperf. Aby przetestować szybkość połączenia w podstawowej topologii należy wydać polecenie: minient> iperf Polecenie to tworzy na jednym z hostów serwer iperf, na drugim zaś jego aplikację kliencką i uruchamia test między nimi. Para ta zawsze tworzona jest pomiędzy hostami o najwyższym i najniższym ID. Zadanie 6. Proszę przetestować szybkość połączenia pomiędzy hostem h1 a h2 w podstawowej topologii. 4

Mininet pozwala także na zmiany parametrów dostępnych łączy. W celu ustawienia dodatkowych opóźnień oraz przepustowości łączy wykorzystuje popularne narzędzie tc. Zadanie 7. Proszę uruchomić podstawową topologię z następującymi parametrami: $ sudo mn --link tc,bw=5,delay=20ms oraz przetestować łączność: mininet> iperf mininet> h1 ping h2 Pytanie: Skąd wynika opóźnienie rzędu 80ms? 3.7 Wyświetlanie zainstalowanych przepływów w tablicy przełącznika Proszę uruchomić jeszcze raz minimalną topologię poleceniem: $ mn następnie proszę podłączyć się do emulatora konsoli przełącznika s1 poleceniem mininet> xterm s1 oraz wydać wewnątrz tej konsoli polecenie: # ovs-ofctl dump-flows s1 Jeśli nie było ruchu pomiędzy hostami h1 oraz h2 lista zainstalowanych przepływów w przełączniku powinna być pusta. Następnie proszę puścić pinga z h1 do h2 oraz ponownie wyświetlić listę przepływów. Zadanie 8. Proszę z poziomu przełącznika skasować wszystkie zainstalowane przepływy 5

4. Tworzenie własnych topologii Środowisko Mininet pozwala na tworzenie własnych (bardziej skomplikowanych) topologii z wykorzystaniem prostego API (Python). Proszę utworzyć plik o nazwie example-topo.py zawierający następujące linie: ""Custom topology example Two directly connected switches plus a host for each switch: host --- switch --- switch --- host Adding the 'topos' dict with a key/value pair to generate our newly defined topology enables one to pass in '--topo=mytopo' from the command line. """ from mininet.topo import Topo class MyTopo( Topo ): "Simple topology example." def init ( self ): "Create custom topo." # Initialize topology Topo. init ( self ) # Add hosts and switches lefthost = self.addhost( 'h1' ) righthost = self.addhost( 'h2' ) leftswitch = self.addswitch( 's3' ) rightswitch = self.addswitch( 's4' ) # Add links self.addlink( lefthost, leftswitch ) self.addlink( leftswitch, rightswitch ) self.addlink( rightswitch, righthost ) topos = { 'mytopo': ( lambda: MyTopo() ) } Uruchomienie własnej topologii następuje po wydaniu polecenia: $ sudo mn --custom example-topo.py --topo mytopo 6

Host h4 Host h3 Host h1 RYSUNEK 2. Topologia do implementacji Host h2 Zadanie 9. Proszę na podstawie przykładu utworzyć topologię przedstawioną na rysunku 2. Zadanie 10. Proszę rozszerzyć konfigurację topologii z rysunku 2 o nadanie wszystkim łączom przepustowości 10Mb/s oraz opóźnienia 10ms. Zadanie 11. Proszę rozszerzyć zadaną konfigurację o nadanie następujących adresów IP poszczególnym hostom: h1: 1.1.1.1 h2: 2.2.2.2 h3: 3.3.3.3 h4: 4.4.4.4 7

5. Uruchamianie zewnętrznego kontrolera sieci SDN W trakcie tych oraz kolejnych zajęć laboratoryjnych wykorzystywać będziemy zewnętrzny kontroler sieci SDN o nazwie Floodlight. Napisany jest on w języku Java. 5.1 Przygotowanie środowiska Przed zbudowanie i uruchomieniem środowiska należy zainstalować potrzebne repozytoria poleceniem: $ sudo apt-get install build-essential ant maven python-dev 5.2 Pobieranie i budowanie kontrolera Proszę pobrać kontroler (version 1.2) ze strony projektu https://github.com/floodlight/floodlight/archive/v1.2.tar.gz a następnie rozpakować go, np. poleceniem: $ tar -xf floodlight* Następnie należy przejść do rozpakowanego katalogu i zbudować kontroler ze źródeł poleceniem $ ant 5.3 Uruchomienie i testowanie zewnętrznego kontrolera Uwaga: Przed uruchomieniem kontrolera proszę zamknąć wszystkie topologie uruchomione w środowisku Mininet W celu uruchomienia kontrolera należy z wiersza poleceń wydać polecenie: $ java -jar target/floodlight.jar Proszę zaobserwować start kontrolera. Kontroler od tej pory powinien nasłuchiwać przełączników za pomocą protokołu LLDP. Następnie (w innej konsoli) należy uruchomić środowisko Mininet, tym razem wskazując, że wykorzystany zostanie zewnętrzny kontroler: $ sudo mn --controller=remote,ip=<controller ip>,port=6653 Zadanie 12. Proszę przetestować działanie sieci z wykorzystaniem zewnętrznego kontrolera. Zadanie 13. W jaki sposób można zmienić poziom logowania przez kontroler? Zadanie 14. Proszę uruchomić własną topologię z zewnętrznym kontrolerem Floodlight. 8