Wprowadzenie do zajęć laboratoryjnych -...

6
© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 1 Wprowadzenie do zajęć laboratoryjnych Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott Środowisko pracy Podczas zajęć będziemy korzystali ze środowiska wirtualizacyjnego netkit, które powstało na uniwersytecie w Rzymie (UniRoma). Netkit bazuje na maszynach wirtualnych pracujących w konfiguracji user-mode linux (UML Linux). Pełnią one funkcje hostów lub routerów i mogą być łączone w sieć. Zarówno maszyna hosta (host machine), jak i maszyny wirtualne (guest machine) korzystają z systemu operacyjnego Linux. Netkit to środowisko emulacyjne a nie symulacyjne (!). Dzięki temu dosyć wiernie odzwierciedla zachowanie protokołów sieciowych oraz interakcje pomiędzy urządzeniami sieciowymi. Praca odbywa się na komputerze fizycznym host machine (por. Rysunek 1), którym jest PC z odpowiednio dużą pamięcią RAM, by pomieścić kilka maszyn wirtualnych pracujących współbieżnie. Rys. 1. Środowisko Netkit Pełny opis środowiska netkit dostępny jest pod adesem www.netkit.org . Dokumentacja do środowiska: http://wiki.netkit.org/man/man7/netkit.7.html

Transcript of Wprowadzenie do zajęć laboratoryjnych -...

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 1

Wprowadzenie do zajęć laboratoryjnych

Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott

Środowisko pracy

Podczas zajęć będziemy korzystali ze środowiska wirtualizacyjnego netkit, które powstało na

uniwersytecie w Rzymie (UniRoma). Netkit bazuje na maszynach wirtualnych pracujących w

konfiguracji user-mode linux (UML Linux). Pełnią one funkcje hostów lub routerów i mogą

być łączone w sieć. Zarówno maszyna hosta (host machine), jak i maszyny wirtualne (guest

machine) korzystają z systemu operacyjnego Linux.

Netkit to środowisko emulacyjne a nie symulacyjne (!). Dzięki temu dosyć wiernie

odzwierciedla zachowanie protokołów sieciowych oraz interakcje pomiędzy urządzeniami

sieciowymi. Praca odbywa się na komputerze fizycznym host machine (por. Rysunek 1),

którym jest PC z odpowiednio dużą pamięcią RAM, by pomieścić kilka maszyn wirtualnych

pracujących współbieżnie.

Rys. 1. Środowisko Netkit

Pełny opis środowiska netkit dostępny jest pod adesem www.netkit.org .

Dokumentacja do środowiska: http://wiki.netkit.org/man/man7/netkit.7.html

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 2

Interfejs użytkownika

Środowisko pracy przedstawia poniższy obraz ekranu (Rys. 2). Okna w lewej części rysunku

to konsole do urządzeń wirtualnych. Okno po prawej stronie to konsola do hosta PC, na

którym prowadzone są eksperymenty.

Rys. 2. Interfejs użytkownika środowiska

Maszyny wirtualne mogą być wyposażone w kilka wirtualnych interfejsów sieciowych, przez

co mogą emulować fizyczne urządzenia sieciowe, na przykład routery. Na maszynach

wirtualnych routing jest obsługiwany przez oprogramowanie Quagga (dawniej Zebra).

Quagga to demon rutingu, który implementuje m.in. RIP, OSPF oraz BGP. W toku zajęć

będziemy korzystać z tych protokołów.

Korzyści ze stosowania środowiska wirtualnego

Jest kilka powodów, dla których zajęcia oparte są na środowisku Netkit. Najważniejsze to:

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 3

Każdy student może indywidualnie zarządzać całą siecią i ma nad nią pełną kontrolę.

Każdy student może zarządzać naraz wieloma urządzeniami, z których każde jest

skonfigurowane inaczej. W przypadku rozbudowanych ćwiczeń laboratoryjnych liczba

tych urządzeń wynosi 11.

Do realizacji ćwiczeń zaawansowanych student otrzymuje środowisko, które jest

zawczasu prekonfigurowane według określonego scenariusza, co pozwala skupić się

na istotnych elementach ćwiczenia i poprawia efektywność pracy.

Środowisko wirtualne oferuje swobodny dostęp do wszystkich funkcji związanych z

konfiguracją i diagnozowaniem stanu sieci.

Środowisko wirtualne emuluje sieć, co oznacza, że wiernie odzwierciedla zachowanie

protokołów sieciowych oraz interakcje pomiędzy urządzeniami sieciowymi. Jest to

duża zaleta w stosunku do symulatorów (np. ns-2 , ns-3), które zwyczajowo

koncentrują się na wybranych aspektach funkcjonowania protokołu lub systemu.

Netkit korzysta ze stabilnych implementacji protokołów oraz z podsystemów

wspomagających oprogramowanie Zebra/Quagga. Dzięki temu jest w dużej mierze

wolny od błędów.

Interfejs linii poleceń konsoli routera wirtualnego jest zgodny ze składnią stosowaną

w routerach Cisco. Zdobyta tutaj praktyka może być wykorzystana w całości podczas

pracy z urządzeniami fizycznymi, bez potrzeby uzupełniania umiejętności.

Netkit pozwala zbudować środowisko hybrydowe, tzn. połączyć sieć emulowaną z

rzeczywistą, fizyczną siecią.

Środowisko Netkit można zainstalować w domu na systemie Linux korzystając z

informacji zamieszczonych na stronie www.netkit.org i samodzielnie powtórzyć

ćwiczenie laboratoryjne po zajęciach lub zmodyfikować ćwiczenie wykonane podczas

zajęć.

Przygotowanie do zajęć

1. Podczas uruchamiania komputera w laboratorium należy wybrać system netkit.

