Ćwiczenie ma na celu zapoznanie się z dostępnymi programami do analizy sieci oraz ocenę ich przydatności.
Analizie poddane zostaną programy ping, traceroute, ipconfig oraz Wireshark w systemie Windows.
Program służący do diagnostyki połączeń TCP/IP poprzez wysłanie odpowiedniego pakietu do badanego węzła i oczekiwanie na potwierdzenie odbioru.
Pozwala to na sprawdzenie fizycznego oraz logicznego połączenia pomiędzy komputerami, a także określenie jakości tego połączenia przez możliwość mierzenia liczby zagubionych pakietów oraz czasu potrzebnego na przesłanie danych w obie strony.
Wysyłanie pakietów ICMP Echo Request w zadanej ilości lub nieprzerwanie oraz parametrem TTL1
Określanie czasu oczekiwania na odpowiedź
Wyświetlanie statystyk dla poszczególnego zapytania oraz statystyk globalnych (utracone pakiety, czas trwania)
Możlowość podania nazwy DNS zdalnego hosta zamiast adresu IP
Wyświetlanie nazwy docelowego hosta, o ile ją udostępnia
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
Gdzie:
-t Odpytuje określonego hosta do czasu zatrzymania.
-a Tłumacz adresy na nazwy hostów.
-n count Liczba wysyłanych powtórzeń żądania.
-l size Rozmiar buforu transmisji.
-f Ustaw w pakiecie flagę "Nie fragmentuj". (tylko IPv4).
-i TTL Czas wygaśnięcia.
-v TOS Typ usługi. (tylko IPv4).
-r count Rejestruj trasę dla przeskoków. (tylko IPv4).
-s count Sygnatura czasowa dla przeskoków. (tylko IPv4).
-j host-list Swobodna trasa źródłowa wg listy host-list. (tylko IPv4).
-k host-list Ściśle określona trasa źródłowa wg listy host-list. (tylko IPv4).
-w timeout Limit czasu oczekiwania na odpowiedź w milisekundach.
-R Użyj nagłówka routingu do sprawdzenia odwrotnej trasy (tylko Ipv6).
-S srcaddr Użyj danego adresu źródłowego.
-4 Wymuś korzystanie z IPv4.
-6 Wymuś korzystanie z IPv6.
Program wykorzystuje mechanizmy programu ping w celu zbadania ścieżki, którą przebywa pakiet do hosta o zadanym adresie IP.
Mechanizm działania opiera się o wysyłanie pakietów ICMP Echo Request z TTL ustawionym na 1 i zwiększaniu tej wartości dopóki pakiet nie osiągnie celu. Jest to prosta obserwacja czasu życia pakietu, gdyż pakiet przechodzący przez węzeł sieci ma zmniejszany atrybut TTL o 1. Osiągnięcie wartości TTL równej zero oznacza odrzucenie pakietu i odesłanie odpowiedzi Time Exceeded.
Wyświetlanie poszczególnych węzłów na trasie pakietu oraz ich nazw, o ile są udostępniane
Określanie maksymalnej liczby przeskoków do zbadania
Określanie czasu oczekiwania na odpowiedź
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
Gdzie:
-d Nie rozpoznawaj adresów jako nazw hostów.
-h maximum_hops Maksymalna liczba przeskoków w poszukiwaniu celu.
-j host-list Swobodna trasa źródłowa wg listy host-list. (tylko IPv4).
-w timeout Limit czasu oczekiwania na odpowiedź w milisekundach.
-R Użyj nagłówka routingu do sprawdzenia odwrotnej trasy (tylko Ipv6).
-S srcaddr Użyj danego adresu źródłowego.
-4 Wymuś korzystanie z IPv4.
-6 Wymuś korzystanie z IPv6.
Program wyświetla aktualną konfigurację TCP/IP dla interfejsu sieciowego. Pozwala na ręczną konfigurację połączenia oraz ustawień DHCP i DNS.
Wyświetlanie szczegółowych informacji konfiguracyjnych danego interfejsu sieciowego
Zwalnianie i przydzielanie adresu od serwera DHCP
Wyświetlanie, odświeżanie i czyszczenie bufora nazw DNS
ipconfig [/allcompartments] [/all | /renew [adapter] | /release [adapter] | /renew6 [adapter] | /release6 [adapter] | /flushdns | /displaydns | /registerdns | /showclassid adapter | /setclassid adapter [classid] | /showclassid6 adapter | /setclassid6 adapter [classid]]
Gdzie:
Adapter Nazwa połączenia
/all Wyświetla pełne informacje o konfiguracji.
/release Zwalnia adres IPv4 dla określonej karty.
/release6 Zwalnia adres IPv6 dla określonej karty.
/renew Odnawia adres IPv4 dla określonej karty.
/renew6 Odnawia adres IPv6 dla określonej karty.
/flushdns Czyści bufor programu rozpoznającego nazwy DNS.
/registerdns Odświeża wszystkie dzierżawy DHCP i ponownie rejestruje nazwy DNS.
/displaydns Wyświetla zawartość buforu programu rozpoznającego nazwy DNS.
/showclassid Wyświetla wszystkie identyfikatory klas IPv4 DHCP dozwolone dla karty.
/setclassid Modyfikuje identyfikator klasy IPv4 DHCP.
/showclassid6 Wyświetla wszystkie identyfikatory klas IPv6 DHCP dozwolone dla karty.
/setclassid6 Modyfikuje identyfikator klasy IPv6 DHCP.
Jest to analizator pakietów sieciowych z interfejsem graficznym. Pozwala on na przechwytywanie wysyłanych i odbieranych informacji na interfejsie sieciowym.
Przechwytywanie ruchu sieciowego
Analiza poszczególnych pakietów
Zapisywanie i przeglądanie historii
Filtrowanie wyników
Interfejs programu jest graficzny, więc znalezienie poszukiwanej funkcji nie stanowi problemu.
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Pinging wp.pl [212.77.100.101] with 32 bytes of data:
Reply from 212.77.100.101: bytes=32 time=35ms TTL=248
Reply from 212.77.100.101: bytes=32 time=46ms TTL=248
Reply from 212.77.100.101: bytes=32 time=49ms TTL=248
Reply from 212.77.100.101: bytes=32 time=41ms TTL=248
Reply from 212.77.100.101: bytes=32 time=67ms TTL=248
Ping statistics for 212.77.100.101:
Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 35ms, Maximum = 67ms, Average = 47ms
Zapytanie pętli zwrotnej zostało zakończone sukcesem. Drugie zapytanie wykazało sprawne działanie sieci oraz dość niskie opóźnienia.
Tracing route to wp.pl [212.77.100.101]
over a maximum of 30 hops:
1 1 ms 2 ms 1 ms dir-320 [192.168.0.1]
2 * * * Request timed out.
3 * * * Request timed out.
4 * * * Request timed out.
5 * * * Request timed out.
6 56 ms 52 ms 49 ms upc-jra.10ge.task.gda.pl [153.19.0.5]
7 77 ms 29 ms 40 ms wp-jra.task.gda.pl [153.19.102.6]
8 38 ms 51 ms 53 ms do-r2.rtrd1.adm.wp-sa.pl [212.77.96.98]
9 63 ms 52 ms 49 ms www.wp.pl [212.77.100.101]
Trace complete.
Tracing route to google.com [209.85.135.104]
over a maximum of 30 hops:
1 1 ms 1 ms 10 ms dir-320 [192.168.0.1]
2 * * * Request timed out.
3 * * * Request timed out.
4 * * * Request timed out.
5 18 ms 27 ms 30 ms 213.46.178.21
6 33 ms 57 ms 47 ms de-fra01a-rd3-xe-1-2-0.aorta.net [213.46.160.33]
7 87 ms 85 ms 84 ms 84-116-130-138.aorta.net [84.116.130.138]
8 115 ms * 110 ms 72.14.198.165
9 161 ms 82 ms 89 ms 209.85.248.12
10 * 108 ms 96 ms 72.14.238.128
11 179 ms 231 ms 136 ms 209.85.241.189
12 106 ms 102 ms 109 ms 72.14.239.54
13 102 ms 113 ms 110 ms mu-in-f104.1e100.net [209.85.135.104]
Trace complete.
Oba wyniki pokazują, że ruch kierowany jest przez wiele niezależnych węzłów sieci. Gwiazdki wskazują na nieotrzymanie odpowiedzi, co wiąże się z utraceniem pakietu lub konfiguracją routerów, które nie wysłały stosownego komunikatu.
Nie wszystkie routery udostępniły swoją nazwę hosta. Pierwsza informacja wskazuje na połączenie z routerem bezprzewodowym o nazwie dir-320 i adresie 192.168.0.1, który znajduje się u mnie w mieszkaniu i ma spore opóźnienia podczas obciążenia sieci.
Należy też się liczyć z możliwością ominięcia jakiegoś węzła sieci. Routery mogą nie zmniejszać wartości TTL, co transparentnie zwiększa liczbę przeskoków.
Windows IP Configuration
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . : chello.pl
Link-local IPv6 Address . . . . . : fe80::a9fe:c20e:30bb:56a1%14
IPv4 Address. . . . . . . . . . . : 192.168.0.101
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
Ethernet adapter Local Area Connection:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Tunnel adapter isatap.chello.pl:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . : chello.pl
Tunnel adapter 6TO4 Adapter:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Tunnel adapter Local Area Connection* 11:
Connection-specific DNS Suffix . :
IPv6 Address. . . . . . . . . . . : 2001:0:5ef5:73ba:249a:9aa:a6b2:f31d
Link-local IPv6 Address . . . . . : fe80::249a:9aa:a6b2:f31d%13
Default Gateway . . . . . . . . . : ::
Tunnel adapter isatap.{2BE85170-43F0-4902-9865-7AF4BB01AB5B}:
Media State . . . . . . . . . . . : Media disconnected
Connection-specific DNS Suffix . :
Wiele wpisów o strukturze (pominięte ze względu na liczność):
www.im.pwr.wroc.pl
----------------------------------------
Record Name . . . . . : www.im.pwr.wroc.pl
Record Type . . . . . : 5
Time To Live . . . . : 69266
Data Length . . . . . : 8
Section . . . . . . . : Answer
CNAME Record . . . . : alfa.im.pwr.wroc.pl
Program wyświetlił aktualną konfigurację TCP/IP, co w przypadku problemów z połączeniem może wskazać potencjalną przyczynę. Z danych wyświetlonych można wywnioskować iż moim dostawcą internetowym jest UPC.
Polecenie ipconfig także wyświetla adresy DNS odwiedzonych stron, więc pośrednio wyświetla nieuporządkowaną historię odwiedzanych stron.
Pierwsze cztery wpisy podsumowujące z pliku przykładowego ze strony Wireshark dotyczące komunikacji telnet:
1 0.000000 10.0.0.1 10.0.0.2 TCP 14686 > telnet [SYN] Seq=0 Win=4128 Len=0 MSS=1460
2 0.008032 10.0.0.2 10.0.0.1 TCP telnet > 14686 [SYN, ACK] Seq=0 Ack=1 Win=4128 Len=0 MSS=1460
3 0.016001 10.0.0.1 10.0.0.2 TCP 14686 > telnet [ACK] Seq=1 Ack=1 Win=4128 Len=0
4 0.024047 10.0.0.1 10.0.0.2 TELNET Telnet Data ...
Zawartość pierwszego pakietu:
0000 c2 02 69 49 00 00 c2 01 69 49 00 00 08 00 45 c0 ..iI.... iI....E.
0010 00 2c c1 1a 00 00 ff 06 e5 ee 0a 00 00 01 0a 00 .,...... ........
0020 00 02 39 5e 00 17 2e 12 97 9f 00 00 00 00 60 02 ..9^.... ......`.
0030 10 20 74 dd 00 00 02 04 05 b4 00 00 . t..... ....
Możemy prześledzić całą komunikację z siecią i przeglądać ją na bieżąco. Podsumowanie zawiera: numer pakietu, adres źródła, adres docelowy, protokół oraz dodatkowe informacje. Narzędzie pozwala na analizę każdego pakietu w formie surowej lub rozwikłanej.
Program ping szybko i sprawnie określa istnienie połączenia pomiędzy komputerami. Program tracert wykorzystuje mechanizm ping w celu odnalezienia większości węzłów sieci na drodze przesyłanego pakietu. Polecenie ipconfig pozwala szybko sprawdzić aktualną konfigurację interfejsów sieciowych komputera. Narzędzie Wireshark idealnie nadaje się do przechwytywania i przeglądania ruchu sieciowego oraz analizy otrzymanych danych.
TTL – czas życia (tutaj pakietu)↩