Programy diagnostyczne protokołu TCP/IP

Transkrypt

Programy diagnostyczne protokołu TCP/IP
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
Programy diagnostyczne protokołu TCP/IP
Do stosu protokołów TCP/IP firmy Microsoft dołączone zostały podstawowe programy narzędziowe.
Programy te można podzielić na trzy rodzaje:
1. Programy diagnostyczne
2. Programy komunikacyjne (np. FTP, Telnet)
3. Programy serwerowe (np. Usługa TCP/IP Priniting, IIS, czyli Internet Information Services)
PROGRAM ARP
Wiemy o tym, że ARP (Address Resolution Protocol) jest protokołem umożliwiającym przekształcenie adresów protokółów sieciowych (IP) na 48-bitowe adresy kart sieciowych (MAC).
W momencie, gdy protokół warstwy Internetu chce wysłać datagram do warstwy dostępu
do sieci, warstwa ta musi określić adres docelowy komputera (MAC), do którego ma przekazać
datagram. Jeśli jeszcze go nie zna, rozsyła zapytanie rozgłoszeniowe (broadcast) z docelowym
adresem MAC równym FF-FF-FF-FF-FF-FF do wszystkich komputerów w danej sieci lokalnej.
Ramka rozgłoszeniowe musi zostać odebrana przez wszystkie stacje. Komputer, który rozpoznaje zawarty w ramce swój adres IP i udziela odpowiedzi, podając swój adres MAC.
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
Nagłówek Ethernet
Nagłówek ARP
Adres źródłowy
Adres docelowy
Adres źródłowy
Adres docelowy
00:60:52:0A:A7:EF
FF:FF:FF:FF:FF:FF
192.168.1.1
192.168.1.2
Jaki jest twój
adres MAC?
Uproszczona forma zapytania ARP
W tym momencie protokół ARP na komputerze źródłowym uzupełnia swoją tablicę danych
o adres docelowego komputera. Następnym razem, w przypadku ponowienia transmisji do tej
stacji, już bez rozsyłania zapytania ARP datagram zostanie skierowany na adres odczytany z
tablicy ARP.
PROXY-ARP
W przypadku tzw. proxy-arp router jest urządzeniem pośredniczącym dla stacji docelowej.
Przykładem takiej konfiguracji jest modemowe połączenie punkt do punktu (point-to-point) stacji roboczej z routerem. Po pojawieniu się w sieci zapytania o adres IP urządzenia połączonego z
routerem, router stwierdza, że poszukiwany adres IP pasuje do jednego z podłączonych do niego urządzeń. Odpowiada na zapytanie, udając, że dany adres IP jest jego własnym adresem.
Urządzenie nadające przyporządkowuje w swojej tablicy ARP adres IP komputera docelowego do
adresu MAC routera i kieruje do niego transmisję. Router przekazuje dalej pakiety do stacji docelowej.
APLIKACJA ARP W WINDOWS
ARP jest aplikacją konsoli tekstowej i znajduje się w c:\windows\system32 (uznawana jako aplikacja typu klient). Pozwala podejrzeć aktualną tablicę translacji ARP oraz wpłynąć na jej
zawartość.
Najistotniejsze polecenia:
o
ARP -s dodaje hosta i kojarzy adres internetowy z fizycznym adresem karty. Adresowanie statyczne
o
ARP -d usuwa określonego hosta
o
ARP -a wyświetla bieżące wpisy protokołu ARP
PROGRAM HOSTNAME
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
HOSTNAME jest również aplikacją konsoli tekstowej i znajduje się tak jak ARP w katalogu
c:\windows\system32 (uznawana jako aplikacja typu klient). Wyświetla nazwę NetBIOS komputera.
PROGRAM IPCONFIG
IPCONFIG wyświetla wszystkie bieżące wartości konfiguracji sieci protokołu
TCP/IP oraz odświeża ustawienia protokołu dynamicznej konfiguracji hosta (DHCP,
Dynamic Host Configuration Protocol) i systemu DNS (Domain Name System).
IPCONFIG to aplikacja konsoli tekstowej. Znajduje się w katalogu c:\windows\system32.
Polecenie IPCONFIG jest najbardziej użyteczne na komputerach, które skonfigurowano do
automatycznego pozyskiwania adresów IP. Użytkownicy mogą ustalić, które wartości konfiguracji protokołu TCP/IP zostały ustawione przy użyciu protokołu DHCP, funkcji APIPA (Automatic Private IP Addressing) lub konfiguracji alternatywnej.
Warto zapamiętać, że jeżeli nazwa określona w parametrze karta zawiera spacje, należy
ująć nazwę karty w cudzysłów (czyli "nazwa karty").
Parametry związane z poleceniem IPCONFIG:
o
IPCONFIG /all - wyświetla pełną konfigurację protokołu TCP/IP dla wszystkich
kart. Polecenie ipconfig bez tego parametru wyświetla tylko adres IP, maskę podsieci i domyślną bramę każdej karty. Karty mogą reprezentować interfejsy fizyczne,
takie jak zainstalowane karty sieciowe lub interfejsy logiczne, na przykład połączenia telefoniczne
o
IPCONFIG /renew [karta] - odnawia konfigurację protokołu DHCP dla wszystkich
kart (jeżeli nie określono karty) lub dla określonej karty, jeżeli dołączono parametr
karta. Ten parametr jest dostępny tylko na komputerach, których karty skonfigurowano do automatycznego pozyskiwania adresów IP. Aby określić nazwę karty,
należy wpisać nazwę, która pojawia się po użyciu polecenia ipconfig bez parametrów
o
IPCONFIG /release [karta] - wysyła komunikat DHCPRELEASE do serwera DHCP,
aby zwolnić bieżącą konfigurację protokołu DHCP i odrzucić konfigurację adresów
IP dla wszystkich kart (jeżeli nie określono karty) lub dla określonej karty, jeżeli
dołączono parametr karta. Ten parametr wyłącza obsługę protokołu TCP/IP dla
wszystkich kart skonfigurowanych do automatycznego pozyskiwania adresów IP
o
IPCONFIG /flushdns - opróżnia i resetuje zawartość pamięci podręcznej programu rozpoznawania nazw klientów DNS. Podczas rozwiązywania problemów z systemem DNS można używać tej procedury do odrzucania negatywnych wpisów z
pamięci podręcznej oraz innych wpisów, które zostały dodane dynamicznie
o
IPCONFIG /displaydns - wyświetla zawartość pamięci podręcznej programu rozpoznawania nazw klientów DNS, w której znajdują się zarówno wpisy wstępnie załadowane z lokalnego pliku Hosts, jak i ostatnio uzyskane rekordy zasobów dla
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
kwerend nazw rozpoznawanych przez komputer. Usługa Klient DNS używa tych informacji do szybkiego rozpoznawania często poszukiwanych nazw przed wykonaniem kwerendy na skonfigurowanych serwerach DNS
o
IPCONFIG /registerdns - inicjuje rejestrację nazw DNS i adresów IP skonfigurowanych na komputerze. Tego parametru można używać do rozwiązywania problemów z nieudaną rejestracją nazw DNS lub dotyczących dynamicznej aktualizacji
między klientem i serwerem DNS bez ponownego rozruchu komputera klienckiego
o
IPCONFIG /showclassid [karta] - wyświetla identyfikator klasy DHCP określonej
karty. Aby obejrzeć identyfikator klasy DHCP wszystkich kart, należy użyć gwiazdki
(*) jako symbolu wieloznacznego zamiast parametru karta. Ten parametr jest dostępny tylko na komputerach, których karty skonfigurowano do automatycznego
pozyskiwania adresów IP
o
IPCONFIG /setclassid [identyfikator_klasy] - konfiguruje identyfikator klasy
DHCP określonej karty. Aby ustawić identyfikator klasy DHCP wszystkich kart, należy użyć gwiazdki (*) jako symbolu wieloznacznego zamiast parametru karta. Ten
parametr jest dostępny tylko na komputerach, których karty skonfigurowano do
automatycznego pozyskiwania adresów IP. Jeżeli nie określono identyfikatora klasy
DHCP, bieżący identyfikator klasy jest usuwany
PROGRAM NBTSTAT
NBTSTAT wyświetla tablicę nazw NetBIOS, zawierającą mapowanie przyjaznych dla użytkownika nazw komputerów od ich adresów IP.
NBTSTST to aplikacja konsoli tekstowej. Znajduje się w katalogu c:\windows\system32 .
Wyświetla statystykę protokołu NetBIOS przez TCP/IP (NetBT), tabele nazw NetBIOS zarówno
dla komputera lokalnego, jak i komputerów zdalnych oraz pamięć podręczną nazw NetBIOS.
Polecenie nbtstat zezwala na odświeżenie pamięci podręcznej nazw NetBIOS i nazw zarejestrowanych w usłudze WINS (Windows Internet Name Service). Polecenie użyte bez parametrów wyświetla pomoc.
Parametry związane z NBTSTAT
o
NBTSTAT -a nazwa_zdalna – wyświetla tabelę nazw NetBIOS komputera zdalnego, gdzie nazwa_zdalna to nazwa NetBIOS komputera zdalnego. Tabela nazw
NetBIOS jest listą nazw NetBIOS odpowiadających aplikacjom NetBIOS uruchomionym na danym komputerze
o
NBTSTAT -A adres_IP - wyświetla tabelę nazw NetBIOS komputera zdalnego
określonego przez adres IP komputera zdalnego
o
NBTSTAT –c - wyświetla zawartość pamięci podręcznej nazw NetBIOS, tabelę
nazw NetBIOS i odpowiednie rozpoznane adresy IP
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
o
NBTSTAT –n - wyświetla tabelę nazw NetBIOS komputera lokalnego. Stan zarejestrowania (registered) oznacza, że nazwa jest zarejestrowana przez emisję lub
serwer WINS
o
NBTSTAT –r - wyświetla statystykę rozpoznawania nazw NetBIOS. Na komputerze
z systemem Windows XP skonfigurowanym do korzystania z usługi WINS ten parametr zwraca liczbę nazw, które zostały rozpoznane i zarejestrowane przy użyciu
emisji i usługi WINS
PROGRAM NETSTAT
NETSTAT wyświetla aktywne połączenia protokołu TCP, porty, na których
komputer nasłuchuje, statystykę sieci Ethernet, tabelę routingu protokołu IP,
statystykę protokołu IPv4 (dla protokołów IP, ICMP, TCP i UDP) oraz statystykę
protokołu IPv6
NETSTAT jest programem pracującym w konsoli tekstowej. Znajduje się w katalogu
c:\windows\system32. Aplikacja ma wielorakie zastosowanie; służy do wypisywania informacji
dotyczących stanu podsystemu sieciowego.
Najciekawszym jego zastosowaniem jest wyświetlenie listy aktualnie wykorzystywanych
na komputerze portów.
Parametry związane z NETSTAT:
o
NETSTAT -a - wyświetla wszystkie aktywne połączenia protokołu TCP oraz porty
protokołu TCP i UDP, na których komputer nasłuchuje.
o
NETSTAT -e - wyświetla statystykę sieci Ethernet, taką jak liczba wysłanych i odebranych bajtów i pakietów. Ten parametr można łączyć z parametrem -s.
o
NETSTAT -n - wyświetla aktywne połączenia protokołu TCP, ale adresy i numery
portów są wyrażane numerycznie i nie są podejmowane próby ustalenia nazw.
o
NETSTAT -o – wyświetla aktywne połączenia protokołu TCP i dołącza identyfikatory procesów (PID) poszczególnych połączeń. Aplikację można odnaleźć na podstawie identyfikatora PID na karcie Procesy w Menedżerze zadań Windows. Ten parametr można łączyć z parametrami -a, -n i -p.
o
NETSTAT -p protokół - pokazuje połączenia protokołu określonego przez parametr protokół. W tym przypadku parametr protokół może przyjmować wartości
tcp, udp, tcpv6 lub udpv6. Jeżeli ten parametr jest używany z parametrem -s do
wyświetlania statystyki poszczególnych protokołów.
o
NETSTAT –s - wyświetla statystyki poszczególnych protokołów. Domyślnie pokazywane są statystki protokołów TCP, UDP, ICMP i IP. Jeżeli protokół IPv6 systemu
Windows XP jest zainstalowany, statystyki są wyświetlane dla protokołów TCP
przez IPv6, UDP przez IPv6, ICMPv6 i IPv6.
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
o
NETSTAT -r - wyświetla zawartość tabeli routingu protokołu IP. Ten parametr jest
odpowiednikiem polecenia route print.
PROGRAM PING
Urządzenia podłączone do sieci mają unikatowe adresy logiczne. Ten fakt możemy wykorzystać posługując się narzędziem PING.
Ping korzysta z komunikatów Echo i Echo Reply. Polecenie to ma podobną składnię w
większości systemów operacyjnych. Jako argument przyjmuje nazwę hosta, z którym łączność
chcemy sprawdzić, w postaci nazwy DNS-owej lub numeru IP.
Wynikiem działania jest lista kolejnych odpowiedzi odległego hosta wraz z ich czasami
oraz końcowe podsumowanie podające liczbę zgubionych datagramów (packet loss) i czasy —
minimalny, średni i maksymalny — transmisji zapytań. To bardzo przydatne narzędzie, zwłaszcza że jest dostępne w większości używanych systemów operacyjnych.
Polecenia ping używamy wówczas, gdy chcemy sprawdzić, czy interesujący
nas komputer działa.
Umożliwia określenie, czy pakiety są przesyłane, jaki jest rozrzut czasowy ich
transmisji, czy połączenie sieciowe jest stabilne.
Czasem problemy z interpretacją jego wyników powodują działające po drodze firewalle,
ingerujące w ruch komunikatów ICMP.
W systemie Linux ping działa do momentu, aż nie przerwiemy jego działania, wciskając
równocześnie klawisze Ctrl+C. W Windows wysyła domyślnie jedynie cztery zapytania i kończy
działanie. Aby nie kończył działania, należy użyć przełącznika -t. Aby nie były tłumaczone adresy IP na nazwy DNS, używamy -a dla Windows i -n dla Linuksa.
W celu zdefiniowania liczby wysłanych zapytań używamy przełącznika -n liczba dla Windows i -c liczba dla Linuksa, gdzie zmienna liczba jest liczbą zapytań, które ma wysłać nasz
host.
Ciekawą opcją testującą wydajność łącza jest -f w Linuksie. Powoduje to wysyłanie kolejnych pytań tak szybko, jak szybko otrzymywane są odpowiedzi, lub wysyłanie 100 komunikatów na sekundę - wybierana jest większa wartość. Można w ten prosty sposób wygenerować
duży ruch; opcję tę stosuje się najczęściej w sieci lokalnej. Należy ostrożnie ją wykorzystywać,
ponieważ niektóre starsze systemy operacyjne nie były odporne na tego typu zalew komunikatami ICMP. Nie powinno się w ten sposób testować maszyn poza naszą siecią, ponieważ generuje to niepotrzebny ruch na łączach.
Opcję tę można połączyć z opcją -s rozmiar, gdzie zmienna rozmiar jest ilością danych w
bajtach przesyłanych w komunikacie ICMP. Domyślnie jest to 56 bajtów, co w połączeniu z 8
bajtami nagłówka ICMP daje 64 bajty danych przesyłanych w datagramie IP.
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
Opcja ta pozwala nam zwiększyć generowane obciążenie łącza. Umożliwia również badanie, w jaki sposób routery znajdujące się pomiędzy nami a celem radzą sobie z fragmentacją
dużych datagramów.
Sprawdzenie połączenia może dać wynik pozytywny. Tymczasem łączność może być niestabilna. Połączenie może raz być, a raz zanikać.
Różnice w czasach odpowiedzi są dopuszczalne wynikają z obciążenia sieci. Niedopuszczalna jest utrata pakietów.
Polecenie ping standardowo wysyła cztery pakiety. W tym czasie może nie pojawić się zakłócenie. Możliwe jest wysłanie określonej liczb pakietów o zadanej wielkości. Wydłużenie czasu
testowania i zwiększenie liczby przesyłanych danych sprzyjają wykryciu niesprawności. Efekt
ten możemy uzyskać wykorzystując odpowiednie opcje –l oraz –n. Pierwsze wysyłanie pakietów
po 1000 bajtów każdy, a drugie że pakietów będzie 50.
PROGRAM TRACERT
Ping może nam udzielić informacji, że datagramy nie dochodzą do hosta docelowego, aby
jednak określić, w którym miejscu trasy poprzez Internet są one gubione, potrzebujemy
innego narzędzia. Jest nim polecenie traceroute w systemie Linux, a w Windows — polecenie
tracert. Wydaje się je podobnie jak pi ng, jednak w efekcie uzyskujemy więcej przydatnych
informacji.
Polecenie tracert ustala ścieżkę do lokalizacji docelowej przez wysłanie komunikatów
protokołu ICMP (Internet Control Message Protocol) typu Echo Request lub komunikatów
ICMPv6 do lokalizacji docelowej, stopniowo zwiększając wartości pola czasu wygaśnięcia (TTL,
Time to Live).
Opr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
# traceroute www.tpnet.pl
traceroute to www.tpnet.pl (217.98.20.14). 30 hops max. 40 byte packets
1. 10.0.1.1(10.0.1.1) 9.448 ms 10.953 ms 11.758 ms
2. 10.0.201.1(10.0.201.1) 26.839 ms 10.044 ms 42.246 ms
3. 10.0.44.2(10.0.44.2) 38.357 ms 15.063 ms 15.848 ms
4. z-atman.toya.net.pi (193.111.36.33) 31.496 ms 14.147 ms 14.763 ms
5. Piekna-do-ATMAN.warman.nask.pl (195.187.253.241) 11.743ms 20.411ms 17.493ms
6. Poland-gw-atm3-0-0-10.nask.pl (195.187.254.14) 14.713ms 13.946ms 46.104ms
7. tpnet.nask.pl (195.164.16.78) 20.124 ms 14.707 ms 15.609 ms
8. z.war-ar3.do.war-rl.tpnet.pl (195.205.0.13) 16.132 ms 19.875 ms 15.486 ms
9. z.war-r2.do.war-rl.tpnet.pl (194.204.175.101) 29.908 ms 81.246 ms 20.863 ms
10. do.war-ar2.z.war-rl.tpnet.pl (195.205.0.18) 81.634 ms 23.212 ms 18.788 ms
11. fama.tpnet.pl (217.98.20.14) 19.223 ms 16.526 ms 13.827 ms
W kolejnych wierszach pojawiają się nazwy DNS-owe (jeśli udało sieje uzyskać) routerów
oraz czasy przejścia trzech datagramów wysłanych do każdego kolejnego routera. Zwróćmy
uwagę na czasy w wierszach 9. i 10. Czas transmisji 18.788 ms do routera nr 10 jest krótszy od
czasów transmisji do routera nr 9. Jest to możliwe w wyniku samej zasady działania sieci Internet. Obciążenia łączy wzrastają nieprzewidywalnie i czasem datagram osiągnie cel w rekordowo
krótkim czasie, korzystając z wolnych w tym ułamku sekundy łączy, a czasem datagram będzie
musiał zaczekać w kolejce, aż zostaną wytransmitowane wcześniej dostarczone dane.
Metoda działania tego polecenia jest bardziej skomplikowana niż w przypadku ping. Tracert wysyła datagram skierowany na adres docelowego hosta. Datagram ten zawiera w sobie
pakiet protokołu UDP skierowany na port 33434 (numer ten jest zwiększany o 1 dla kolejnych
routerów).
W datagramie IP pole TTL (czas życia) ustawione jest na 1. Pierwszy router, który powinien przekazać ten datagram, ma obowiązek zmniejszyć wartość pola TTL o jeden. W momencie
gdy wartość TTL osiągnie 0, pierwszy router wysyła komunikat ICMP Time Exceeded. Tracert w
tym momencie posiada już informację o numerze IP pierwszego routera i czasie, w jakim zwrócił komunikat ICMP. Dalej tracert zwiększa wartość TTL do 2 i znowu wysyła datagram do hosta
docelowego. Datagram ten przechodzi bez problemów przez pierwszy router, który jedynie
zmniej¬sza jego pole TTL do 1. Gdy drugi w kolejności router odbierze datagram z TTL = 1 i
zmniejszy go o jeden, otrzyma TTL = 0, wysyła więc z powrotem komunikat ICMP Time Exceeded. W ten sposób polecenie tracert uzyskuje informację o adresie drugiego routera i czasie,
w jakim zwrócił on informację, tracert zwiększa TTL do 3 i kontynuuje ten sam proces.
Należy pamiętać, że czasy wyświetlane w wyniku działania tego polecenia są czasami
transmisji datagramu IP i powrotu komunikatu ICMP od jednego z routerów. Nie są to czasy
przyrostowe pomiędzy kolejnymi routerami. Cały proces kończy się, gdy datagram dociera w
końcu do hosta docelowego. Ponieważ jest on skierowany na nieużywany w danym momencie
port protokołu UDP, host ten wysyła komunikat ICMP Port unreachable.
Po otrzymaniu takiego komunikatu tracert kończy swoje działanie. Jeśli na wysłany datagram nie pojawia się odpowiedź, w miejsce czasu wyświetlana jest gwiazdka (*).Jednak poleceOpr.: Grzegorz Szymkowiak
SIECI KOMPUTEROWE – WWW.EDUNET.TYCHY.PL
nie tracert dalej wysyła datagramy, zwiększając wartość w polu TTL, i któryś z kolejnych routerów może znowu poprawnie zareagować.
Podczas stosowania tego polecenia problemy nastręczają, podobnie jak w poprzednim
przypadku, firewalle. Często firewalle filtrują pakiety skierowane na porty, które nie powinny
być otwarte, z czego właśnie korzysta tracert. Jest to jeden z możliwych powodów pojawienia
się gwiazdek w listingach tego polecenia. Ponadto niekiedy powodem nieprawidłowej reakcji
routerów jest po prostu błąd w ich oprogramowaniu.
Przydatną opcją jest wyłączenie rozwiązywania nazw DNS-owych kolejnych routerów,
dzięki czemu cały proces działania programu ulega znacznemu przyspieszeniu. Opcją wyłączającą tę właściwość jest w systemie Linux -n, a w Windows -d.
Polecenie tracert wyświetla drogę, jaką pakiety poruszają się od stacji roboczej do komputera docelowego. Droga pakietów jest zależna od stanu łączy, ich obciążenia i umów pomiędzy firmami internetowymi.
Przepustowość łącza można sprawdzić, uruchamiając testy dostępne w Internecie. Polegają one na ściąganiu i wysyłaniu pliku testowego. Powtórne uruchomienie testu może spowodować wzrost prędkości ściągania. Spowodowany jest on pobieraniem większości danych z bufora
na dysku lokalnym, a nie z internetu.
Opr.: Grzegorz Szymkowiak