Jest to Linux, na którym jest zainstalowany jest oprogramowanie netkit.

2. Login do systemu to student . Hasło to student. Przy pierwszym uruchomieniu

użytkownik zostaje automatycznie zalogowany.

3. Praca w środowisku netkit odbywa się na koncie administratora root. Wymaga to

otwarcia okna konsolowego oraz przelogowania się na konto root poleceniem

sudo –i.

4. Po zalogowaniu się na konto root, należy upewnić się, że zmienne środowiskowe

dotyczące oprogramowania netkit są ustawione prawidłowo poleceniem env w

oknie konsoli. Spodziewany wynik:

NETKIT_HOME=/home/netkit/netkit

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 4

MANPATH=/home/netkit/netkit/man

PATH=/home/netkit/netkit/bin:/… … …

Jeżeli zmienne środowiskowe nie zawierają wyżej wymienionych zmiennych, nalezy

wykonać pkt. 3 powyżej.

5. Instrukcje do ćwiczeń oraz skrypty są dostępne na stronie przedmiotu

(http://www.kt.agh.edu.pl/~pacyna zakładka Lectures, następnie SieciIP.

6. Jeżeli instrukcji do ćwiczenia towarzyszą przygotowane zawczasu skrypty, należy je

rozpakować do nowego katalogu na dysku twardym.

Aby skorzystać z dysku, należy go zamontować. W tym celu należy wybrać na górnym

pasku zadań zakładkę „Places” a następnie wskazać nazwę dysku twardego (np. 137

GB Filesystem). Spowoduje to zamontowanie dysku, który najczęściej staje się

dostępny za pośrednictwem katalogu: /media/disk. Uwaga: nie należy uruchamiać skryptów w katalogu domowym, ani np. z pulpitu (w katalogu ~/Desktop).

7. W przypadku pojawienia się błędu montowania dysku należy wykonać poniższe

komendy:

sudo mkdir /media/disk

sudo mount -t ntfs-3g /dev/sda4 /media/disk -o force

8. Do uruchomienia skryptów służy komenda lstart. Należy ją wykonać w katalogu,

który powstaje podczas rozpakowywania pobranego .zip-a.

9. Należy pamiętać, że systemy plików maszyn wirtualnych „guest” są odrębne od

systemu plików komputera „host”, na którym są uruchomione. Niemniej jednak

istnieje możliwość przekazania pliku z maszyny wirtualnej do systemu plików „hosta”.

“Inside every virtual machine there is a special directory named /hosthome. This

directory points to your home directory on the host (typically, /home/<username>).

Hence, anything you write into /hosthome will be made available on the host, and you

can bring host files into your virtual machine as well”.

10. Standardowo, maszyny wirtualne nie są podłączone do sieci publicznej (nie korzystają

z karty sieciowej “host’a”. Istnieje jednak możliwość podłączenia ich do publicznego

Internetu, na przykład w celu zainstalowania dodatkowych pakietów

oprogramowania na maszynie wirtualnej. Sposób realizacji podłączenia określa

instrukcja FAQ: http://wiki.netkit.org/index.php/FAQ#Frequently_Asked_Questions ,

patrz Netkit Usage “I would like to set up a lab with a virtual machine connected

to the Internet. How can I do that?”

11. Po zakończeniu ćwiczenia należy zatrzymać maszyny wirtualne (komendami lhalt

lub lcrash) oraz usunąć swoje pliki z dysku twardego.

12. Po zakończeniu zajęć proszę wyłączyć komputer.

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 5

Uruchomienie przykładowego skryptu

Ćwiczenia laboratoryjne są predefiniowane w postaci skryptów uruchomieniowych, które

należy pobrać ze strony przedmiotu i uruchomić. Poniższe kroki można wykonać przy

pomocy interfejsu graficznego lub według zamieszczono poniżej opisu.

student@student:~$ sudo mkdir /media/disk

student@student:~$ sudo mount /dev/sda2 /media/disk

student@student ipn:~$ cd /media/disk

student@student:/media/disk$ mkdir temp

student@student:/media/disk$ cd temp

student@student:/media/disk/temp$ wget

http://www.kt.agh.edu.pl/~pacyna/lectures/sieci_komputerowe/

laboratoria/rip/lab-static-routing.tar.zip

student@student:/media/disk/temp$ unzip lab-static-

routing.tar.zip

student@student:/media/disk/temp$ tar xvf lab-static-

routing.tar

student@student gipn:/media/disk/temp$ cd lab-static-

routing/

student@student:/media/disk/temp/lab-static-routing$ lstart

Praca ze środowiskiem netkit

Środowisko netkit może być kontrolowane przez użytkownika za pośrednictwem poleceń

uruchamiających, zawieszających oraz trwale usuwających maszyny wirtualne. Polecenia są

dostępne z poziomu wiersza poleceń (konsoli) komputera, na którym prowadzone są

eksperymenty. Dostępne są polecenia:

lstart lclean

lcrash lhalt

linfo lrestart

ltest vclean

vconfig vstart

vhalt vcrash

vlist

Proszę zapoznać się ze znaczeniem tych poleceń oraz użyć każdego z nich, aby zobaczyć

efekty działania.

© Piotr Pacyna, Katarzyna Kosek-Szott, Szymon Szott 6

Proszę samodzielnie powołać do działania kilka maszyn wirtualnych w taki sposób, by

tworzyły sieć komputerową. Proszę to osiągnąć na dwa sposoby: a) z poziomu konsoli, b)

poprzez plik pliki konfiguracyjny definiujący laboratorium (lab.conf).

Wszelkie pytania proszę kierować do prowadzących.

Życzymy owocnej pracy :-)