portal Michała Hanćkowiaka
Begin main content
Search · Index
No registered users in community Materiały
in last 10 minutes

SIK - Temat F - ręczne budowanie małych sieci - Zadania 1

Podstawowe "pojęcia sieciowe": wykł01
proszę spojrzeć na slajd na str 11, pokazujący 3 sieci fizyczne połączone w intersiec, węzły mają przypisane adresy;
adres IP składa się z 2 części: "nr sieci" i "nr hosta", reszta informacji na slajdach...

Przydatne polecenia linux-owe "net-tools" (patrz manual i google/wikipedia):
ifconfig - man, nadawanie adresu ip/maski interfejsowi sieciowemu raz uaktywnianie go
przykłady użycia: ifconfig tap0 192.168.2.1 up
route - man, przykłady użycia, wyświetlanie i modyfikowanie tablicy routingowej
polecenie było omawiane w temacie A...
routing jest/był dokładnie omawiany na wykładzie...
dokładny opis można też znaleźć w książce:
Douglas E. Comer "Sieci komputerowe TCP/IP (cz. 1, Zasady, prot. i arch.)"
pppd - man, RFC 1661, wiki, impl. prot. PPP, który przenosi pakiety IP nad łączem szeregowym;
prot. PPP uruchamia się nad łączem szeregowym lub innym,
otrzymujemy sieć 2-węzłową, interf. sieciowe nazywają się pppX, ...

Urządzenia sieciowe występujące w zadaniach:
router - pol. ruter, operuje na pakietach IP,
przekazuje je z jednej sieci fizycznej do drugiej,
jest podłączony do kilku sieci, zatem ma kilka interf. sieciowych, np. eth0, eth1, ppp0, wlan0
posiada "tablice do trasowania/rutingu", które definiują gdzie skierować pakiet
(na podstawie docelowego adr ip, a dokładniej jego prefiksu, czyli adr sieci)
switch - pol. przełącznik, operuje na ramkach ethernetowych
dawniej bridge, most (?)
switch-e można w prosty sposób łączyć kablem typu skrętka, tworząc "drzewo"
zasada działania switch-a: jeśli nie wie gdzie wysłać ramke eth, to wysyła wszędzie;
poza tym dla kazdego gniazdka RJ45 pamięta jakie adresy eth się za nim kryją...
dokładniejszy opis: patrz google/wikipedia, a także: 1

Linux howtos i inne dotyczące sieci:
http://tldp.org/LDP/nag2/index.html
^ ogólny wstęp do tematyki sieci pod linux-em
http://www.tldp.org/HOWTO/NET3-4-HOWTO.html
^ net-tools czyli polecenia ifconfig, route, ...
http://www.tldp.org/HOWTO/Adv-Routing-HOWTO/index.html
^ tu jest opisane iproute2 (większe możliwości niż net-tools, ale na razie tego nie omawiamy!)

Prot. SNMP jako narzędzie do zarządzania siecią
Wiele urządzeń podłączonych do sieci zawiera tzw. "agenta SNMP"
agent ten utrzymuje pewne standardowe zmienne opisujące urządzenie
i jego działanie w sieci...
nazwy tych zmiennych tworzą drzewo (ścieżka korzeń-liść w tym drzewie to ciąg liczb),
klient SNMP (np. program scotty) potrafi odczytywać zmienne agentów SNMP;
jakie to zmienne? np. można się dowiedzieć jakie interf. sieciowe ma dany switch,
i jak wyglada ruch sieciowy przez te interf...
/// MH: ten opis jest niedokończony !!!

Zarządzanie siecią programem scotty (wiki, github, scotty.zip, folder)
1. włączanie tkined (po rozpakowaniu scotty.zip):
source ./e3; # lub . ./e3
PATH=$PATH:sciezka_do_kat_z_tclkit; # musi to być tclkit lin/32bit !!!
tkined &
2. jak wyłączyć tkined ?
tkined tworzy wiele procesów, dlatego najlepiej wyłączać go przez:
jobs; kill %1 (lub inny %nr)
3. ręczne rysowanie sieci
wybiera sie elem. graficzny lub narzędzie z palety po lewej stronie
środkowy guzik myszy służy do przemieszczania elem. graficznych
można zaznaczać wiele elem. poprzez klik + shift
itd...
komputery (węzły czyli nodes) są pokazywane w tkined jako ikonki;
węzły posiadają atrybuty, m.in. name i address, jeden z atrybutów jest widziany
(tu pojawia się problem z routerami, które mają kilka adresów...
ale można to rozwiązać rysując 1 router jako kilka ikonek obok siebie!)
4. scotty pozwala zarządzać siecią/monitorować sieć...
scotty jest rozszerzalny poprzez "tools" (są to skrypty!!)
po załadowaniu "tool-a" pojawia się dodatkowe menu (zawiera także help)
np. można wykryć hosty w sieci (tool "IP Discover"),
potem monitorować ich dostępność (tool "IP Monitor"),
jest obsługa prot SNMP i wiele innych rzeczy...
dokumentacja scotty: man. w bin3/man (jest tam opisany pakiet Tnm j. Tcl)
pakiet Tnm jest używany w "tools" (man Tnm w wersji .pdf)

