Wprowadzenie do zajęć laboratoryjnych -...
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 :-)