Celem ćwiczenia jest sprawdzenie czy da się pracować w sieci lokalnej
korzystając z adresów „Link-local” otrzymywanych automatycznie w sieci
169.254.0.0/16 (lub korzystając z adresów lokalnych w sieci IPv6).
Podstawy „teoretyczne”
Komputery w sali 604/B1 skonfigurowane są tak, aby automatycznie
otrzymywać adres IP z serwera DHCP, który znajduje się pod adresem
192.168.6.94.
Teoria mówi tyle, że w przypadku, gdy serwer nie może/nie chce[1]
komputer automatycznie przydziela sobie adres z sieci 169.254.0.0/16
(sprawdzając tylko czy wybrany adres nie jest już zajęty). Działa to
raczej tylko w Windows/Mac OS. Skonfigurowanie linuksa by zachowywał się
podobnie jest problematyczne.
Gdy serwer DHCP powróci (stanie się znowu dostępny) komputer powinien
się przekonfigurowć do pracy normalnej.
Można również poprosić, aby oprogramowanie obsługujące kartę
skonfigurowało ją w tym trybie. To można osiągnąć pod linuksem dosyć
łatwo.
Konfiguracja sieci
Komputery w sieci podłączone są w trzech grupach (przez switche) do
sieci budynku B1. Trzeba z gniazdka w ścianie wyjąć kabel sieciowy i
zrestartować komputer. Powinno to zasymulować sytuację, w której
komputery nie będą miały kontaktu z serwerem DHCP.
Zadania do wykonania
Część pierwsza
Windows:
Pracujemy w grupach (wyznaczonych przez wspólne switche).
Ustalamy aktualny adres IP komputera.
W sposób skoordynowany[2] odłączamy switch od sieci (trzeba wyjąć
kabel z gniazdka w ścianie).
Restartujemy komputery.
Sprawdzamy jaki jest adres interfejsu sieciowego (polecenie
ipconfig/ip, tablicę routingu (netstat -rn lub ip
route).
Sprawdzamy (poleceniem ping) czy jest kontakt z innymi
komputerami (potrzebna współpraca i wzajemne udostępnianie adresów
IP). Uwaga: Firewall systemu Windows skutecznie blokuje pakietry
ping. Trzeba go na czas testów wyłączyć. Pracę programu ping można przerwać naciskając równocześnie dwa
klawisze: „Ctrl” i „C”. Program się zatrzyma i wyswietli
podsumowanie.
Podłączamy switche do sieci i sprawdzamy po jakim czasie (i czy)
wróciły „normalne” adresy sieciowe i czy jest łączność z resztą
Internetu.
Część druga
Wykonanie części drugiej jest nieco ryzykowne (nie dla studentów tylko
dla administratora — może okazać się, że studenci na następnych
zajęciach nie będą mieli dostępu do sieci). Dodatkowo, trzeba
administartora poprosić o jego hasło[3] Ale zaryzykujemy.
Linux:
Należy zrekonfigurować parametry połączenia sieciowego. W tym celu
należy kliknąć prawym klawiszem myszy na ikonę połączenia sieciowego
(
) i wybrać z menu: Modyfikuj połączenia pozycje
,,Połączono z siecią Prze…”
Z listy wybieramy Ustawienia sieci przewodowej i klikamy w koło
zębate.
Otwiera się okno z podstawowymi informacjami o połączeniu.
Wybieramy zakładkę (patrz rys. 2) IPv4 i zastępujemy
Metodę Automatycznie (DHCP) na Tylko Link-local (trzeba kliknąć
w kropeczkę koło tego napisu).
Zatwierdzamy (naciskając klawisz Zapisz. Będzie potrzebne hasło
,,administratora”. Zostanie przekazane podczas zajęć.
To, niekoniecznie oznacza, że już uległy zmiany ustawienia. Klikamy
ponownie w ikonkę
i z menu wybieramy Połączenie
przewodowe 1 co powinno spowodować restart oprogramowania
sieciowego. Dla pewności sprawdzamy adres IP (Informacje o
połączeniu).
Sprawdzamy tablicę routingu.
Sprawdzamy możliwości komunikacji między komputerami używając
polecenia ping. (Uwaga: trzeba dogadać się najbliższymi
kolegami/koleżankami jaki jest adres IP ich komputera).
Gdy komputer odpowiada próbujemy zalogować się na sąsiednim (na
dobrą sprawę na każdym inny, dowolnym) komputerze używając polecenia
slogin:
slogin user@169.254.xxx.yyy
gdzie xxx i yyy to numer węzła sąsiedniego komputera, a user
nazwa użytkownika[4] (własny numer legitymacji poprzedzony literką
a). Hasło — podobnie jak podczas logowania na komputerze
lokalnym. (Adres IP musimy dostać od operatora tego komputera.)
Na koniec restartujemy komputery. Automagicznie powinny wrócić
pierwotne ustawienia. Jeżeli nie — administrator ma kłopot.
Część trzecia
Pomysł jest taki, żeby sprawdzć czy adresy IPv6, które mają
automatycznie przydzielone interfejsy sieciowe nadają się do komunikacji
między komputerami.
Odpytujemy kolegę o adres IPv6 jego komputera (polecenie
ifconfig albo ip a; to drugie jest bardziej zwięzłe).
Sprawdzamy jak się nazywa nasz interfejs sieciowy (również
ifconfig albo ip -a, ale na naszym komputerze)
2: enp0s31f6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether e8:39:35:43:42:3e brd ff:ff:ff:ff:ff:ff
inet 192.168.6.87/26 brd 192.168.6.127 scope global dynamic enp0s31f6
valid_lft 33116sec preferred_lft 33116sec
inet6 fe80::65f6:c3b8:a9c9:1451/64 scope link
valid_lft forever preferred_lft forever
Linia oznaczona numerkiem 2 — zawiera nazwę interfejsu (enp0s31f6); linia
zawierająca inet6 zawiera adres IP v6 tego interfejsu (fe80::e565:6231:d639:2fba)[5]: pierwsze 64 bity (fe80::) to adres
sieci[6]; ostatnie 64 bity (e565:6231:d639:2fba) to adres węzła.
Polecenie ping ma nieco bardziej skomplikowany wygląd. Najpierw
pingujemy lokalny interfejs (po -I podajemy nazwę interfejsu
sieciowego; w laboratorium będzie to, najprawdopodobniej, enp0s31f6:
ping6 -I enp0s31f6 fe80::e565:6231:d639:2fba
PING fe80::e565:6231:d639:2fba(fe80::e565:6231:d639:2fba) from fe80::e565:6231:d639:2fba%enp0s31f6 enp0s31f6: 56 data bytes
64 bytes from fe80::e565:6231:d639:2fba%enp0s31f6: icmp_seq=1 ttl=64 time=0.042 ms
64 bytes from fe80::e565:6231:d639:2fba%enp0s31f6: icmp_seq=2 ttl=64 time=0.123 ms
64 bytes from fe80::e565:6231:d639:2fba%enp0s31f6: icmp_seq=3 ttl=64 time=0.062 ms
64 bytes from fe80::e565:6231:d639:2fba%enp0s31f6: icmp_seq=4 ttl=64 time=0.127 ms
^C
A teraz zdalny (i znowu, po znaku % trzeba podać nazwę interfejsu
(pod linuksem będzie to, najprawdopodobniej, enp0s31f6, ale trzeba
sprawdzić używając polecenie ip addr; pod windowsem — są szanse, że
zadziała bez dodawania numeru interfejsu).
ping6 fe80::b189:dfa:1fa5:3ec2%enp0s31f6
PING fe80::b189:dfa:1fa5:3ec2%enp0s31f6(fe80::b189:dfa:1fa5:3ec2%enp0s31f6) 56 data bytes
64 bytes from fe80::b189:dfa:1fa5:3ec2%enp0s31f6: icmp_seq=1 ttl=64 time=148 ms
64 bytes from fe80::b189:dfa:1fa5:3ec2%enp0s31f6: icmp_seq=2 ttl=64 time=273 ms
64 bytes from fe80::b189:dfa:1fa5:3ec2%enp0s31f6: icmp_seq=3 ttl=64 time=83.3 ms
64 bytes from fe80::b189:dfa:1fa5:3ec2%enp0s31f6: icmp_seq=4 ttl=64 time=218 ms
64 bytes from fe80::b189:dfa:1fa5:3ec2%enp0s31f6: icmp_seq=5 ttl=64 time=242 ms
^C
--- fe80::b189:dfa:1fa5:3ec2%enp0s31f6 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 83.307/193.328/273.878/68.746 ms
Zwracam uwagę na nazwę programu ping: teraz jest to
ping6 (ale może też być ping -6)
Zwracam uwagę, że teraz trzeba podawać nazwę interfejsu
(parametr -I enp0s31f6) albo dodawać nazwę interfejsu po docelowym
adresie IP, oddzielając ją od adresu znakiem %:
fe80::b189:dfa:1fa5:3ec2%enp0s31f6
Niestety, nie wszystkie programy pozwalają na użycie wśród
parametrów nazy interfejsu. Wówczas pozostaje tylko ta druga
metoda.
Można próbować użyć polecenia ssh/slogin do sąsiedniego
komputera: