Rozdział 15
Narzędzia diagnostyczne dla sieci
Microsoft opartych na TCP/IP
Rozdział ten omawia kilka programów diagnostycznych, pomocnych
w usuwaniu usterek w sieciach Microsoft opartych na TCP/IP. Narzę-
dzia te dostarczane są razem z systemem Windows i obejmują: program
do sprawdzania dostępności hostów w sieci, program sprawdzający ta-
blice określania nazw oraz program sprawdzający trasy wiodące do
określonego miejsca przeznaczenia. Pozostałe programy dostarczają in-
formacji statystycznych o pracy sieci i działających w niej protokołów.
Używanie ICMP i PING
Jednym z najczęściej używanych narzędzi diagnostycznych jest program
PING (nazwa jest akronimem utworzonym od Packet InterNet Groper).
Wysyła on komunikat do określonego węzła TCP/IP, a węzeł przezna-
czenia zwraca ów komunikat jako odpowiedź. Brak odpowiedzi oznacza,
że sieć lub węzeł nie działają, albo że pakiet został zagubiony podczas
transmisji. PING zazwyczaj powtarza test określoną ilość razy; można
także nakazać, żeby wysyłał pakiety w sposób ciągły. Program PING
dostarczany z Windows jest wywoływany z linii poleceń.
Program PING a
protokó³ ICMP (Internet Control Message
Protocol)
PING wykorzystuje ICMP, protokół używany do przesyłania komunika-
tów o błędach i informacji o stanie sieci. ICMP definiuje wiele typów ko-
munikatów, pomocnych przy usuwaniu usterek i raportowaniu proble-
mów związanych z pracą sieci lub protokołów. PING korzysta z dwóch
typów komunikatów ICMP: żądania echa (Echo Request, typ komunikatu
= 0) i odpowiedzi echa (Echo Reply, typ komunikatu = 8). PING wysyła do
hosta przeznaczenia pakiet ICMP "żądanie echa", a host przeznaczenia
odsyła pakiet ICMP "odpowiedź echa".
Rozdział 15
470
ICMP stanowi część modułu IP (patrz rysunek 15.1) i
zgodnie
z wymogami dokumentów RFC musi być obecny w każdej implementacji
IP. W kategoriach warstw protokołów ICMP znajduje się jednakże ponad
warstwą IP (patrz rysunek 15.2); innymi słowy, ICMP jest obudowywany
przez nagłówek IP. Jest to istotna właściwość, ponieważ umożliwia tra-
sowanie komunikatów ICMP przez routery IP, które mogą przekazywać
wyłącznie datagramy IP. Oznacza to, że komunikaty ICMP mogą podró-
żować poprzez dowolnie złożone sieci, połączone routerami IP.
Rysunek 15.3 przedstawia sposób używania programu PING. Można
skorzystać z PING, aby sprawdzić dostępność lokalnych i zdalnych ho-
stów, i to zarówno komputerów Windows NT, jak i dowolnych innych
komputerów obsługujących TCP/IP. W przedstawionym przykładzie B
jest hostem lokalnym dla A, a C hostem zdalnym. Komunikaty ICMP
przesyłane pomiędzy hostami A i C są traktowane przez pośredniczące
routery jak zwykłe datagramy IP; routery nie poświęcają im specjalnej
uwagi. Jeśli pakiet ICMP zostanie zagubiony, nie próbuje się przesłać go
ponownie.
Rysunek 15.1
ICMP jako część IP
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
471
Rysunek 15.2
Warstwa ICMP
spoczywająca na
warstwie IP.
Program PING generuje komunikat ICMP "żądanie echa". Moduł IP pra-
cujący w węźle przeznaczenia odpowiada na komunikaty ICMP automa-
tycznie - nie ma potrzeby korzystania ze specjalnego oprogramowania,
aby węzeł przeznaczenia odesłał komunikat ICMP "odpowiedź echa".
Oznacza to, że wszystkie węzły w Internecie są w stanie odpowiedzieć na
komunikaty wysyłane przez PING.
Nie ma żadnego standardu, który określałby opcje i możliwości progra-
mu PING, chociaż większość implementacji oferuje podobne usługi.
Konkretna składnia polecenia PING jest zależna od systemu, chociaż
istnieją zauważalne podobieństwa - zwłaszcza w przypadku systemów
Windows NT i UNIX. Większość systemów udostępnia wersję PING
wywoływaną z linii poleceń, czasem bywa dostępna także wersja gra-
ficzna. Większość implementacji podaje w sekundach oszacowany czas
drogi powrotnej oraz statystykę zagubionych datagramów. Niektóre
udostępniają także pewne opcje, jak np. wysyłanie różnej ilości danych
w komunikatach żądania echa lub określanie odstępu czasu pomiędzy
wysyłaniem kolejnych komunikatów. W Windows NT odstęp czasu po-
między kolejnymi komunikatami żądania echa wynosi 1 sekundę, o ile
nie wybrano opcji ciągłego wysyłania komunikatów (opcja -t) - w takim
przypadku komunikaty wysyłane są tak szybko, jak to jest możliwe. Mo-
że to spowodować znaczny wzrost ruchu i spowolnienie sieci. Niektóre
wersje PING umożliwiają stosowanie opcji protokołu IP, np. opcji traso-
wania źródłowego, która służy do definiowania trasy, którą będzie prze-
słany pakiet ICMP.
Rozdział 15
472
Rysunek 15.3
Zastosowanie komunikatów ICMP "żądanie echa" i "odpowiedź echa".
Format komunikatów ICMP "żądanie echa" i "odpowiedź echa" przed-
stawiony jest na rysunku 15.4.
Pole Type (typ) ma wartość 0 dla żądania echa i 8 dla odpowiedzi echa.
Pole Code (kod) jest ustawiane na zero w obu typach komunikatu. Pole
Checksum
(suma kontrolna) jest obliczane tak samo dla wszystkich typów
komunikatu, w sposób opisany wcześniej.
Pola Identifier (identyfikator) i Sequence Number (numer kolejny) używane
są do jednoznacznej identyfikacji komunikatów, aby można było powią-
zać żądania echa z odpowiedziami echa. Jest to konieczne, ponieważ sieć
IP nie gwarantuje, że komunikaty odpowiedzi echa zostaną nadesłane we
właściwej kolejności.
Pole Data (dane) służy po to, aby można było przesyłać komunikaty
o zmiennej długości. Możliwość ta jest bardzo przydatna podczas testo-
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
473
wania zdolności sieci do przesyłania dużych datagramów. Router albo
host może radzić sobie z niewielkimi datagramami, ale zawodzić podczas
przesyłania większych datagramów; dzięki umieszczeniu dużego bloku
danych w polu Data można wykryć ten problem.
W komunikacie odpowiedzi echa odsyłane są te same dane, co w żądaniu
echa.
Rysunek 15.4
Format komunikatów
ICMP "żądanie echa"
i "odpowiedź echa"
Korzystanie z PING
Program narzędziowy PING jest dostępny w Windows NT i Windows 9x.
Oto pełna składnia polecenia:
PING [-t] [-a] [-n liczba] [-l długość] [-f] [I czas-życia]
[-v
typ-usługi] [-r liczba] [-s liczba] [[-j lista-komputerów] |
[-k
lista-komputerów]] [-w czas] lista-miejsc-przeznaczenia
Argument Opis
-t
Pinguje w sposób ciągły do momentu przerwania.
-a
Podczas pingowania wyświetla nazwę komputera o podanym
adresie IP.
-n liczba
Liczba pingowań komputera; domyślnie 4.
-l długość
Liczba bajtów, które należy wysłać do pingowanego kompute-
ra; domyślnie 32 bajty.
-f
Zakazuje fragmentowania pakietu routerom znajdującym się
na trasie do miejsca przeznaczenia.
-I czas-życia
Ustawia pole TTL (czas życia) pakietu na podaną wartość.
-v typ-usługi
Ustawia pole TOS (typ usługi) pakietu na podaną wartość.
-r liczba
Wyświetla trasę dla pakietów PING; liczba może wynosić od 1
do 9 routerów.
-s liczba
Żądanie umieszczenia znacznika czasowego dla określonej
liczby skoków.
Rozdział 15
474
-j lista-
komputerów
Lista-komputerów określa trasę pakietu. Kolejne komputery
mogą być rozdzielone pośredniczącymi routerami.
-k lista-
komputerów
Lista-komputerów określa trasę pakietu. Kolejne komputery
nie mogą być rozdzielone pośredniczącymi routerami.
-w czas
Dopuszczalny czas oczekiwania na odpowiedź
w milisekundach.
lista-miejsc-
przeznaczenia
Lista komputerów, które będą pingowane.
Najprostszym sposobem użycia programu PING jest podanie jako argu-
mentu nazwy lub adresu IP pingowanego komputera. Aby np. sprawdzić
hosta o adresie 199.245.180.10, używa się polecenia:
PING 199.245.180.10
Rysunek 15.5 przedstawia rezultaty wykonania tego polecenia. Jak wi-
dać, domyślnym rozmiarem komunikatu są 32 bajty, a polecenie PING
jest wykonywane czterokrotnie.
Można zmienić rozmiar komunikatu za pomocą opcji -l. Komunikat
o rozmiarze 8192 jest większy niż maksymalna jednostka transmisji
(MTU) najpopularniejszych sieci. Wysyłając komunikat o dużym rozmia-
rze można wymusić fragmentowanie datagramów IP przechodzących
przez sieć - host przeznaczenia musi wówczas złożyć w odpowiedniej
kolejności fragmenty pierwotnego datagramu. Za pomocą dużych data-
gramów można testować zdolność hosta przeznaczenia do poprawnego
składania fragmentów. Aby np. wysłać komunikat o rozmiarze 8192 baj-
tów, można użyć polecenia:
PING -l 8192 199.245.180.10
Aby wysłać komunikat określoną liczbę razy, należy użyć opcji -n. Aby
np. wysłać komunikat 10 razy, można użyć polecenia:
PING -n 10 199.245.180.10
Aby wysyłać komunikaty w sposób ciągły aż do momentu ręcznego
przerwania, należy użyć opcji -t:
PING -t 199.245.180.10
Na rysunku 15.6 przedstawiono rezultat łącznego użycia opcji -l i -n
w następującym poleceniu:
PING -l 8192 -n 10 199.245.180.10
Ponieważ test przeprowadzano w sieci o MTU równym 1500 bajtów,
nastąpiła fragmentacja datagramów ze względu na duży rozmiar komu-
nikatu. Co interesujące, pierwszy test zawiódł, ale pozostałe dziewięć
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
475
przebiegło poprawnie. Nieudany test zwrócił komunikat Request timed
out (przekroczony czas oczekiwania na odpowiedź). Podczas sprawdza-
nia przyczyny błędu za pomocą analizatora protokołu Network Monitor
(opisanego w rozdziale 6, "Śledzenie protokołu TCP/IP" ustalono, że
przyczyną przekroczenia limitu czasu było zagubienie fragmentu data-
gramu w trakcie transmisji.
Rysunek 15.5
Najprostsza forma
polecenia PING.
Rysunek 15.5
Polecenie PING
z opcjami -l i -n.
Aby sprawdzić, czy datagramy muszą być fragmentowane, można użyć
opcji -f, która ustawia znacznik Don't Fragment (nie fragmentować)
w pakiecie IP, który obudowuje komunikat ICMP. Ustawienie tego
znacznika zakazuje fragmentowania datagramów pośredniczącym
routerom. Jeśli ze względu na znacznik DF router nie jest w stanie prze-
kazać datagramu, wówczas odrzuca go i odsyła komunikat ICMP (typ 3,
kod 4) stwierdzający, że konieczna była fragmentacja, ale ustawiony był
znacznik DF. Znacznik DF jest zazwyczaj ustawiany przez bezdyskowe
stacje robocze, które ładują obraz systemu operacyjnego przy pomocy
protokołu TFTP (Trivial File Transfer Protocol). Rysunek 15.7 przedstawia
rezultat użycia opcji -f podczas wysyłania komunikatu o dużym rozmia-
Rozdział 15
476
rze. Zwrócony komunikat o błędzie brzmi: Packet needs to be fragmented
but DF set
.
Opcje -j i -k służą do ustalenia swobodnego lub ścisłego trasowania źró-
dłowego. Używa się ich do zdefiniowania adresów routerów, przez które
musi przejść pakiet, dzięki czemu można wymusić przejście pakietu
przez określoną trasę. Opcja swobodnego trasowania źródłowego (-l)
wymaga, aby pakiet przeszedł przez wymienione routery, ale pomiędzy
nimi może również przechodzić przez inne pośredniczące routery. Opcja
ścisłego trasowania źródłowego (-k) również wymaga, aby komunikaty
przechodziły kolejno przez wszystkie wymienione routery, ale pomiędzy
nimi nie może być żadnych pośredników.
Opcja -I służy do ustalenia wartości pola TTL (czasu życia) w pakiecie IP,
który obudowuje komunikat ICMP. Dzięki temu można sterować czasem
istnienia pakietu w sieci. Każdy z pośredniczących routerów musi
zmniejszać wartość TTL o przynajmniej jedną sekundę. Kiedy pole TTL
osiągnie wartość 0, datagram jest odrzucany, a do nadawcy wysyłany jest
komunikat ICMP (typ 11) stwierdzający, że przekroczony został czas
życia pakietu. Program PING umożliwia ustawianie czasu życia
w zakresie 1...255 sekund.
Rysunek 15.7
Polecenie PING
z opcjami -l i -f.
Implementacja programu Traceroute (TRACERT) firmy
Microsoft
Program Traceroute powstał w środowisku UNIX, ale został przeniesiony
na platformę Windows (9x i NT), gdzie znany jest pod nazwą TRACERT.
TRACERT służy do śledzenia trasy jaką przebywa datagram IP w drodze
do miejsca przeznaczenia.
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
477
Działanie programu TRACERT polega na wysyłaniu komunikatów ICMP
ze stopniowo zwiększaną wartością pola TTL (czasu życia, patrz rysu-
nek.15.8). Początkowo wysyła komunikat ICMP z polem TTL równym 1.
Pierwszy router odbierający komunikat zmniejsza pole TTL o 1; pole TTL
ma teraz wartość 0. Router odrzuca więc datagram i odsyła do nadawcy -
czyli programu TRACERT - komunikat ICMP (typ 11) stwierdzający, że
przekroczony został czas życia pakietu. Z adresu IP nadawcy tego ko-
munikatu program TRACERT może określić tożsamość routera pierw-
szego skoku. TRACERT wysyła kilka komunikatów z taką samą warto-
ścią TTL, dzięki czemu może określić minimalny, maksymalny i średni
czas drogi powrotnej do routera. Następnie test jest powtarzany
z wartością TTL równą 2, potem 3 itd. aż do osiągnięcia hosta przezna-
czenia, określonego w poleceniu TRACERT. Jeśli po określonej liczbie
skoków komunikat nie zostanie odesłany, wówczas program zakończy
działanie. Można dzięki temu stwierdzić, które routery są osiągalne.
TRACERT używa także w miarę możliwości odwrotnych zapytań DNS,
aby wyświetlić symboliczne nazwy routerów. Jeśli nie skonfigurowano
odwrotnych zapytań DNS dla adresów routerów, wówczas TRACERT
wyświetli tylko ich adresy IP.
TRACERT nie znajduje niektórych routerów
Niektóre z routerów skonfigurowane są tak, aby odrzucały pakiety wygenero-
wane przez programy w rodzaju TRACERT; w takim przypadku program
TRACERT nie wyświetli informacji dla danego skoku. Niektóre routery nie wy-
syłają także komunikatów ICMP o przekroczeniu czasu życia pakietu.
Rozdział 15
478
Rysunek 15.8
Działanie
TRACERT.
Polecenie TRACERT posiada następującą składnię, opisaną bliżej
w tabeli:
TRACERT [-d] [-h maksymalna-liczba-skoków] [-j lista-komputerów]
[-w czas] host-przeznaczenia
Argument Opis
-d
Nie konwertuje adresów IP komputerów, znajdują-
cych się pomiędzy lokalnym komputerem i hostem-
przeznaczenia, na symboliczne nazwy.
-h maksymalna-liczba-
skoków
Maksymalna liczba skoków pomiędzy lokalnym
komputerem a hostem-przeznaczenia.
-j lista-komputerów
Określa swobodną trasę źródłową przez komputery
na liście.
-w czas
Oczekuje określoną liczbę milisekund przed zanie-
chaniem testowania.
host-przeznaczenia
Zdalny komputer, który należy zlokalizować
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
479
Poniżej przedstawiono przykładowe rezultaty użycia programu
TRACERT
:
C:\> TRACERT FTP.MICROSOFT.COM
132 ms 138 ms 144 ms gw1.iquest.net [198.70.144.10]
176 ms 166 ms 169 ms li.mci.net [204.70.41.5]
316 ms 237 ms 201 ms fin2.mci.net [204.70.3.65]
170 ms 175 ms 160 ms core.mci.net [204.70.1.82]
225 ms 222 ms 221 ms seabr1-gw.nwnet.net [192.147.179.5]
250 ms 240 ms 252 ms msoft-t3-gw.nwnet.net [198.104.192.9]
230 ms 242 ms 238 ms ftp.microsoft.com [196.105.232.1]
Trace complete
Używanie programu ARP
Program narzędziowy ARP służy do badania i modyfikowania wartości
w tablicy bufora ARP (Address Resolution Protocol). Tablica ta zawiera
powiązania pomiędzy adresami sprzętowymi i adresami IP. W sieciach
umożliwiających transmisje broadcast, jak Ethernet, Token Ring lub
FDDI, adres sprzętowy (MAC) węzła TCP/IP jest określany na podstawie
jego adresu IP. Dokonuje się tego poprzez zapytania ARP rozsyłane
w trybie broadcast; odpowiedź na to zapytanie (zwana odpowiedzią
ARP) zawiera adres sprzętowy poszukiwanego węzła. Odkryta za pomo-
cą mechanizmu ARP para adres IP - adres sprzętowy przechowywana
jest przez pewien czas w buforze. Program ARP służy do wyświetlania
zawartości bufora ARP oraz dodawania lub modyfikowania wpisów.
Polecenie ARP wyświetla bieżące odwzorowania adresów MAC (fizycz-
nych adresów kart sieciowych) na adresy IP. Polecenie ARP może rów-
nież sprawdzić, czy stos IP jest poprawnie powiązany z kartą sieciową,
i czy można uzyskać dostęp do innych urządzeń sieciowych. Jeśli proto-
kół IP nie jest poprawnie powiązany z kartą, wówczas tablica bufora ARP
będzie pusta. ARP nie wyświetla wpisu dla bieżącej karty sieciowej; aby
wyświetlić adres MAC bieżącej karty, należy użyć polecenia IPCONFIG -
all
.
Polecenie ARP posiada następującą składnię, opisaną bliżej w tabeli:
ARP -a [adres_intern] [-N [adres_interfejsu]
ARP -d -g adres_intern [adres_interfejsu]
ARP -s adres_intern adres_ethern [adres_interfejsu]
Rozdział 15
480
Problemy z IPCONFIG i wersje programu
Jeśli IP nie pracuje poprawnie, IPCONFIG nie wyświetli żadnych informacji
związanych z protokołami TCP/IP. Na komputerach Windows 9x można
skorzystać z graficznej wersji programu, nazywanej WINIPCFG; podobne
narzędzie dla Windows NT, o nazwie WNTIPCFG, znajduje się w pakiecie
Resource Kit.
Argument Opis
-a Wyświetla bieżące wpisy w buforze ARP. Domyślnie wy-
świetlane są wszystkie adresy IP, z wyjątkiem adresu bie-
żącej karty sieciowej. Jeśli po -a zostanie podana wartość
adres_intern, wówczas wyświetlany jest tylko wpis dla tej
karty.
-g Działa tak samo, jak -a.
adres_intern Podaje
się tutaj adres IP znajomej notacji xxx.xxx.xxx.xxx,
gdzie xxx może mieć dowolną wartość z zakresu 0...255.
-N Wyświetla wpisy bufora dla karty sieciowej, określonej
przez adres_interfejsu.
adres_interfejsu
Adres interfejsu. Używany w sytuacji, kiedy w systemie
znajduje się wiele kart sieciowych, i należy przejrzeć lub
zmienić bufor ARP dla konkretnej karty. Jeśli nie wpisze się
adresu interfejsu, zostanie użyta pierwsza dostępna karta.
-d Usuwa
określony wpis.
-s
Dodaje wpis do bufora, wiążący adres IP (adres_intern)
z adresem sprzętowym (adres_ethern).
adres_ethern Adres
sprzętowy (MAC). Wpisuje się go w postaci HH-HH-
HH-HH-HH-HH, gdzie każde H oznacza szesnastkową
wartość od 0 do F. Każda karta sieciowa posiada stały adres
przypisany fabrycznie, tzw UAA (Universally Administered
Address), który można nadpisać w Control Panel za pomocą
dowolnie wybranego adresu LAA (Locally Administered
Address). Może to być również adres Token Ring - nazwa
argumentu ma historyczne korzenie; technologie Ethernet
i IP rozwijały się w bliskiej zależności.
IPCONFIG wyświetla listę adresów MAC w systemie, włączając w to
modem połączony z siecią IP. Sprawdzenie przy pomocy PING adresu IP
w sieci lokalnej automatycznie doda go do bufora ARP domyślnej karty
sieciowej.
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
481
Aby wyświetlić wszystkie wpisy w tablicy bufora ARP, należy skorzystać
z opcji -a:
C:\> arp -a
Interface: 199.245.180.101 on Interface 1
Internet Address Physical Address Type
199.245.180.1 00-00-c0-7a-2d-5c dynamic
199.245.180.10 00-00-c0-dd-14-5c dynamic
Wpisy oznaczone są jako dynamic, ponieważ po upływie pewnego czasu
ulegną przeterminowaniu.
Jeśli chcemy obejrzeć wpis dla konkretnego adresu IP, należy podać go
w poleceniu:
C:\> arp -a 199.245.180.101
Interface: 199.245.180.101 on Interface 1
Internet Address Physical Address Type
199.245.180.1 00-00-c0-7a-2d-5c dynamic
W komputerze zawierającym wiele kart sieciowych, tablica bufora ARP
jest utrzymywana oddzielnie dla każdej z nich. Polecenie ARP domyślnie
zwraca tylko zawartość bufora dla pierwszej karty; jeśli chcemy obejrzeć
zawartość tablicy ARP dla innej karty, możemy użyć opcji -N i podać jej
adres MAC. Aby np. obejrzeć tablicę bufora ARP dla interfejsu 00-00-CD-
E0-DF-34, należy użyć polecenia:
arp -a -n 00-00-C0-E0-DF-34
Aby usunąć wpis z tablicy, należy użyć opcji -d i podać adres IP usuwa-
nego wpisu.
W przypadku uszkodzenia ręczne usunięcie wpisu z tablicy ARP może
być konieczne ze względu na problemy ze zduplikowanymi adresami IP.
Podczas ręcznego usuwania błędnych wpisów z uszkodzonej tablicy ARP
konieczne może okazać się także dodanie pewnych wpisów. Dokonuje się
tego przy pomocy opcji -s. Aby np. dodać ręcznie wpis dla adresu IP
199.245.180.3, który jest powiązany z adresem karty sieciowej 00-00-C0-
BA-DE-FA, należy użyć następującego polecenia:
arp
-s
199.245.180.3 00-00-C0-BA-DE-FA
Wpisy dodane za pomocą opcji -s są statyczne i nie ulegają przetermino-
waniu.
Rozdział 15
482
Jeśli po wydaniu powyższego polecenia zbadamy ponownie tablicę ARP,
będzie ona wyglądała następująco:
C:\> arp -a
Interface: 199.245.180.101 on Interface 1
Internet Address Physical Address Type
199.245.180.1 00-00-c0-7a-2d-5c dynamic
199.245.180.3 00-00-C0-BA-DE-FA static
199.245.180.10 00-00-c0-dd-14-5c dynamic
Wyświetlanie połączeń sieciowych i statystyk przy pomocy
NETSTAT
Polecenie NETSTAT służy do wyświetlenia bieżących połączeń siecio-
wych TCP/IP oraz statystyk dla poszczególnych protokołów. Składnia
polecenia NETSTAT jest następująca:
NETSTAT [-a] [-e] [-n] [-s] [-p protokół] [-r] [odstęp_czasu]
Argument Opis
-a Wyświetla połączenia i porty oczekujące na połączenie.
-e Wyświetla statystyki Ethernet. Może być łączony z opcją -s.
-n Wyświetla adresy i numery portów.
-s Wyświetla statystyki dla poszczególnych protokołów.
W połączeniu z opcją -p, można sprawdzić statystyki dla
podzbioru domyślnie wyświetlanych protokołów (TCP,
UDP, ICMP i IP).
-p protokół Wyświetla połączenia dla określonego protokołu (tcp lub
udp). Jeśli w połączeniu z tym argumentem użyje się opcji -
s, protokołem może być tcp, udp, icmp lub ip.
-r Wyświetla zawartość tablicy trasowania.
odstęp_czasu Wyświetla wybrane statystyki co odstęp_czasu. Aby prze-
rwać wyświetlanie, należy nacisnąć
CTRL+C
. Jeśli argu-
ment zostanie pominięty, wówczas statystyki będą wyświe-
tlone tylko raz.
Poniżej podano przykładowy rezultat polecenia NETSTAT:
C:\> NETSTAT
Active Connections
Proto Local Address Foreign Address State
TCP ntsrvr:1025 localhost:1026 ESTABLISHED
TCP ntsrvr:1026 localhost:1025 ESTABLISHED
TCP ntsrvr:1108 199.245.180.10:telnet ESTABLISHED
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
483
NETSTAT zwraca dla każdej sesji następujące informacje o protokole
i stanie połączenia:
Proto. Jest to protokół transportowy (TCP lub UDP) używany do na-
wiązania sesji.
Local Address. Jest to adres dla lokalnego końcowego punktu sesji.
Zawiera adres lokalnego komputera oraz numer portu, używanego
przez zdalny końcowy punkt połączenia.
Foreign Address. Jest to adres dla zdalnego końcowego punktu sesji.
Zawiera adres zdalnego komputera oraz numer portu, używanego
przez zdalny końcowy punkt połączenia.
State. Pokazuje stan połączenia TCP/IP. Możliwe wartości obejmują:
ESTABLISHED, CLOSED, CLOSE-WAIT, FIN-WAIT-1, FIN-WAIT2,
LAST_ACK, LISTEN, SYN_RECEIVED, SYN_SENT oraz TIMED-
WAIT. Są to stany, w których może znajdować się sesja TCP (diagram
stanów dla sesji TCP pokazano na rysunku 15.9). [Szczegóły działania
TCP/IP opisane są w książce tegoż autora, "Inside TCP/IP", wydanej
przez New Riders Publishing].
Poniżej podano przykłady użycia NETSTAT.
Jeśli chcemy obejrzeć rezultaty w postaci numerycznej, a nie symbolicz-
nych nazw, możemy użyć opcji -n. Poprzednio wyświetlone informacje
będą teraz wyglądały następująco:
C:\> NETSTAT -N
Active Connections
Proto Local Address Foreign Address State
TCP 127.0.0.1:1025 localhost:1026 ESTABLISHED
TCP 127.0.0.1:1026 localhost:1025 ESTABLISHED
TCP 199.245.180.101:139 199.245.180.1:1033 ESTABLISHED
Opcja -a wyświetla szczegółowe informacje:
C:\> NETSTAT -a
Active Connections
Proto Local Address Foreign Address State
TCP ntsrvr:1025 localhost:1026 ESTABLISHED
TCP ntsrvr:1026 localhost:1025 ESTABLISHED
TCP ntsrvr:nbsession LTREE1:1033 ESTABLISHED
UDP ntsrvr:135 *:*
UDP ntsrvr:nbname *:*
UDP ntsrvr:nbdatagram *:*
Opcja -e wyświetla statystyki Ethernetu:
C:\> NETSTAT -E
Interface Statistics
Received
Sent
Rozdział 15
484
Bytes
1169462 209901
Unicast Packets
286
340
Non-Unicast packets
235
192
Discards 0
0
Errors 0
0
Unknown Protocols
11300
Opcja -e może przydać się do wykrycia błędów spowodowanych przez
niesprawną kartę sieciową.
Opcja -s podaje statystyki dla każdego z protokołów: IP, ICMP, TCP
i UDP. Ponieważ w rezultatach zawarte są także problemy i błędy, opcja -
s może przydać się podczas usuwania usterek w sieci. Ważne są zwłasz-
cza wartości liczników błędu, jak Received Header Errors (błędy w otrzy-
manych nagłówkach), Received Address Errors (błędy w otrzymanych ad-
resach) itp.
C:\> NETSTAT –s
IP Statistics
Packets
Received
=
489
Received Header Errors
= 0
Received Address Errors
= 0
Datagram
Forwarded
=
0
Unknown Protocols Received
= 0
Received Packets Discarded
= 0
Received Packets Delivered
= 444
Output
Requests
=
431
Roqting
Discards
=
0
Discarded Output Packets
= 0
Output Packet No Route
= 0
Reassembly
Required
=
54
Reassembly Successfully Fragmented = 20
Datagrams Failing Fragmentation
= 8
Fragmnets
Created
=
120
ICMP Statistisc
Received
Sent
Messages
86
115
Errors
0 0
Destination
Unreachable
12 0
Time
Exceeded
0 0
Parameter
Problems 0 0
Source
Quenchs
0 0
Redirects
0 0
Echos
0 115
Echo
Replies
74
0
Timestamps
0 0
Timestamp
Replies
0 0
Address
Masks
0 0
Address Masks Replies
0
0
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
485
TCP Statistics
Active
Opens
=
3
Passive
Opens
=
9
Failed Connection Attempts
= 0
Reset
Connections
=
1
Current
Connections =
3
Segments
Received
=
133
` Segment
Sent
=
110
Segments
Retransmitted
=
0
UDP Statistics
Datagram
Received =
225
No Ports
= 86
Receive Errors
= 0
Datagrams
Sent
=
206
Jak wynika z powyższych licznik ICMP Destination Unreachable o wartości
12 może wskazywać, że albo istnieją problemy z uzyskaniem dostępu do
któregoś węzła sieci, albo jest on wyłączony. Licznik Datagrams Failing
Fragmentation
o wartości 8 wskazuje na problemy z fragmentowaniem
niektórych datagramów IP.
Opcja -r jest szczególnie pożyteczna podczas rozwiązywania problemów
związanych z trasowaniem, ponieważ wyświetla tablicę trasowania:
C:\> NETSTAT -r
Active Routes:
Network Address
Netmask
Gateway Address Interface
Metric
127.0.0.0 255.0.0.0
127.0.0.1
127.0.0.1
1
199.245.180.0 255.255.255.0
199.245.180.101 199.245.180.101 1
199.245.180.101 255.255.255.255
127.0.0.1
127.0.0.1
1
199.245.180.255 255.255.255.255
199.245.180.101 199.245.180.101 1
224.0.0.0
224.0.0.0
199.245.180.101 199.245.180.101 1
255.255.255.255
255.255.255.255 199.245.180.101 199.245.180.101 1
Route Table
Active Connections
Proto Local Address Foreign Address State
TCP ntsrvr:1025 localhost:1026 ESTABLISHED
TCP ntsrvr:1026 localhost:1025 ESTABLISHED
TCP ntsrvr:nbsession LTREE1:1034 ESTABLISHED
Jak widać na powyższym przykładzie opcja -r wyświetla także aktywne
połączenia.
Rozdział 15
486
Rcv = otrzymano
snd = wysłano
Passive/Active OPEN = Pasywne/Aktywne OTWÓRZ
Data Transfer State = Stan transmisji danych
Simultaneous CLOSE = Jednoczesne zamykanie połączenia
Rysunek 15.9
Diagram stanów TCP.
Narzędzia diagnostyczne dla sieci Microsoft opartych na TCP/IP
487
Wyświetlanie statystyk i połączeń TCP/IP przy pomocy
NBTSTAT
Polecenie NBTSTAT wyświetla statystyki i bieżące połączenia NetBIOS
ponad TCP/IP, o ile zainstalowano protokół TCP/IP. Składnia polecenia
jest następująca:
NBTSTAT
[-a
zdalna_nazwa] [-A adres_IP] [-c] [-n] [-R] [-r]
[-S] [-s] [odstęp_czasu]
Argument Opis
-a
zdalna_nazwa
Wyświetla tablicę nazw zdalnego komputera według nazwy.
-A adres_IP
Wyświetla tablicę nazw zdalnego komputera według adresu
IP.
-c Wyświetla zawartość i adresy IP lokalnego bufora nazw Net-
BIOS.
-n Wyświetla lokalne nazwy NetBIOS.
-R Ponownie
ładuje plik LMHOSTS po usunięciu nazw z bufora
NetBIOS.
-r Wyświetla statystyki określania nazw przez Windows.
W systemie NT używającym usługi WINS, argument ten
powoduje wyświetlenie liczby nazw NetBIOS określonych
i zarejestrowanych przez transmisję w trybie broadcast i przez
WINS.
-S Wyświetla wszystkie sesje ze zdalnymi serwerami i klientami
według ich adresów IP.
-s Wyświetla wszystkie sesje ze zdalnymi serwerami i klientami.
Używając lokalnego pliku HOSTS, próbuje przekształcić ich
adresy IP na nazwy.
odstęp_czasu Wyświetla wybrane statystyki co odstęp_czasu. Aby przerwać
wyświetlanie, należy nacisnąć CTRL+C. Jeśli argument
zostanie pominięty, wówczas informacje będą wyświetlone
tylko raz.
Bardzo przydatna może okazać się opcja -r, która wyświetla statystyki
określania nazw w sieci Windows - liczbę określonych nazw według
użytej metody:
C:\ NBTSTAT -r
NetBIOS Names Resolution and Registration Statistics
----------------------------------------------------
Resolved By Broadcast
= 1
Resolved By Name Server = 0
Rozdział 15
488
Registered By Broadcast
= 13
Registered By Name Server = 0
NetBIOS Names Resolved By Broadcast
---------------------------------------------
LTREE1 <00>
Opcja -n służy do wyświetlenia wszystkich lokalnych nazw NetBIOS:
C:\> NBTSTAT -n
Node IpAddress: [199.245.180.101]
Scope Id: []
NetBIOS Local Name Table
Name
Type
Status
------------------------------------
NTSRVR <20>
UNIQUE
Registered
NTSRVR <00>
UNIQUE
Registered
NTDOMAIN <00> GROUP Registered
NTDOMAIN <1C> GROUP Registered
NTDOMAIN <1B> UNIQUE Registered
NTSRVR <03>
UNIQUE
Registered
Inet-Services <1C> GROUP Registered
IS-NTSRVR.............<00> UNIQUE Registered
NTDOMAIN <1E> GROUP Registered
NTDOMAIN <1D> UNIQUE Registered
..__MSBROWSE__.<01> GROUP Registered
ADMINISTRATOR <03> UNIQUE
Registered
Typy nazw NetBIOS opisane są w rozdziale 9, "Określanie nazw
w TCP/IP przy użyciu WINS"
Opcja -s służy do wyświetlenia tablicy połączeń NetBIOS:
C:\> NBTSTAT -s
NetBIOS Connection Table
Local Name State In/Out Remote Host Input Output
--------------------------------------------------------------------
NTSRVR Connected In 199.245.180.1 582B 470B
NTSRVR <03> Listening
ADMINISTRATOR <03> Listening