Wskazówki ogólne do zadań o konfiguracji sieci:
1. jeśli chcemy aby węzeł A wysyłał pakiety do węzła B i otrzymywał odpowiedzi,
to należy starannie rozważyć trasę pakietu z A do B, i z B do A,
(uwzględniając adresy ip w pakiecie, czyli dst i src),
czy zawsze pakiet ma szansę znaleźć właściwą drogę ??
2. dla wszystkich zadań w których konfiguruje się routery linuxowe:
do sprawozdania dodać wydruki z polecenia "route -n" i "ifconfig" na tych routerach
3. sieć pod DOS-em: dos zachowuje się jak węzeł sieci dopiero gdy właczyć w nim
jakiś program sieciowy, który się nie kończy (np. "nc -listen 5000")


....................................................................
dla przypomnienia: instalacji maszyn wirtualnych VirtualBox + puppy linux, dosemu


Zadanie F.0a - scotty, VBox, wykrywanie sieci
Zainstaluj program scotty na VBox/puppy...
VBox jest konieczne ponieważ scotty używa prot ICMP do masowego pingowania;
trzeba skopiować do VBox/puppy tclkit oraz scotty.zip;
patrz instr. instalacji scotty wyżej!
pamiętać też o włączeniu sieci ("dhcpcd eth0" na VBox/puppy)
................
Spróbuj wykryć sieć 150.254.77 (tool "IP Discovery", opcja "Discover IP network"),
pojawi się dość gęsty obraz sieci...
Następnie wykonaj te czynności:
1. wybierz kilka maszyn i badaj ich RTT (round trip time)
w tym celu musisz włączyć tool "IP-Monitor", opcja Round Trip Time,
trzeba zwiększyć częstotliwość próbkowania,
oraz przeskalować wykresy żeby byly bardziej widoczne
2. spróbuj wykryc w sieci 150.254.77 agentow SNMP;
tool "SNM Troubles", opcja "SNMP Devices", wybrać wszystkie węzły przy pomocy
menu select, select by type NODE.
Uwaga: może się okazać że niczego nie wykryjemy (choć w poprzednich latach było inaczej;-);)
....................
Zapisz siec w pliku .tki, skopiuj tez raporty w dodatkowych oknach,
ich części wstaw do sprawozdania jako dowód wykonania zadania.

Zadanie F.0b - VBox, puppy + 2x dosemu
Przy pomocy VBox, puppy linuxa i dosemu zbuduj taką sieć:
sik_rys1
Skonfiguruj sieć tak aby można było pingować z puppy do dosemu (obu),
(na dosemu należy włączyc "nc -listen 5000" aby usługa ping działała !!),
...................
Następnie włącz możliwość pingowania MIĘDZY dwoma dos 1 i dos 2;
w tym celu należy:
1. włączyć w puppy funkcję routera:
echo 1 > /proc/sys/net/ipv4/ip_forward
2. wyłączyć zapory o ile jakieś są:
iptables -L -n; # pokazuje ustawienia
iptables -F; # usuwa reguły
iptables -P FORWARD ACCEPT; # polityka default
iptables -P INPUT ACCEPT
iptables -P OUPUT ACCEPT
3. zbadac pingowanie z dos 1 do dos 2;
w dos 2 musi być włączony program sieciowy (np. nc -listen 5000);
Do sprawozdania wstawić wydruki ping z dos 1 do dos 2,
oraz wydruki ifconfig i route -n z puppy.

