Użytkownicy systemów Windows przyzwyczaili się do łatwego dostępu do innych komputerów w
sieci. Aby dotrzeć do zasobów sieciowych, wystarczy kliknąć na Otoczenie Sieciowe, zawsze obecne
na pulpicie. Wyświetla się okienko zawierające listę komputerów naszej domeny czy grupy roboczej
oraz listę innych domen i grup. Za tą prostą usługą stoi cały, skomplikowany system przeglądania,
poważnie obciążający naszą sieć.
Zrozumienie mechanizmu przeglądania w sieciach Microsoftu pozwoli nam poprawić wydajność sieci,
poradzić sobie z problemami przeglądania, a także wyjaśnić dlaczego czasami to, co widzimy w oknie
Otoczenia Sieciowego nie całkiem odpowiada rzeczywistości. Wyjaśnię także, co oznacza pojawiający
się systematyczne w Event Viewer systemów Windows NT wpis "The browser has forced an
election..." (Event Id 8033 i 8015).
Zadania głównej przeglądarki
•
Odbiera zgłoszenia od serwerów w swoim segmencie sieci. Po otrzymaniu od jakiegoś serwera
datagramu zgłoszeniowego (server announcement) umieszcza nadawcę datagramu na swojej liście
przeglądania, a następnie kontroluje, czy są ponawiane cyklicznie zgłoszenia od tego serwera. Jeśli
serwer nie zgłosi się przez trzy kolejne cykle, główna przeglądarka wykreśla go ze swojej listy
przeglądania.
•
Informuje główne przeglądarki innych segmentów o nazwie swojej domeny (czy grupy roboczej)
oraz o tym, że jest jej główną przeglądarką. Serwer po wygraniu wyborów, tzn. uzyskaniu statusu
głównej przeglądarki swojej domeny (grupy roboczej) wysyła na broadcast zgłoszenie domeny -
DomainAnnouncement, zawierające nazwę domeny (grupy roboczej), oraz nazwę głównej
przeglądarki tej domeny. W ciągu pierwszych 5 minut zgłoszenie to jest ponawiane co 1 minutę, a
później co 15 minut. Jeśli domena (grupa robocza) nie anonsuje się w sieci przez 3 kolejne cykle,
główne przeglądarki innych segmentów usuwają ją ze swojej listy przeglądania.
•
Odbiera zgłoszenia od głównych przeglądarek innych segmentów (innych grup roboczych, domen,
podsieci). Umieszcza nazwy innych domen i grup roboczych na swojej liście przeglądania i
rejestruje informację o głównych przeglądarkach tych segmentów.
•
Promuje wybrane przez siebie potencjalne przeglądarki na przeglądarki zapasowe, a następnie
przekazuje im co 15 minut kopie aktualnej listy przeglądania.
•
Odpowiada na pytania klientów, przekazując im listę przeglądarek zapasowych.
Co widzimy w Otoczeniu Sieciowym?
Za poprawne wyświetlanie zasobów sieci odpowiada usługa przeglądania (Browser Service). To
właśnie ona śledzi wszystkie serwery w sieci. Podstawowymi jej składnikami są:
•
przeglądarki (główna i zapasowe) przechowujące listy przeglądania,
•
klienci przeglądania, którzy uzyskują potrzebne informacje od przeglądarek.
Dzięki takiemu scentralizowaniu zadań pozostałe komputery nie muszą przechowywać własnych list
zasobów sieciowych i nie muszą nieustannie rozgłaszać swojej obecności w sieci, co odciąża ich
pamięć i CPU.
Z punktu widzenia usług przeglądania wszystkie serwery w sieci można podzielić następująco:
•
główna przeglądarka (Master Browser),
•
przeglądarka zapasowa (Backup Browser),
•
przeglądarka potencjalna (Potential Browser),
•
nie-przeglądarka (Non-browser),
•
główna przeglądarka domenowa (Domain Master Browser).
Który komputer musi się meldować?
Serwerami w sensie przeglądania są wszystkie komputery, które mogą udostępniać swoje zasoby. W
systemach Windows NT będą to maszyny, które mają uruchomioną usługę Server. Serwery mają
obowiązek zgłaszać się cyklicznie u głównej przeglądarki.
Kiedy jakiś serwer włącza się do sieci, wysyła skierowany datagram zgłoszeniowy (server
announcement) do głównej przeglądarki swojego segmentu, a ta po otrzymaniu zgłoszenia umieszcza
nadawcę datagramu na swojej liście przeglądania. Później, podczas pracy, wszystkie serwery
ponawiają okresowo swoje zgłoszenia, najpierw co 1 minutę, później 2, 4, 8, aż wreszcie zgłaszają się
systematycznie co 12 minut.
Który komputer jest najważniejszy w sieci?
Z punktu widzenia usług przeglądania najważniejszym komputerem jest główna przeglądarka (master
Browser). Każda istniejąca domena i każda grupa robocza ma własną główną przeglądarkę. Ponadto,
podczas gdy dla protokołów NetBEUI i NWLink IPX/SPX cała fizyczna sieć tworzy jedną sieć
logiczną, w sieciach opartych na protokole TCP/IP w jednej fizycznej sieci może istnieć wiele
logicznych podsieci. Każda taka podsieć musi mieć również swoją główną przeglądarkę. Jeśli
będziemy mówili dalej o segmencie sieciowym, to będziemy mieli na myśli grupę roboczą lub domenę
w jednej logicznej podsieci. Ile tych podsieci będzie, to już zależy od protokołu i jego konfiguracji.
Należy pamiętać, że cały ruch w sieci związany z przeglądaniem jest inicjowany na wszystkich
protokołach. Na przykład dla sieci złożonej z 30 komputerów znajdujących się w jednej grupie
roboczej i zastosowanych protokołów NetBEUI i TCP/IP z dwiema podsieciami będziemy mieli jedną
przeglądarkę główną dla NetBEUI i po jednej dla każdej podsieci TCP/IP. Jeśli mamy komputery z
Windows NT, w Event Viewer pojawią się wpisy o wyborach głównej przeglądarki dla każdego
protokołu niezależnie.
Na głównej przeglądarce spoczywa cały ciężar odpowiedzialności za utrzymywanie, aktualizację i
dystrybucję listy przeglądania, zawierającej wszystkie serwery z własnego segmentu sieciowego oraz
listę wszystkich domen i grup roboczych (patrz ramka 1).
Jeśli główna przeglądarka jest wyłączana prawidłowo, przed zakończeniem pracy wysyła do sieci
datagram wymuszenia elekcji (ForceElection), aby spowodować nowe wybory. W systemach
Windows NT pojawia się w Event Viewer wpis o zajściu zdarzenia 8033 (rys. 1). Jeśli natomiast
wyłączenie jest nieprawidłowe, po jakimś czasie nowe wybory zostaną zainicjowane przez jednego z
klientów, który nie będzie się mógł skontaktować z główną przeglądarką. Nastąpi to najpóźniej w
ciągu 15 minut, kiedy to przeglądarka zapasowa (backup Browser) zechce odświeżyć swoją listę
przeglądania.
Rys. 1. Informacja o elekcji
Który komputer informuje klientów?
Przeglądarki zapasowe otrzymują cyklicznie co 15 minut kopie listy przeglądania od głównej
przeglądarki swojego segmentu sieci i to właśnie one odpowiadają na pytania klientów. Na każde 32
komputery w sieci powinna być jedna przeglądarka zapasowa i co najmniej jedna na mniej niż 32
stacje. Oznacza to, że w segmentach zawierających mniej niż 32 komputery będzie znajdowała się
jedna przeglądarka główna i jedna zapasowa. Przeglądarki zapasowe, tak jak zwykłe serwery,
zgłaszają się cyklicznie do przeglądarki głównej. Serwery domeny są zawsze przeglądarkami -
głównymi lub zapasowymi.
Który komputer może być ważny?
Większość komputerów to przeglądarki potencjalne (potential Browser). Mają one możliwość
pełnienia funkcji przeglądarek głównych lub zapasowych, jeśli zajdzie taka potrzeba. One również
zgłaszają się cyklicznie do przeglądarki głównej.
Który komputer jest zawsze klientem?
Nie wszystkie komputery w sieci mają możliwość utrzymywania własnej listy przeglądania, a w
związku z tym nie mogą spełniać funkcji przeglądarek. W różnych systemach konfiguruje się to
inaczej, a jak o tym za chwilę.
Przekraczanie granic podsieci
Sytuacja komplikuje się w dużych sieciach, w
których poszczególne segmenty są rozdzielone
routerami. Do poprawnego funkcjonowania
takich sieci musi być zastosowany protokół
routowalny. Najbardziej logicznym wyborem
wydaje się protokół TCP/IP. Aby było możliwe
przeglądanie całej sieci, musi być zastosowany
model domenowy z co najmniej jednym
Windows NT Advanced Server w domenie.
W każdej domenie istnieje główna przeglądarka
domenowa (Domain Master Browser), która
spełnia specjalne funkcje. Zostaje nią zawsze
PDC tej domeny. Podczas startu PDC w jego
Event Viewer pojawia się wpis o zajściu
zdarzenia 8015.
Jeśli domena rozciąga się na kilka podsieci,
każda z tych podsieci funkcjonuje niezależnie i
każda ma własną główną i zapasowe
przeglądarki. Główne przeglądarki podsieci
kontaktują się cyklicznie co 15 minut z główną
przeglądarką domeny i przekazują jej listy
przeglądania ze swoich segmentów. Główna
przeglądarka domenowa po odebraniu tych list,
składa je w jedną całość, po czym odsyła z
powrotem do głównych przeglądarek
poszczególnych podsieci.
W celu zagwarantowania poprawnego
przekazywania list przez routery w pliku
LMHOSTS klientów muszą być zrobione
odpowiednie wpisy dla PDC i domeny lub musi
być skonfigurowana usługa WINS, aby klienci
mogli skontaktować się poprzez router z główną
przeglądarki domeny, korzystając z nazw
NetBIOS-owych. Dzięki głównym
przeglądarkom Domenowym możemy
wyświetlać na jednej liście przeglądania
zawartość całej domeny. Co więcej możemy wyświetlać komputery z innych domen, jeśli tylko w
którejś z podsieci naszej domeny znajduje się przynajmniej jedna maszyna z tych domen.
Niestety, taka organizacja systemu przeglądana nie pozwala na przeglądanie poprzez routery
zawartości grup roboczych, ponieważ nie ma mechanizmu przekazywania przez router informacji
pomiędzy głównymi przeglądarkami poszczególnych segmentów, tak jak to jest w przypadku domeny.
Grupy robocze rozdzielone routerami są niezależnymi jednostkami, choć z tymi samymi nazwami.
Przeglądanie odległej grupy roboczej jest jednak możliwe, jeśli podsieć, do której należą komputery
grupy roboczej, zawiera przynajmniej jeden komputer z domeny. Wówczas przeglądarki domeny
przekażą sobie informację o tej grupie roboczej (patrz ramka 2).
Który komputer może być przeglądarką
Standardowo wszystkie komputery z zainstalowanym sieciowym systemem operacyjnym Microsoftu
(Windows NT, 95, 98, Windows for Workgroups) są potencjalnymi przeglądarkami. Zdolność tą
możemy jednak modyfikować.
Przykład: jedna domena i trzy podsieci
Mamy domenę o nazwie D1 rozciągającą się na trzy
podsieci: S1, S2, S3. PDC domeny D1 znajduje się
w podsieci S1, pozostałe komputery domeny są
rozmieszczone w wszystkich trzech podsieciach, a
każda z tych podsieci posiada swoją maszynę NT.
Podsieć S3 zawiera również komputery należące do
grupy roboczej G1 oraz komputery należące do innej
domeny - D2, której PDC znajduje się poza obrębem
tych trzech podsieci.
Główna przeglądarka podsieci S3 (NT Workstation)
wysyła swoją lokalną listę serwerów, domen i grup
roboczych do głównej przeglądarki domeny. Lista ta
zawiera oczywiście również domenę D2 oraz grupę
roboczą G1. Główna przeglądarka domeny dodaje te
informacje do swojej listy przeglądania i przekazuje
je wszystkim swoim podsieciom. W ten sposób
również komputery w podsieciach S1 i S2 będą
widziały na swoich listach przeglądania domenę D2
i grupę roboczą G1. Aby jednak klient z S2 (lub S1)
mógł uzyskać listę serwerów z G1 lub D2, musi
zwrócić się do ich głównych przeglądarek. śeby to
było możliwe, w pliku LMHOSTS musi znaleźć się
wpis z ich numerem IP (lub prawidłowo
skonfigurowany WINS).
Windows NT Server i Workstation
W rejestrach systemów Windows NT (Server lub Workstation) znajdują się dwa klucze związane z
usługami przeglądania. Oba są umieszczone w:
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Browser\Parameters
Gdy Windows NT uruchamia się, Browser Service sprawdza klucz MaintainServerList. Klucz ten
przyjmuje wartości:
•
NO - ten komputer nie może pełnić roli przeglądarki,
•
YES - ten komputer zostanie przeglądarką (główną lub zapasową), każdy kontroler domeny
przyjmuje standardowo wartość YES,
•
AUTO - ten komputer jest przeglądarką potencjalną (Potential Browser), może zostać Master
lub Backup Browserem w zależności od liczby aktualnie aktywnych przeglądarek; decyzja o
tym, czy ten właśnie komputer zostanie przeglądarką zapasową zależy od przeglądarki
głównej; wartość AUTO jest standardową wartością klucza MaintainServerList dla stacji z
Windows NT Workstation 4.0.
Drugim z kluczy związanych z usługą przeglądania jest IsDomainMasterBrowser. Decyduje on o tym,
czy komputer zostanie główną czy zapasową przeglądarką. Jeśli parametr ten ma wartość YES (lub
TRUE) to komputer ten staje się tzw. preferowaną przeglądarką główną (Preferred Master Browser).
Oznacza to, że jest on traktowany priorytetowo przy decyzji o wyborze Master Browser i jeśli tylko
inne czynniki nie wpłyną na wybór, ten właśnie komputer zostanie przeglądarką główną.
Standardowo klucz IsDomainMasterBrowser ma zawsze wartość NO (lub FALSE). Jeśli chcemy to
zmienić, aby skonfigurować jakiś konkretny komputer jako główną przeglądarkę, musimy zmienić
odpowiednie wartości w rejestrach. Nie ma innej możliwości.
Windows 95/98
Zmianę parametru MaintainServerList przeprowadzamy w aplecie Network dla usługi "Udostępnianie
plików i drukarek w sieciach Microsoft Networks" dla parametru "Nadrzędny system przeglądania"
(włączony, wyłączony, automatyczny).
Windows for Workgroups
W pliku system.ini w sekcji Network należy dodać pozycję MaintainServerList i nadać jej
odpowiednia wartość.
Elekcja głównej przeglądarki
Oczywiście w każdej sieci może być (i na ogół jest) wiele komputerów mogących spełniać funkcję
przeglądarek. Wybór jednej z nich jako Master Browser następuje na drodze szalenie demokratycznej
elekcji. Zachodzi ona, gdy:
•
jeden z klientów sieci nie może zlokalizować Master Browser, czyli nie może pobrać
informacji o zasobach sieci,
•
do sieci włącza się komputer skonfigurowany jako Preferred Master Browser (zawsze wtedy
wymuszane są nowe wybory),
•
startuje kontroler domeny.
W każdej z powyższych sytuacji startujący komputer lub klient, który nie może skontaktować się z
przeglądarką, inicjuje nową elekcję. Do całej sieci zostaje wysłany datagram elekcyjny (election
datagram), a w Dzienniku Zdarzeń (jeśli jest to Windows NT Server lub Workstation) komputera,
który rozpoczyna nowe wybory, pojawia się odpowiedni wpis. Po otrzymaniu datagramu elekcyjnego
wszystkie przeglądarki sprawdzają kryteria elekcyjne i jeśli mają lepsze warunki, aby zostać główną
przeglądarką wysyłają własny datagram.
Jest kilka ściśle określonych zasad, według których następuje wybór głównej przeglądarki. Przede
wszystkim PDC (Primary Domain Controller) zawsze będzie główną przeglądarką segmentu
sieciowego, do którego jest podłączony. Jeśli w tym segmencie nie ma PDC, o wyborze decyduje lista
kryteriów, dająca największy priorytet systemowi Windows NT Server, później Windows NT
Workstation, Windows 95/98 aż do Windows for Workgroups.
Gdy w wyniku elekcji komputer zostaje nową główną przeglądarką i jego lista przeglądania jest pusta,
wysyła żądanie zgłoszenia (request announcement) rozgłaszane w całej sieci. Po otrzymaniu tego
datagramu każdy serwer musi wysłać swój datagram zgłoszeniowy (server announcement).
Dlaczego czasem nie działa?
Użytkownik JAN otwiera na swoim komputerze Otoczenie Sieciowe, szukając zasobu sieciowego
DANE. Jego komputer najpierw znajduje główną przeglądarkę i uzyskuje od niej listę przeglądarek
zapasowych. Z listy tej wybiera sobie do trzech przeglądarek zapasowych i zapamiętuje ich nazwy do
późniejszego użycia. Następnie zwraca się do losowo wybranej przeglądarki zapasowej z pytaniem o
lokalizację zasobu (losowy wybór przeglądarki pozwala na równomierne obciążenie wszystkich) i od
niej uzyskuje informacje o serwerach w swoim segmencie oraz o innych domenach i grupach
roboczych.
Przy następnych próbach uzyskania listy przeglądania, zwraca się już bezpośrednio do jednej z
wybranych przez siebie przeglądarek zapasowych. Jeśli ta nie odpowiada, zwraca się do innej. Jeśli nie
ma dostępu do żadnej ze swoich przeglądarek zapasowych, żąda od przeglądarki głównej nowej listy
przeglądarek zapasowych. Jeśli ta również nie odpowiada, wówczas nasz klient rozpoczyna nową
elekcję.
W tej sytuacji może zdarzyć się, że w czasie przerwy pomiędzy zatrzymaniem poprzedniej i wyborem
nowej głównej przeglądarki, serwery z tego segmentu znikną z list przeglądania w innych grupach
(domenach), mimo że są podłączone do sieci i pracują.
Może również zaistnieć sytuacja odwrotna, tzn. na liście przeglądania będą wyświetlane serwery i
domeny (grupy), które od dłuższego czasu są już wyłączone. I to jest sytuacja dosyć typowa.
Dlaczego?
Główna przeglądarka wykreśla serwer ze swojej listy dopiero wtedy, gdy nie zgłosi się przez trzy
kolejne cykle, co może nastąpić dopiero po 36 minutach, a przeglądarki zapasowe aktualizują swoje
listy co 15 minut. Może się więc zdarzyć, że serwer będzie wyświetlany na liście przeglądania jeszcze
przez 51 minut od czasu jego wyłączenia.
Ten sam problemem innych domen i grup. Zostaną skreślone z listy dopiero wtedy, gdy ich główna
przeglądarka nie zaanonsuje się w sieci przez 3 kolejne cykle, które następują co 15 minut. Biorąc pod
uwagę czas potrzebny na odświeżenie listy w przeglądarce zapasowej, domeny i grupy mogą być
wyświetlane na listach innych segmentów jeszcze przez 60 minut po ich wyłączeniu.
Jak zoptymalizować przeglądanie?
Microsoft szacuje, że ruch spowodowany usługami przeglądania stanowi 51 proc. całego ruchu w
naszej sieci. Na ten ruch składają się:
•
zgłoszenia serwerów,
•
zgłoszenia lokalnych przeglądarek,
•
zgłoszenia grup roboczych,
•
elekcje,
•
przekazywanie list przeglądania.
Jest kilka czynności, które możemy wykonać, aby zmniejszyć ruch w sieci:
•
Każdy komputer, który ma skonfigurowaną usługę Server, musi anonsować się w sieci co 12
minut. Każdy taki komputer jest dodawany do listy przeglądania, zwiększając jej rozmiar
(każdy serwer to co najmniej 27 bajtów dodanych do listy przeglądania). Przeanalizujmy, czy
wszystkie komputery w naszej sieci muszą udostępniać swoje zasoby innym. Jeśli nie,
zdezaktywujmy niepotrzebną usługę. W Windows NT Server (Workstation) 4.0 robimy to w
Control Panel (Services) lub za pomocą narzędzia administracyjnego dostępnego w Server NT
- Server Manager.
•
Ruch związany z przeglądaniem sieci jest inicjowany na wszystkich protokołach. Jeśli
wyeliminujemy niepotrzebne protokoły, możemy go poważnie ograniczyć.
•
Liczba przeglądarek zapasowych jest kontrolowana przez przeglądarkę główną segmentu. Jeśli
uzna ona, że jest potrzebna dodatkowa, wybiera ją spośród przeglądarek potencjalnych.
Możemy kontrolować, które komputery w sieci mogą pełnić funkcję przeglądarek,
ograniczając się do komputerów z najlepszymi parametrami. W systemach NT będzie to
parametr
•
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Browser\Parameters
•
\MaintainServerList.
Należy ustawić go na NO, jeśli nie chcemy, aby dany komputer został przeglądarką.
W systemie Windows 95 w aplecie Network dla składnika "Udostępnianie plików i drukarek w
sieciach Microsoft Networks" ustawiamy wartość parametru "Nadrzędny system przeglądania"
na "Wyłączony". W systemie Windows for Workgroups należy w pliku system.ini dodać w
sekcji Network pozycję: MaintainServerList=NO
•
W rejestrach systemu Windows NT znajdują się parametry sterujące przesyłaniem listy
przeglądania. Umieszczone są one również w:
•
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Browser\Parameters.
Są to:
•
Master Periodicity - określa, jak często główna przeglądarka kontaktuje się z główną
przeglądarką domenową. Standardowo jest to 720 sekund, czyli 12 minut.
•
BackupPeriodicity - określa, jak często przeglądarka zapasowa kontaktuje się z
Główną, aby otrzymać kopię listy przeglądania. Standardowo jest to 15 minut.
•
Wszystkie serwery w sieci mają obowiązek meldować się cyklicznie u głównej przeglądarki.
Długość tego cyklu możemy sami ustalić, modyfikując rejestr:
•
\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Paramete
rs.
•
Dodajemy klucz Announce (REG_DWORD) i jego wartość ustalamy na liczbę sekund
pomiędzy zgłoszeniami. Standardowo jest to 720 (12 minut).
Zanim jednak zaczniemy manipulować rejestrami, musimy sobie uświadomić, że im szybciej będzie
nam się odświeżać lista przeglądania, tym większe obciążenie sieci.
Narzędzia dla profesjonalistów
Microsoft Windows NT Server Resource Kit 4.0 zawiera dwa narzędzia, za pomocą których możemy
monitorować przeglądarki istniejące w sieci: browstat.exe i browmon.exe.
Rys. 2. Browser monitor
Browmon.exe, czyli Browser Monitor dostępny po zainstalowaniu z menu Start jest narzędziem
graficznym, wyświetlającym listę przeglądarek (głównych i zapasowych w całej sieci) dla wszystkich
protokołów w sieci (rys. 2). Po wybraniu jakiejś przeglądarki możemy obejrzeć zawartość jej listy
przeglądania (rys. 3), tzn. spis serwerów znajdujących się w jej segmencie, oraz listę domen i grup
roboczych o których wie ta przeglądarka. Jeśli wybierzemy opcję Info, wyświetli nam się okno (rys. 4)
z informacjami o liczbie zgłoszeń serwera (server announcement), elekcji itd.
Rys. 3. Zawartość listy przeglądania
Browstat.exe jest narzędziem dostępnym z linii poleceń. Nie posiada tak ładnego interfejsu
graficznego jak Browser Monitor, ale za to ma większe możliwości. Może np. wymuszać elekcję lub
zatrzymywać przeglądarkę główną (i przez to również wymuszać elekcję).
Rys. 4. Informacja o liczbie zgłoszeń serwera
Usługa przeglądania na ogół pracuje w tle i nie wymaga naszej interwencji, szczególnie w przypadku
małych, lokalnych sieci. Jednakże w większych sieciach, rozciągających się na wiele logicznych
podsieci, zaczynają się problemy: nadmierny ruch związany z przeglądaniem, kłopoty z komunikacją.
Mam nadzieję, że zrozumienie mechanizmu przeglądania pomoże te problemy rozwiązać.