Warsztaty z Sieci komputerowych Lista 5 1 Uwagi ogólne Podczas tych zajęć topologia sieci nie jest interesująca. Do pierwszej części zadań przyda się połączenie z Internetem. Pamiętaj o rozpoczęciu pracy poleceniem netmode lab. 2 DNS: Zadania do wykonania Zadanie 1. Uruchom program wireshark. Poleceniem #> dhclient eth0 skonfiguruj warstwę sieciową za pośrednictwem protokołu DHCP. Zobacz, jakie pakiety są wysyłane (negocjacja dzierżawy adresu powinna wykorzystywać 4 pakiety UDP). W szczególności sprawdź, jaki jest źródłowy adres IP w żądaniu DHCP (DHCP jest protokołem działającym w warstwie piątej, a jeszcze nie mamy adresu IP!). Sprawdź jaki adres IP został przydzielony interfejsowi eth0. Obejrzyj ustawienia adresu IP oraz DNS (plik /etc/resolv.conf). Poleceniem $> ps aux grep dhclient sprawdź, że program dhclient jest cały czas uruchomiony (działa on jako demon i co jakiś czas odnawia dzierżawę adresu IP). Zadanie 2. Odpytując iteracyjnie kolejne serwery DNS poleceniem dig, dowiedz się jaki jest adres IP związany z nazwą www.cs.uni.wroc.pl. Zacznij od jednego z serwerów głównych, np. 198.41.0.4. Pierwszym poleceniem będzie: $> dig www.cs.uni.wroc.pl @198.41.0.4 Następne polecenia kieruj do serwerów DNS, które są odpowiedzialne za odpowiednie strefy. Pozwól teraz wykonać pracę z poprzedniego akapitu poleceniu dig, uruchamiając polecenie: $> dig +trace www.cs.uni.wroc.pl @198.41.0.4 Jakie serwery DNS są odpytywane w tym przypadku? Sprawdź też, jaki adres IP jest związany z nazwą cs.uni.wroc.pl. 1
Zadanie 3. W tym poleceniu zapoznamy się z poleceniem host. Będziemy odpytywać w sposób rekurencyjny, pozwalając domyślnemu serwerowi DNS (temu, którego IP widnieje w pliku /etc/resolv.conf) na rozwiązywanie nazw w naszym imieniu. Poleceniem $> host -t ns ii.uni.wroc.pl sprawdź, jakie są serwery nazw dla tej domeny. Listę komputerów obsługujących pocztę dla tej domeny poznasz poleceniem $> host -t mx ii.uni.wroc.pl Poleceniem $> host -t ptr 156.17.4.1 sprawdź, jaka jest nazwa domeny związanej z tym adresem. O jaką poddomenę in-addr.arpa zostało wykonane zapytanie? Zadanie 4. W tym poleceniu zobaczymy jak zapisać dane wysyłane przez program dig i potem wykorzystać je w trybie wsadowym. 1 Poleceniem $> nc.traditional -u -l -p 10053 uruchom nc (wariant (nc.traditional) w trybie serwera UDP nasłuchującego na porcie UDP 10053. Związanie ze standardowym portem 53 wymagałoby uprawnień administratora. Z drugiej konsoli wykonaj polecenie $> dig -p 10053 onet.pl @127.0.0.1 +tries=1 Wyśle to jedno zapytanie DNS o adres IP dla nazwy onet.pl do naszego serwera UDP. Zapytanie to (w binarnej i nieczytelnej postaci) zostało wypisane na ekranie. Ze względu na binarne dane, nie należy kopiować ich myszką, lecz przerwać wykonanie serwera UDP i uruchomić go w trybie zapisywania do pliku i na standardowe wyjście: $> nc.traditional -u -l -p 10053 > zapytanie_dns Następnie należy ponowić zapytanie DNS. Zawartość szesnastkową wysyłanego datagramu można podejrzeć poleceniem $> hexdump -C zapytanie_dns powinien tam występować ciąg onet.pl. Teraz zapisane zapytanie możemy wysłać jakiemuś serwerowi DNS, np. serwerowi 8.8.8.8 firmy Google. W tym celu wykonaj polecenie $> nc.traditional -q 1 -u 8.8.8.8 53 < zapytanie_dns Co prawda odpowiedź zostanie wyświetlona na ekranie w mało czytelnej postaci binarnej, ale jej interpretację można sprawdzić w wiresharku. 1 W przypadku polecenia dig taka operacja nie ma większego sensu, bo polecenie dig łatwo wbudować we własny program. Ale ta sama technika umożliwia nagranie i późniejsze powtórzenie poleceń wysyłanych przez przeglądarkę WWW czy też komunikator internetowy; program nc może działać nawet na innym komputerze i nie musimy rozumieć, co jest przesyłane! 2
3 WLAN: Zadania do wykonania Przed rozpoczęciem tej części zdekonfiguruj interfejs eth0 poleceniami #> dhclient -r eth0 #> ifconfig eth0 0.0.0.0 down Pierwsze polecenie zwalnia dzierżawiony adres IP (potwierdź ten fakt w wiresharku!), co jest miłym, choć nie absolutnie koniecznym gestem w stosunku do serwera DHCP i zatrzymuje demona dhclient. Zadanie 5. Aktywuj interfejs wlan0 poleceniem Poleceniem #> iwlist wlan0 scan wyświetl dostępne punkty dostępowe. Widocznych powinno być około dwóch punktów należących do instytutowej sieci e-stud-wifi oraz sieć w pracowni o identyfikatorze lab109. Na podstawie wyświetlanych informacji spróbuj odczytać, jakie jest szyfrowanie poszczególnych sieci. Jakie prędkości transmisji obsługują te sieci? Na jakich kanałach nadają te punkty? Najpierw wykorzystamy program iwconfig do konfiguracji warstwy łącza danych łącząc się z punktem dostępowym w pracowni. Zauważ, że w przypadku Ethernetu nie musieliśmy konfigurować warstwy drugiej. Wydaj polecenie #> iwconfig wlan0 essid lab109 Poleceniem iwconfig sprawdź, że co prawda identyfikator sieci został ustalony, ale nadal nie jesteśmy związani ze stacją bazową (not associated). Wynika to z tego, że sieć ta jest zabezpieczona kluczem WPA-PSK, którego jeszcze nie podaliśmy. Szyfrowanie i uwierzytelnianie WPA obsługuje w Linuksie specjalny demon wpa supplicant. W dowolnym katalogu utwórz plik konfiguracyjny wpa.conf z następującą zawartością: ctrl_interface=dir=/var/run/wpa_supplicant network={ ssid="lab109" scan_ssid=1 key_mgmt=wpa-psk psk="bardzotajne" } Następnie uruchom demona w tle poleceniem #> wpa_supplicant -c wpa.conf -i wlan0 -B 3
Od tej pory warstwa druga jest już skonfigurowana, co można sprawdzić poleceniem iwconfig. (Jeśli komputer nadal nie jest związany ze stacją bazową, to nie ma sensu próbować konfigurować warstwy sieci!) Do konfiguracji warstwy sieci wystarczy wykonać polecenie #> dhclient wlan0 Po konfiguracji warstwy drugiej i trzeciej, sprawdź zawartość pliku /etc/resolv.conf, tablicę routingu i działanie sieci poleceniem ping. W parach sprawdźcie również jaka jest przepustowość takiego bezprzewodowego łącza. W tym celu pierwsza osoba powinna uruchamić polecenie $> iperf -s zaś druga polecenie $> iperf -c ip pierwszego komputera Jak bardzo spada przepustowość, jeśli uruchamiacie to polecenie wszyscy naraz? Zakończ demona wpa supplicant wpisując #> wpa_cli terminate a następnie zdekonfiguruj interfejs wlan0 poleceniami #> dhclient -r wlan0 #> iwconfig wlan0 essid off #> ifconfig wlan0 0.0.0.0 down Zadanie 6. W ostatnim zadaniu stworzymy sieci ad-hoc (tj. bez punktu dostępowego). Włączcie interfejs wlan0 poleceniem Połączcie się w kilka grup. 2 Niech każda grupa wybierze sobie nazwę sieci i kanał. Najlepiej wybrać wolny kanał; aktualną listę zajętych kanałów można wyświetlić poleceniem #> iwlist wlan0 scan Wyłącz interfejs poleceniem #> ifconfig wlan0 down a następnie przełącz go w odpowiedni tryb poleceniem #> iwconfig wlan0 mode ad-hoc 2 Nieznane są mi bliżej algorytmy sieci ad-hoc stosowane w Linuksie. Grupy dwuosobowe powinny działać bez problemu, ale większe czasem nie chcą. 4
Ustal nazwę sieci poleceniem #> iwconfig wlan0 essid nazwa Kanał wybierz poleceniem #> iwconfig wlan0 freq numer Uaktywnij interfejs poleceniem Następnie wewnątrz każdej grupy przypisz kartom adresy IP z jednej sieci IP i sprawdź czy komputery widzą się nawzajem. Ewentualne oroblemy możne próbować diagnozować poleceniem iwconfig wlan0: każda ze stacji w grupie powinna mieć taką samą nazwę ESSID, taką samą częstotliwość i taki sam adres komórki (cell). Sprawdź połączenie poleceniem ping i przepustowość programem iperf. Lista i materiały znajdują się pod adresem http://www.ii.uni.wroc.pl/~mbi/dyd/ 5