Uwaga: z powodu problemów z dos-owym ping, można w zastępstwie użyć netcat (nc.exe) !!
...................
Dodatkowo prosze wykryć sieci 192.168 (2 sieci) programem scotty;
Uwaga: to zadanie może wymagać cierpliwości bo 192.168.*.* to adr klasy C,
i scotty będzie sprawdzał wszystkie sieci: 192.168.1, 192.168.2, ...
(jeśli będzie się to przeciągać to skopować wydruk z okna scotty i przerwać działanie)

Zadanie F.0c - VBox, 2x puppy + 2x dosemu
W tym zadaniu budujemy następującą intersieć:
sik_rys2
Jak widać musimy uruchomić 2 maszyny VBox z puppy linuxem,
potrzebujemy też sieci fizycznej łączącej puppy 1 i puppy 2 (to jest sieć C).
..................
W tym zadaniu w celu zbudowania sieci C należy użyć przekaznik.tcl
uruchomionego na hoście fizycznym, do którego podłączają się puppy linux-y.
Nad "podwójnym" połączeniem TCP między puppy 1 i puppy 2 uruchamiamy prot PPP,
który przenosi pakiety IP (czyli dowolny ruch sieciowy), to tzw tunel.
Najwygodniej zrobić to w konsoli tcl po nawiązaniu połączenia TCP;
zakładam, że podwójne połączenie TCP między puppy 1 i puppy 2 zostało nawiązane
oraz, że gniazdko jest w zmiennej $s (na obu końcach tego połączenia);
exec pppd notty noauth passive local 192.168.10.1:192.168.10.2 <@$s >@$s &
# włączyć na puppy 1, jako pierwsze!
exec pppd notty <@$s >@$s &
# włączyć na puppy 2, jako drugie!

Od tej chwili mamy siec łącząca puppy 1 i puppy 2,
interf. sieciowe nazywają się ppp0 i mają adresy 192.168.10.1 i 192.168.10.2,
konsole tcl można wyłączyć
...............
Teraz należy skonfigurować routery puppy 1 i puppy 2 tak aby
było możliwe pingowanie każdy z każdym między 4-ma maszynami
(dos 1, dos 2, puppy 1, puppy 2)
Wskazówka: z pkt widzenia puppy 1 sieci A i B są "odległe",
zatem niezbędne są odp reguły w tablicy routingowej puppy 1.
Uwaga 1: w zasadzie można by się posłużyć "default gateway-em" na puppy 1,
ale NIE róbmy tego, gdyż to zadanie przygotowuje do zadania F.9b,
w którym default gw puppy 1 wskazuje na router w Internecie...
Uwaga 2: zauważmy że tabl routingowa puppy musi zapewniać
komunikację przez tunel ppp jak i komunikację z przekaźnikiem !!

...............
W ramach zadania należy sprawdzić czy pingowanie działa na wszystkie możliwe sposoby,
tj każdy z każdym, i wstawić wydruki do sprawozdania !
należy TAKŻE wstawić wydruki ifconfig, route -n na puppy 1 i 2 !!

Uwaga: z powodu problemów z dos-owym ping, dopuszcza się pingowanie jedynie w kierunku puppy->dos,
lub użycie innych programów, np. netcat (nc.exe) !


....................................................................
poniższe zadania także polegają na konfiguracji routerów w sieci,
jednak są robione "na sucho" i bez VBox-a,
są też niżej punktowane...

Zadanie F.1 - ręczna konfiguracja małej sieci
Dostawca internetu przysłał nam modem ADSL i nic więcej;
posiadamy dwa komputery:
komp. A - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. B - z 1 kartą eth (eth0);
chcemy, aby komp. A pełnił funkcję routera;
eth0 w komputerze A ma być podłączone do modemu adsl
(zakładamy, że jest używany prot. PPPoE, zatem nad eth0 działa prot. PPP
i mamy interf. sieciowy ppp0, który ma przypisany publiczny adres ip,
przydzielony przez dostawcę internetu...)
komputery A i B mają używać adresów prywatnych 192.168.1.1 i 192.168.1.2
z komputera A komputer B ma być dostępny poprzez swój prywatny adres i odwrotnie
proszę wykonać następujące kroki:
1. zdecydować co z czym będzie połączone skrętką (topologia sieci)
2. przypisać komputerom adresy IP (i maski??)
3. ustawić odpowiednio tablice routingowe
4. w miarę możliwości podać polecenia linuxowe do pkt 2 i 3
5. napisać jak włączyć forwarding pakietów IP w ruterze A (poszukac informacji na ten temat)
6. jako nie-root nie możemy modyfikować tablic routingowych, ale możemy zobaczyć jak one wyglądają
wydając polecenie route; następnie możemy ręcznie zmodyfikować ten wydruk
proszę przygotować takie wydruki dla każdego komputera, tj dla A i dla B
7. całą sieć proszę narysować w programie tkined;
rysunek należy zapisać do pliku .tki i dołączyć do sprawozdania
(uwaga: tkined służy nie tylko do rysowanie sieci ale także ich monitorowania itp
o ile użyte adresy ip sa prawdziwe, oraz jesli uruchomiliśmy tkined jako root...)

