Software Defined Networking

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

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

Tworzenie maszyny wirtualnej

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

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

Laboratorium Sieci Komputerowych - 2

ZADANIE.07 Różne (tryb tekstowy i graficzny) 2h

ZADANIE.07 Różne (tryb tekstowy i graficzny) 2h

INSTRUKCJA I WSKAZÓWKI

Tomasz Greszata - Koszalin

Laboratorium Zarządzania. Janusz Granat, Wojciech Szymak

T: Zabezpieczenie dostępu do komputera.

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Instalacja i konfiguracja serwera SSH.

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

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

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

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

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

Elastyczna sieć dla rozwiązań Cloud Open vswitch

Instrukcja instalacji oprogramowania dla środowiska Linux

0. Stanowisko laboratoryjne

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

PODSTAWOWA OBSŁUGA PROGRAMU PROGRAMU PACKET TRACER TRYB REAL TIME

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Warsztaty z Sieci komputerowych Lista 1

Część zadań będzie już zrobiona, np. część programów zainstalowana, ale proszę przeczytać instrukcje i ew. np. zainstalować w domu.

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Instalacja i konfiguracja serwera telnet.

Wireshark analizator ruchu sieciowego

NS-2. Krzysztof Rusek. 26 kwietnia 2010

SDN Narmox Spear Architektura referencyjna do zastosowania kilku połączeń WAN oraz zasada podłączania sieci NIE-SDN do sieci SDN

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

ZADANIE.08 RADIUS (authentication-proxy, IEEE 802.1x) 2h

Problemy techniczne SQL Server

Zaawansowane aplikacje internetowe

Bezpieczeństwo Systemów Telekomunikacyjnych 2014 / 2015 Bezpieczeństwo aplikacji sieciowych, Ataki (D)DoS Prowadzący: Jarosław Białas

Wirtualizacja w praktyce.

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

Konwersja maszyny fizycznej na wirtualną.

Instrukcja instalacji oprogramowania dla środowiska Linux

Konfiguracja zapory Firewall w systemie Debian.

ZADANIE.09 Syslog, SNMP (Syslog, SNMP) 1,5h

Przekierowanie portów w routerze - podstawy

Warsztaty z Sieci komputerowych Lista 1

Instalacja Wirtualnego Serwera Egzaminacyjnego

ZASADY ADRESOWANIA IP cz. II

1. Instalacja centrali Asterisk w systemie Ubuntu 12.04

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Wykaz zmian w programie SysLoger

TELEFONIA INTERNETOWA

Materiały dodatkowe. Simulink Real-Time

Zdalne zarządzanie systemem RACS 5

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Problemy techniczne SQL Server. Jak odblokować porty na komputerze-serwerze, aby umożliwić pracę w sieci?

DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

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

PC0060. ADAPTER Kabel Easy Copy PC-Link USB 2.0 Proste kopiowanie, bez instalacji. Instrukcja obsługi

Zadanie z lokalnych sieci komputerowych. 1. Cel zajęć

ZiMSK NAT, PAT, ACL 1

pasja-informatyki.pl

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

Instrukcja instalacji Control Expert 3.0

Instrukcja instalacji oprogramowania dla środowiska Linux

T: Instalacja systemu Windows 2008 Serwer w maszynie wirtualnej VirtualBox.

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Router programowy z firewallem oparty o iptables

Wirtualne laboratorium - Cisco Packet Tracer

ZADANIE.08. RADIUS (authentication-proxy, IEEE 802.1x) 2h

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Wirtualne laboratorium - Packet Tracer

Firewall bez adresu IP

System kontroli dostępu ACCO NET Instrukcja instalacji

klikamy Next 4. Wybieramy zgodność z systemem Virtual Machine hardware compatibility z listy zaznaczamy Workstation 6 Next 5.

INSTALACJA LICENCJI SIECIOWEJ NET HASP Wersja 8.32

