1. Tresc zadania ========================================================== Wykorzystujac symulator netconfsim (na panamincie) przeniesc do niego siec przedstawiona na ponizszym schematycznym rysunku i skonfiguraowac zgodnie z opisem adresy sieci i interfejsow. +---+ | | HOST 4 +---+ SIEC 10.0.0.0 SIEC 20.0.0.0 ======= ETHERNET PPP | 20.0.0.2 -+--------------+--- +------------------+ | 10.0.0.1 | | +---+ +---+ 10.0.0.2 +---+ 20.0.0.1 | | | | HOST 1 | | HOST 3 +---+ +---+ +---+ ======= ======= ======= HOST 0 | 192.168.0.1 | 192.168.0.3 --+---------+---------+-- SIEC 192.168.0.0 | 192.168.0.2 ETHERNET +---+ | | HOST 2 +---+ ======= Do realizacji tego zadania niezbedna jest znajmosc polecen: ifconfig, route, ping, traceroute 2. O samej aplikacji netconfsim =========================================== Aplikacja netconfsim umozliwia wprowadzanie polecen w trybie tekstowym jak tez udostepnia prosty interfejs graficzny (niestety o ograniczonych mozliwosciach). Przy tworzeniu architektury danej sieci zalecane jest korzystanie z interfejsu graficznego. Ponizej opisane sa polecenia w trybu tekstowego. W dalszej czesci opisane jest postepowanie w przypadku korzystania z interfesjsu graficznego. 3. Polecenia w trybie tekstowym =========================================== ADD_HOST (Skrot: A) - Dodaje nowego hosta. DEL_HOST (Skrot: DH) - Usuwa hosta. Skladnia polecenia: DH ID_hosta gdzie ID_hosta = 0,1,2,... ADD_INTERFACE (Skrot: AI) - Dodaje interfejs sprzetowy. Skladnia polecenia: AI ID_hosta interface gdzie ID_hosta = 0,1,2,...; interface = eth, ppp LINK_INTERFACES (Skrot: LI) - laczy podane interfacy. Skladnia polecenia: LI ID_hosta_1 interface_1 ID_hosta_2 interface_2 ... gdzie ID_hosta = 0,1,2,...; interface = eth0, eth1, ..., ppp0, ppp1, ... UNLINK_INTERFACE (Skrot: UI) - odlacza podany interface. Skladnia polecenia: LI ID_hosta interface gdzie ID_hosta = 0,1,2,...; interface = eth0, eth1, ..., ppp0, ppp1, ... PRINT_NET (Skrot: PN) - Wyswietla w tekstowej formie wszystkie spojne skladowe grafu polaczen pomiedzy interfejsami. GUI - uruchamia srodowiska graficznego. QUIT - Wyjscie 4. Postepowanie w przypadku pracy z interfejsem graficznym ================ A. Wlaczenie interfejsu graficznego ------------------------------------ Na pozimie tekstowym nalezy wydac polecenie GUI, ktore uruchamia interfejs graficzny. B. Dodanie nowego hosta ------------------------------------------------ - Na listwie narzedziowej nalezy wcisnac przycisk z ikona monitora - w wybranym miejscu okna, w ktorym ma byc zlokalizowany dany host, nalezy nacisnac dowolny klawisz myszy. - Po zakonczeniu operacji nalezy wycisnac przycisk na listwie narzedziowej. UWAGA: Opisywany interfejs nie ma mozliwosci usuwania dodanych hostow :( Z tego powodu nowe hosty nalezy dodawac z rozwaga. Wazne jest takze, aby wycisnac przycisk na listwie narzedziowej, ktory umozliwia realizacje tej operacji. Zapobiega to przypadkowemu dodawaniu kolejnych hostow. Operacja dodania hosta powoduje, ze tworzy sie katalog ~/.netconfsim/nr_hosta gdzie nr_hosta jest jego unikalnym identyfikatorem i moze przyjmowac wartosci nieujemnie: 0, 1, 2, ... C. Dodawanie interfejsu sieciowego ------------------------------------ - Nalezy naprowadzic kursor myszy na ikone monitora w oknie interfejsu. - Nastepnie nalezy przycisnac prawy przycisk myszy. Powoduje to pokazanie sie podrecznego menu. - Nalezy wybrac zadany interfejs (nie zwalniajac przycisku myszy), a nastepnie zwolnic przycisk. Efekt dodania bedzie widoczny poprzez pojawienie sie czarnego kwadraciku (w przypadku interfejsu ethernet) lub rombu (interfejs PPP) w poblizu ikony danego hosta. Informacja o dodaniu interfejsu pojawi sie rowniez w postaci komunikatu tekstowego w oknie terminala, w ktormy uruchmiona zostala aplikacja netconfsim. UWAGA: Podobnie jak wyzej, aplikacja nie ma mozliwosci usuwania dodanego interfejsu sieciowego z poziomu interfejsu graficznego. Jezeli po przycisnieciu prawego przycisku myszy i ukazaniu sie podrecznego menu chcemy zaniechac operacji, to nalezy bez zwalniania przycisku myszy wyprowadzic kursor poza obreb ikony az zniknie kursor selekcji w menu i dopiero wowczas zwolnic przycisk. D. Laczenie interfejsow ---------------------------------------------- - Na listwie narzedziowej musz zostac wycisniete wszystkie przyciski. - Nalezy naprowadzic kursor myszy na kwadracik odpowiadajacy wybranemu interfejsowi. - Nalezy przycisnac lewy kursor myszy i nie zwalniajac go doprowadzic do odpwiedniego interfejsu (kwadraciku lub rombu) drugiego hosta, a nastepnie zwolnic przycisk myszy. E. Rozlaczanie interfejsow ------------------------------------------- - Kursor myszy nalezy umiescic na ikonie wybranego interfejsu (czarny kwadrat lub romb) i nacisnac prawy przycisk myszy. - Po ukazaniu sie podrecznego menu z pozycja "Detach interface" nalezy wybrac te pozycje menu i zwolnic przycisk myszy. F. Konfiguracja interfejsu oraz inne operacje na hoscie -------------- - Nalezy naprowadzic kursor myszy na ikone wybranego hosta w oknie interfejsu aplikacji. - Nalezy nacisnac prawy kursor myszy i nie zwalniajac go po ukazaniu sie menu podrecznego, nalezy wybrac ostatnia jego pozycje "Run shell here". - Uruchomienie powloki dla danego hosta spowoduje, ze zostanie uruchomiony xterm w podkartotece odpowiadajacej danemu hostowi, np. dla hosta nr 3 bedzie to podkartoteka: ~/.netconfsim/3 W kartotece tej dostepne beda programy wspolpracujace z aplikacja netconfsim i umozliwiajace konfigurowanie i testowanie tworzonej sieci. Do programow tych naleza: ifconfig, route, ping, traceroute. UWAGA: Nalezy je uruchamiac podajac wzgledna sciezke, np. ./ping W przypadku wydania polecenia: ping zostanie uruchomiony program /bin/ping, a nie ~/.netconfsim/nr_hosta/ping KONFIGUROWANIE ROUTERA (WAZNE): - przed wydaniem odpowiednich polecen dla danego hosta nalezy zmienic zawartosc pliku: ~/.netconfsim/nr_hosta/proc/sys/net/ip_forward Domyslnie jest tam: 0. Nalezy zmienic to na 1, np. poprzez polecenie: sh -c "echo 1 > proc/sys/net/ip_forward" 5. Dokumentacja przebiegu cwiczenia ======================================= 0. Cwiczenie to nalezy realizowac w srodowisku graficznym X Window, tak aby mozna bylo korzystac z interfejsu graficznego aplikacji netconfsim. 1. Program netconfsim nalezy uruchomic z poziomu programu script, ktory zarejestruje operajce przeprowadzone na poziomie aplikacji netconfsim. Po uruchomieniu tej aplikacji nalezy wlaczyc jej interfejs graficzny (polecenie GUI). Mozna rowniez od razu uruchomic ta aplikacje z tym interfejsem poleceniem: netconfsim gui 2. Po zbudowaniu architektury polaczen zadanej sieci, dla hostow 1 i 3 nalezy zarejestrowac konfiguracje interfejsow (wywolanie polecenia ifconfig) oraz tablice routingu (wywolanie polecenia route). Nastepnie nalezy uruchomic polecenia ./ping i ./traceroute dla hosta 1: ./ping -c 3 10.0.0.1 ./traceroute 10.0.0.1 ./ping -c 3 192.168.0.2 ./traceroute 192.168.0.2 ./ping -c 3 20.0.0.2 ./traceroute 20.0.0.2 tak samo dla dla hosta 3: ./ping -c 3 10.0.0.1 ./traceroute 10.0.0.1 ./ping -c 3 192.168.0.2 ./traceroute 192.168.0.2 ./ping -c 3 20.0.0.2 ./traceroute 20.0.0.2 Rejestracje polecen nalezy zrealizowac w oparciu o program script, tzn. po otwarciu powloki dla danego shell'a (patrz punkt 4.F) nalezy uruchomic program script z odpowiednia nazwa pliku, tak aby rejestrowany plik byl poza kartoteka biezaca, np. script ~/host1.polecenia Dalsze polecenia nalezy wydawac z poziomu tego programu script. 3. Trzy utworzone pliki (plik z punktu 5.1 i dwa pliki z punktu 5.2) nalezy polaczyc w jeden za pomoca polecenia cat i przekazac jako sprawozdanie z przebiegu cwiczenia. 6. Bledy i technika pracy z aplikacja netconfsim ========================== Niestety aplikacja netconfsim zawiera istotny blad, ktory sprawia, ze jesli dla jakiegos hosta jedno z polecen zostanie wydane z blednymi parametarmi, lub zostanie zmieniona konfiguracja jakiegos interfejsu, to przekazywanie pakietow przez ten interfejs moze nie byc poprawne. Z tego powodu zaleca sie: a) najpierw sprobowac utworzyc prosta siec miedzy dwoma hostami i sprawdzic ja wydajac z poziomu obu hostow polecenia ./ping i ./traceroute , b) jezeli wszystko jest dobrze, to nalezy sprobowac dodac nowa podsiec i ponownie ja sprawdzic. c) w przypadku gdy popelnione zostaly bledy przy konfiguracji podsieci i pomimo wydawania nastepnych juz poprawnych polecen wciaz jest problem z przekazywaniem pakietow miedzy podsieciami, nalezy zamknac aplikacje i uruchomic ja ponownie :( Wyjscie z aplikacji musi koniecznie nastapic poprzez wydanie polecenia "quit" na poziomie tekstowym. Sprawi to, ze aplikacja wszystko poprawnie po sobie posprzata. d) jezeli zostal juz przetrenowany zestaw wlasciwych polecen, ktory zapewnia poprawne skonfigurowanie calej sieci z punktu c), nalezy ponownie uruchomic aplikacje netconfsim z rejestracja polecen (tzn. z poziomu wczesniej uruchomionego programu script) i przystapic do tworzenia wlasciwej sieci (pamietac nalezy o koniecznosci rejestracji polecen dla hosta 1 i 3). Uwagi co do konfiguracji interfejsu: - Przy poslugiwaniu sie poleceniem ./route (na poziomie powloki danego hosta) zawsze nalezy podawac maske (nie mozna korzystac z wartosci domyslnych), np. ./route add -net 127.0.0.0 netmask 255.0.0.0 dev lo ./route add -net 20.0.0.0 netmask 255.255.255.0 gw 192.168.0.3 dev lo - Nalezy pamietac o tym, aby polecenie ping wywolywac jako: ./ping w przypadku polecen traceroute, ifconfig, route; nie jest to konieczne. - Przy konfiguracji routerow nalezy pamietac o zmianie zawartosci pliku: proc/sys/net/ip_forward sh -c "echo 1 > proc/sys/net/ip_forward" - Jezeli wydane polecenie "zawiesi sie", to nalezy je przerwac (Ctrl-C) i wydac ponownie.