Zadanie F.2
Zrób to samo co w zadaniu F.1 ale tym razem mamy 3 komputery;
komp. A - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. B - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. C - z 1 kartą eth (eth0);
komputer A ma być routerem, i ma być połączony z modemem adsl
mamy mieć dwie fizyczne/lokalne sieci (złożone z 2 węzłów) A i B oraz B i C
czyli B jest także routerem!
niech siec A/B ma nr. 192.168.1.0
a siec B/C ma nr. 192.168.2.0
należy wykonać wszystko to co w zadaniu F.1
w szczególności podać wydruki tablic routingowych dla komputerów A, B, C
(to chyba najważniejsze)
w obu naszych loklnych sieciach wszystkie 3 kompy mają być dostępne przez adresy prywatne!
innymi słowy: komputer X ma być dosŧępny z komputera Y dla X=A,B,C, Y=A,B,C
(internet jest dostępny tylko z komputera A)

22.05.2014 Uwaga na temat polecenia "route" i routingu...
reguł "route add -net 150.254.68.0 netmask 255.255.255.0 dev eth0" można używać, gdy
wiemy, że nr sieci, do której jesteśmy podłączeni przez eth0 to właśnie 150.254.68;
jeśli to jest tylko pośredni etap trasy pakietu to musimy używać parametru "gw" w poleceniu route:
np. "route add -net 150.254.68.0 netmask 255.255.255.0 gw 150.254.77.2"
wcześniej powinny wystąpić reguły, które określają przez jaki interf. sieciowy
jest dostępny gateway (=router) 150.254.77.2
(innymi słowy: jeśli określamy kolejny - NIE końcowy - etap trasy pakietu,
to musimy wskazać nie tylko sieć (interf. sieciowy), ale także który komputer w tej sieci
jest routerem/gatewayem !!!)

zobacz też ten przykład

Zadanie F.3
Zrób to samo co w zadaniu F.1 i F.2, znów mamy 3 komputery A,B,C,
ale tym razem dysponujemy switch-em z 4 portami (gniazdkami RJ45),
czyli zbudujemy 1 sieć fizyczną/lokalną, łączącą wszystkie 3 komputery,
siec ta ma mieć nr. 192.168.1.0;
komp. A znów będzie routerem i bedzie "bramą do internetu" (będzie połaczony z modemem adsl),
komp. A ma 2 karty eth, pozostałe po jednej...
wykonaj te same kroki co w zadaniu F.1

Zadanie F.4
Zrób to samo co w zadaniach F.1 i F.2, ale tym razem mamy 4 komputery:
komp. A - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. B - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. C - z 2 kartami eth (eth0 i eth1 w linuxie)
komp. D - z 1 kartą eth (eth0);
komputer A jest połączony z modemem adsl,
komputery A,B,C,D mają być wzajemnie dostępne poprzez adresy prywatne,
internet tylko w kompie A...
wykonaj te same kroki co w zadaniu F.1

....................................................................

Zadanie F.5 "Scotty/SNMP" (nowość!)
Wyprobuj narzędzia SNMP scotty-iego na jakimś hoście, na którym działa agent snmp...
To jedna z rzeczy które można zrobić w scottym bez uprawnien root-a!!!
(Zapytaj prowadzącego o ten host!)

agenci snmp utrzymują pewne std. zmienne opisujące urządzenie;
zmienne te można odczytywać i modyfikować;
zmienne tworzą "drzewo", nazwa zm. to ścieżka korzeń-liść;
elementy tej ścieżki to liczby, ale są też nazwy symb.
zmienne snmp są opisane w dokumentach .mib (???)
Użyj toolsów "SNMP-???" programu tkined;
trzeba "ręcznie" wprowadzić hosta do programu
i przypisać mu adres (przyda się tool "IP Layout").
Do sprawozdania wpisz różne uzyskane informacje...




uwaga: portal używa ciasteczek tylko do obsługi tzw. sesji...