VLAN 2 zadania. Uwagi. Przygotowanie. Zadanie 1 Klasyczny VLAN, komputery obsługują znaczniki 802.1Q. Zadanie 2 Ingress filtering (cz.

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

Konfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Instalacja i konfiguracja serwera DHCP.

Laboratorium - Przeglądanie tablic routingu hosta

ZADANIE.03 Routing dynamiczny i statyczny (OSPF, trasa domyślna) 1,5h

Proces certyfikowania aplikacji na platformie PureSystems. Rafał Klimczak Lab Services Consultant

Projekt Fstorage. Łukasz Podkalicki Bartosz Kropiewnicki

Wirtualizacja sieci - VMware NSX

Połączenia. Obsługiwane systemy operacyjne. Instalowanie drukarki przy użyciu dysku CD Oprogramowanie i dokumentacja

Instalacja oprogramowania Platforma Systemowa Wonderware 2017 UPDATE 1

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

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

Laboratorium podstaw telekomunikacji

CREATE USER

Eksperyment w ramach Laboratorium SDN PL-LAB2020

Virtual Grid Resource Management System with Virtualization Technology

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Map Reduce Wprowadzenie do Apache Hadoop

Warsztaty z Sieci komputerowych Lista 4

podstawowa obsługa panelu administracyjnego

Transkrypt:

Software Defined Networking

Dlaczego SDN (Software Defined Networking)? Tradycyjne zarządzanie siecią jest skomplikowane, wymaga pamiętania o wielu rzeczach, znajomości wielu zagadnień. W SDN, centralizacja przez gromadzenie wielu informacji w jednym miejscu umożliwia podjęcie lepszych decyzji niż te podejmowane przez urządzenia sieciowe na podstawie danych lokalnych. Mówi się o programowaniu tzw. Globalnego widoku sieci (ang. Global view). SDN pozwala obniżyć koszty, jest elastyczne i skalowalne Działanie na prostych (i tanich) urządzeniach Uniwersalne urządzenia mogą spełniać różne funkcje (funkcja nie jest na stałe przypisana do danego urządzenia) Wirtualizacja funkcji sieciowych (NFV - Network Function Virtualization) Dana, zwirtualizowana funkcja (VNF - Virtual Network Function)

Docelowe warstwy w SDN Control program (SDN controller) - określa zachowanie komponentów, bazując na abstrakcyjnym opisie. Abstrakcyjnym tzn. niezależnym od producenta sprzętu obecnego w konfiguracji. Net virtualization (wirtualizacja sieci) - przekłada abstrakcyjny opis na globalny widok sieci. Network operating system (sieciowy system operacyjny) - przekłada globalny widok sieci na fizyczne urządzenia. https://youtu.be/yheyud89n1y?t=1469

Czym jest SDN? Northbound - od kontrolera do aplikacji Southbound - od kontrolera do infrastruktury (fizycznych urządzeń)

OpenFlow Protokół służący do wymiany informacji między kontrolerem, a urządzeniami w warstwie infrastruktury Urządzenia znają adres IP kontrolera, po uruchomieniu witają się z kontrolerem (wiadomość hello), uzgadniają numer wersji protokołu, którą będą się posługiwać w komunikacji między sobą. Później kontroler może modyfikować tabele zawierające reguły dotyczące pakietów które pojawiają się na urządzeniu. Tabele te nazywane są Flow tables. Wpis w tabeli - proaktywny, a reaktywny Reaktywny - kontroler dynamicznie reaguje (podejmuje decyzję) co zrobić z danym pakietem Proaktywny - kontroler z góry mówi urządzeniu co ma zrobić w danym przypadku Wpisy w tabeli analizowane są do pierwszego dopasowania, w kolejności wg priorytetu (atrybut liczbowy w rekordzie) Można zdefiniować wiele tabel (przydatne dla skomplikowanych reguł). Przeskok do innej tabeli jest realizowany przez dopasowanie do reguły w bieżącej tabeli, która zawiera instrukcję goto table x. Specyfikacje dla wszystkich wersji protokołu: https://www.opennetworking.org/software-defined-standards/specifications/

Środowisko laboratoryjne Do symulacji sieci zarządzanej programowo wykorzystane jest środowisko wirtualizacyjne VirtualBox z dwoma maszynami wirtualnymi. Na jednej znajduje się Mininet, służący do symulacji warstwy infrastruktury (urządzenia sieciowe, hosty, połączenia między nimi) oraz program Wireshark (do monitorowania pakietów poruszających się w sieci). Na drugiej maszynie wirtualnej znajduje się kontroler SDN.

Instalacja Mininet na Virtualbox Instrukcje instalacji dostępne są również w oficjalnej dokumentacji http://mininet.org/download/ Pobierz obraz maszyny wirtualnej z https://github.com/mininet/mininet/wiki/mininet-vm-images W VirtualBox (VBox): File -> Import Appliance (utworzenie maszyny o nazwie mininetvm) VBox: tools -> network -> create (zapamiętać nazwę utworzonej sieci) VBox: mininetvm -> settings -> network -> adapter 2: dodać host-only adapter (do utworzonej sieci) i sprawdzić adres MAC tego adaptera (advanced) VBox: uruchomić mininetvm (hasło/login = mininet/mininet) Sprawdzić czy interfejs z zapamiętanym adresem MAC ma przydzielony adres IP, jeśli nie: sudo dhclient [iinterfejs] Sprawdzić łączność host->mininetvm (ping) ; ssh -X -Y mininet@[adres IP] ; sprawdzić X forwarding (wireshark &) W razie problemów zainstalować środowisko graficzne na mininetvm (np. sudo apt-get install xinit lxde). Uruchomienie środowiska graficznego: startx Zainstalować guest additions i dopasować rozdzielczość do rozmiaru okna Najprościej: sudo apt-get install virtualbox-guest-utils Alternatywnie: przez ściągnięcie obrazu.iso VBox: mininetvm -> Snapshots -> take (ustawienie punktu przywracania)

Instalacja kontrolera (ryu) Ściągnąć obraz dysku instalacyjnego dla wybranego systemu operacyjnego (np. Ubuntu server lub Ubuntu desktop) VBox: Machine->New (nowa maszyna ryuvm) Zdefiniować host-only adapter analogicznie jak w przypadku mininetvm Zainstalować Python: sudo apt-get python-dev python-pip Zainstalować kontroler: sudo pip install ryu VBox: ryuvm -> Snapshots -> take (ustawienie punktu przywracania)

Instalacja kontrolera (OpenDaylight) Ściągnąć obraz dysku instalacyjnego dla wybranego systemu operacyjnego (np. Ubuntu server lub Ubuntu desktop) VBox: Machine->New (nowa maszyna odlvm) Zdefiniować host-only adapter analogicznie jak w przypadku mininetvm Ściągnąć i rozpakować zip z kontrolerem ze strony https://docs.opendaylight.org/en/latest/downloads.html Zainstalować java8 (ważne! Problem z nowszymi wersjami Javy) sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java8-set-default Zrestartować maszynę, uruchomić kontroler: cd ścieżka_do_rozpakowanego_archiwum,./bin/karaf feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-all VBox: odlvm -> Snapshots -> take (ustawienie punktu przywracania)

Weryfikacja działania środowiska Sprawdzić łączność host -> mininetvm ; mininetvm -> ryuvm ryuvm: Host: mininetvm: cd /usr/local/lib/python2.7/dist-packages/ryu/app ryu-manager gui_topology/gui_topology.py simple_switch.py --observe-links Przeglądarka internetowa: adres IP ryuvm:8080 sudo mn Exit sudo mn -c sudo mn --controller=remote,ip=[ip kontrolera] --topo=linear,5 --mac

Mininet c.d. Sprawdź działanie komend (na mniejszych topologiach): help, nodes, net, dump Jeżeli coś pójdzie nie tak, można wyczyścić mininet wykonując: sudo mn -c (cleanup) Wykonanie polecenia na danej maszynie: [nazwa maszyny] [polecenie]. Np. h1 ip a, h1 ping h2 Wygenerowanie ruchu między wszystkimi urządzeniami (może być potrzebne do odkrycia topologii): pingall Tylko sieć podlega wirtualizacji w Mininet, system plików i przestrzeń procesów są współdzielone. Porównaj: h1 ps -a, h2 ps -a, s1 ps -a ; h1 ls, h2 ls, s1 ls Konfiguracja połączeń między urządzeniami: link h1 s1 up ; link h1 s1 down Wybranie przełącznika i protokołu: --switch ovsk,protocols=openflow13

Jak wyglądają różne topologie Obserwuj zmiany w interfejsie graficznym kontrolera i sprawdzaj stan sieci poleceniami dump oraz net. --topo=linear,5 --topo=linear,40 --topo=tree,depth=3,fanout=3 --topo=tree,depth=10,fanout=4 --topo=minimal --topo=single --topo=single,10 --topo=reversed --topo=reversed,7 --topo=torus,3,3 --topo=torus,4,4

Monitorowanie ruchu aplikacyjnego Uruchom wireshark na mininetvm (intefejs: any, filtr udp) Uruchom topologię z kilkoma maszynami Uruchom w tle program xterm na maszynach h1 i h2 Na h1 uruchom nasłuchiwanie na udp (port 1234): nc -l -u 1234 Sprawdź adres ip h1 Na h2 połącz się z serwerem udp na h1: nc -u [adres ip h1] 1234 Prześlij dane w obie strony, obserwuj pakiety w Wiresharku

Monitorowanie ruchu OpenFlow Uruchom wireshark na mininetvm (intefejs: any, filtr of) Uruchom topologię z kilkoma maszynami Jakie pakiety OpenFlow są widoczne? Ile pakietów hello zostało przesłanych, dlaczego właśnie tyle?

Polecenia OpenVSwitch OpenVSwitch: openvswitch.org Na mininetvm: sudo ovs-vsctl show sudo ovs-ofctl dump-flows s1 //Openflow 1.0 sudo ovs-ofctl dump-ports s1 //Openflow 1.0 sudo ovs-ofctl -O OpenFlow13 dump-flows s1 //Openflow 1.3 sudo ovs-ofctl -O OpenFlow13 dump-ports s1 //Openflow 1.3 Korzystając z powyższych poleceń zaobserwuj zmiany w tabelach Openflow na urządzeniach (zaraz po uruchomieniu topologii, po wykonaniu kilku poleceń ping).

Zaawansowane topologie w Mininet Mininet umożliwia tworzenie dowolnych topologii, wykorzystując API w języku Python. https://github.com/mininet/mininet/wiki/introduction-to-mininet Skopiuj kod z pierwszego przykładu. Uruchomienie funkcji testującej: sudo python [nazwa_pliku.py] Kluczowe informacje: Nowa topologia rozszerza klasę Topo (mininet.topo) Tworzenie topologii zaczyna się w metodzie build (parametr n to tutaj liczba hostów, które będą wygenerowane) Dodanie nowych urządzeń/hostów (self.addswitch, self.addhost) Dodanie nowego połączenia (self.addlink) Uruchomienie własnej topologii: Dodaj słownik topos, (np. Na końcu pliku py): topos = { nazwa : NazwaKlasyTopo } Uruchom mininet: sudo mn --custom plik.py --topo nazwa Korzystając z informacji dostępnych w powyższym linku, zaimplementuj topologie wskazane przez prowadzącego.

Implementacja własnego kontrolera (ryu) Lub innymi słowy, aplikacji w Ryu network operating system. Dokumentacja: https://ryu.readthedocs.io/en/latest/index.html Przeanalizuj prosty przykład ze strony https://ryu.readthedocs.io/en/latest/writing_ryu_app.html Kluczowe informacje: Nowy pakiet (typu packet_in) jest przechwytywany przez metodę packet_in_handler, zwróć uwagę na zastosowany dekorator (@set_ev_cls), to właśnie on powoduje wywołanie tej metody przy zdarzeniu packet_in. Zobacz jak w przykładzie został skonstruowany pakiet wychodzący oraz jak można taki pakiet wysłać Pamiętaj, że ryu jest aplikacją jednowątkową, która działa w oparciu o zdarzenia. Uwaga na wywoływanie operacji blokujących! Zaimplementuj: Filtrowanie ruchu danego typu (np. Blokowanie udp) Gromadzenie prostych statystyk (np. Liczby otrzymanych wiadomości hello) Udostępnienie listy połączonych przełączników i hostów