Szkolenie Cisco TSHOOT – teoria i praktyka rozwiązywania problemów w sieciach W minionym roku w ofercie autoryzowanych szkoleń Cisco, realizowanych przez SOLIDEX pojawiło się szkolenie TSHOOT poświęcone zagadnieniom diagnozowania i rozwiązywania problemów w sieciach komputerowych. Po przeszło półrocznej obecności tego szkolenia w naszej ofercie postanowiłem podzielić się z czytelnikami Integratora moimi wrażeniami instruktora prowadzącego zajęcia z tego tematu. Czy troubleshooting to działania inżynierskie? Zawsze byłem gorącym zwolennikiem klasyfikowania pracy informatyków jako działalności inżynierskiej. Wiąże się z tym posiadanie odpowiedniej wiedzy, zastosowanie właściwych metod i narzędzi jak również w miarę możliwości ograniczanie nieskrępowanej „inwencji twórczej”. Możemy posłużyć się przykładem z architektury: urzeczywistnienie wizji architekta wymaga przemyślanych i rzetelnych działań inżynierskich. Zasad tych staram się również przestrzegać i stosować przy projektach i wdrożeniach sieci komputerowych. Czy jednak rozwiązywanie problemów w systemach komputerowych, w tym również w sieciach, można ująć w ramy działalności inżynierskiej? Na pierwszy rzut oka wydaje się to trudne. Przecież występowania problemów nie można „zaplanować” a ich rozwiązania „zaprojektować”. Przy rozwiązywaniu problemów liczy się przede wszystkim skuteczność i czas. W wielu przypadkach podejmujemy decyzje i działamy pod presją czasu. Przełożeni i użytkownicy oczekują szybkiego i skutecznego rozwiązania problemu. Mamy wrażenie, że przy rozwiązywaniu problemów liczy się przede wszystkim intuicja, łut szczęścia, a czasami również przypadek. Czy takie warunki diagnozowania problemów dają się pogodzić z zasadami uporządkowanej pracy inżynierskiej? A może istnieją metody pozwalające zmienić sposób pracy przy rozwiązywaniu problemów? Jeśli za wyznacznik klasyfikujący działania jako „inżynierskie” przyjmiemy ich uporządkowany, strukturalny charakter, to pomimo wielu cech towarzyszących rozwiązywaniu problemów, które utrudniają inżynierskie podejście do zagadnienia, nadal jest ono możliwe a nawet niezbędne. Troubleshooting a zarządzanie siecią Infrastruktura sieciowa jest żywym organizmem: realizowane funkcje dostosowywane są do potrzeb użytkowników oraz wymagań biznesowych, zmieniająca się dobowa aktywność wpływa na zmiany obciążenia łączy i urządzeń, zakres uprawnień użytkowników i ich działania wymagają nadzoru i monitoringu, występujące awarie i usterki wpływają na jakość i dostępność usług. W związku z tym dla zapewnienia sprawnego działania infrastruktury sieciowej niezbędne jest sprawowanie nad nią opieki. Prace z tym związane mogą mieć charakter doraźny i być sterowane zdarzeniami: jeśli coś nie działa jak należy, wówczas zastanawiamy się, co i jak należy zmienić. O ile dla niewielkich i prostych instalacji taki tryb prowadzenia zarządzania może dawać dobre rezultaty, to w przypadku bardziej złożonych struktur nieuchronnie prowadzić będzie do katastrofy: wszystkie wykonywane przez nas operacje będą miały charakter wyjątków, nie będziemy w stanie wyodrębnić i planować prac rutynowych. Wprowadzamy więc uporządkowane działania posiłkując się nierzadko metodologiami systematyzującymi zagadnienia zarządzania: czerpiemy wzory z modelu ITIL (IT Infrastructure Library), ISO FCAPS (Fault, Configuration, Accounting, Performance, Security), ITU-T TMN (Telecommunications Management Network), czy też z zaleceń producentów sprzętu jak również własnych doświadczeń. Dążymy do opracowania sprawnych procedur postępowania i jak najlepszego wykorzystania narzędzi pozwalających usprawnić naszą pracę. Efektem tych działań powinien być spójny i sprawnie działający schemat procesów, procedur i stosowanych narzędzi pokrywający wszystkie aspekty zarządzania siecią. Jaki ma to wpływ na rozwiązywanie problemów w sieci? Przede wszystkim dobrze zarządzana sieć posiada kompletną i aktualną dokumentację, do której możemy odwołać się w czasie rozwiązywania problemów. W szeroko pojmowanej dokumentacji powinniśmy znaleźć nie tylko informacje o strukturze sieci, schemacie adresacji czy zasadach działania routingu, ale również: -scenariusze i procedury testów potwierdzających prawidłowe działanie, -wskazówki dotyczące interpretacji typowych informacji diagnostycznych z urządzeń, -opis poprawnego i typowego zachowania się sieci (np. typowe obciążenie procesorów urządzeń czy wykorzystanie łączy), -informacje o aktualnych konfiguracjach urządzeń, zmianach i wprowadzanych modyfikacjach konfiguracji oraz przyczynach wprowadzenia tych zmian. Wszystkie te informacje pozwalają dużo sprawniej prowadzić diagnostykę problemów i wyciągać prawidłowe wnioski z dokonywanych obserwacji. Można zatem zaryzykować twierdzenie, że podstawą sprawnego rozwiązywania problemów jest prawidłowo prowadzone zarządzanie siecią. Systematyczne podejście do rozwiązywania problemów Czy zatem prawidłowe zarządzanie siecią oraz posiadanie aktualnej i szczegółowej dokumentacji jest gwarantem sprawnego rozwiązywania problemów? Wdrożenie procedur zarządzania siecią niestety nie daje automatycznie gwarancji usystematyzowanego podejścia do zagadnień troubleshootingu. Rozwiązywanie problemów wymaga zdefiniowania specyficznego schematu postępowania, odmiennego od procedur zarządzania siecią. Cisco w swoich materiałach szkoleniowych proponuje schemat oparty na przechodzeniu pomiędzy poszczególnymi fazami rozwiązywania problemu. W całym procesie wyróżnione zostały następujące fazy: Definicja problemu. Pozyskanie informacji. Analiza. Eliminacja. Stawianie hipotez. Weryfikacja hipotez. Rozwiązanie problemu. Na rysunku 1 przedstawiono graficznie relacje pomiędzy poszczególnymi fazami procesu diagnostyki i rozwiązywania problemu. Rys. 1. Fazy procesu diagnostyki i rozwiązywania problemu. Rozpoczęcie procesu diagnozowania wymaga prawidłowego zdefiniowania problemu. Ten krok jest szczególnie istotny w przypadku, gdy problem został zgłoszony przez użytkowników opisujących jego symptomy. Zdarza się, że przy zgłaszaniu problemu, użytkownicy stawiają nieuzasadnione hipotezy dotyczące przyczyn oraz błędnie interpretując obserwowane zjawiska mogą pomijać w opisie istotne fakty. Wszystko to wskazuje na konieczność zrewidowania przyjmowanego zgłoszenia w celu poprawnego zdefiniowania problemu. Z potrzebą redefiniowania problemu możemy spotkać się również w przypadku, gdy prowadzone prace diagnostyczne ujawnią nowe fakty i pozwolą doprecyzować czy wręcz zmienić pierwotną postać definicji problemu. Kolejnym krokiem w procesie diagnostycznym jest pozyskanie informacji pozwalających zrozumieć istotę problemu i prowadzić dalsze prace. Na tym etapie bardzo istotne jest opracowanie wstępnego planu działania, według którego będziemy pozyskiwać informacje. Plan działania musi uwzględniać zarówno charakter rozwiązywanego problemu, jego zakres, potencjalne przyczyny wystąpienia jak również możliwości pozyskania informacji. Należy wziąć pod uwagę dostępne narzędzia, możliwości ich wykorzystania, koszt i czasochłonność pozyskania informacji, jak też istotność i użyteczność informacji, które zamierzamy pozyskać. Na etapie analizy weryfikujemy pozyskane informacje wykorzystując do tego różnorakie środki: zestawiamy pozyskane dane z dokumentacją sieci, porównujemy z poprawnymi wzorcowymi danymi (tutaj widać istotną rolę posiadania wzorcowych przykładów danych z poprawnie pracującej sieci), wykorzystujemy naszą wiedzę i doświadczenie w celu oceny, które informacje są prawidłowe, a które wskazują na potencjalną przyczynę problemu. Etap eliminacji jest kluczowym etapem dla efektywnego procesu diagnostycznego. Na tym właśnie etapie podejmujemy decyzję o wykluczeniu potencjalnych przyczyn diagnozowanego problemu. Poprawne decyzje podejmowane na tym etapie pozwalają eliminować całe obszary potencjalnych przyczyn problemu wydatnie skracając czas niezbędny na diagnostykę i znalezienie rozwiązania. Należy zwrócić szczególną uwagę na skutki jakie mogą pociągać za sobą błędne decyzje: odrzucenie obszaru zagadnień, w którym faktycznie znajduje się przyczyna rozwiązywanego problemu, prowadzić może do wydłużenia prac diagnostycznych i weryfikowania wielu nietrafnych hipotez. Formułowanie hipotez to pierwszy z etapów opracowywania rozwiązania problemu. Na podstawie zebranych danych, ich analizy, jak również eliminacji potencjalnych przyczyn, typujemy najbardziej prawdopodobne przyczyny problemu. W bardziej złożonych przypadkach, zwłaszcza w warunkach ograniczonych możliwości wykonania rekonfiguracji środowiska produkcyjnego (np. wysokie koszty lub ograniczenia w dostępnym czasie serwisowym), możemy na tym etapie zdefiniować cząstkowe hipotezy, których weryfikacja pozwoli upewnić się co do słuszności podejrzeń o przyczynach danego problemu. Formułując cząstkowe hipotezy powinniśmy mieć na uwadze możliwości ich przetestowania oraz ocenę istotności dla formułowania ostatecznego rozwiązania problemu. Faza weryfikacji hipotez pozwala upewnić się o słuszności naszych podejrzeń co do przyczyn rozwiązywanego problemu. Zwykle testowanie hipotez wymaga wprowadzenia zmian w konfiguracji – należy pamiętać, że wprowadzane zmiany mogą mieć wpływ na pracę sieci. Wdrożenie zmian wymaga zatem odpowiedniego przygotowania: należy dobrze opisać proponowane zmiany, rozważyć ich wpływ na inne elementy konfiguracji, zaplanować testy weryfikujące poprawność działania sieci po wprowadzeniu zmian jak również opracować plan powrotu do pierwotnej konfiguracji w przypadku wystąpienia nieoczekiwanych i niemożliwych do szybkiego rozwiązania problemów po wprowadzeniu zmian. Ostatnim etapem troubleshootingu jest wdrożenie znalezionego rozwiązania problemu. Ponieważ w bardzo wielu przypadkach rozwiązanie polega na wdrożeniu zmian w konfiguracji sieci, nie można zapomnieć o odpowiednim udokumentowaniu wdrożonych zmian. Jeśli przyczyną problemu okazały się błędy lub niejednoznaczności w projekcie sieci, odpowiednich uzupełnień wymagać będzie również dokumentacja projektowa. Aspekty organizacyjne procesu troubleshootingu W wielu organizacjach zagadnienia administrowania siecią są realizowane w oddzielnych zespołach względem administrowania serwerami czy zarządzania aplikacjami. Nierzadko nawet w ramach zarządzania infrastrukturą sieciową występuje podział np. na zespoły odpowiedzialne za sieć WAN, sieci lokalne, systemy bezpieczeństwa, czy też węzły styku z Internetem. Praktyka troubleshootingu pokazuje, że w wielu przypadkach rozwiązanie problemu wymaga zaangażowania wielu osób, niekiedy wielu zespołów, odpowiedzialnych za różne elementy działania sieci i świadczonych w niej usług. Przykładem może być konieczność zaangażowania administratorów serwerów czy też osób odpowiedzialnych za systemy aplikacyjne do rozwiązywania problemów z wydajnością, czy też stabilnością pracy aplikacji. Przedstawiony strukturalny schemat rozwiązywania problemów znajduje swoje zastosowanie również w takim przypadku. Należy jedynie uwzględniać możliwość eskalacji problemu i angażowania dodatkowych zespołów oraz osób. Istotną rolę odgrywa w tym przypadku komunikacja pomiędzy zespołami i osobami pracującymi nad rozwiązaniem problemu. Zdarzają się problemy, których diagnozowanie i poszukiwanie przyczyn przeciąga się w czasie. Ze względu np. na ograniczenia możliwości testowania hipotez prace są zawieszane w pewnych okresach czasu. Powoduje to „oderwanie się” od rozwiązywanego problemu, a czasami występuje wręcz konieczność przekazania prowadzonych prac innym członkom zespołu. Nie zawsze proces rozwiązywania problemu przebiega optymalną ścieżką. Błędna interpretacja zebranych informacji, błędne hipotezy, czy też błędy na etapie eliminacji powodują konieczność powrotu do wcześniejszych etapów: zebrania dodatkowych informacji, ponownego przeanalizowania faktów, czy też zweryfikowania decyzji eliminacyjnych. Ponownej weryfikacji mogą wymagać również przeprowadzone testy hipotez, zwłaszcza jeśli na pewnym etapie rozwiązywania problemu dochodzimy do sprzecznych wniosków. Przy rozwiązywaniu problemów można skorzystać z doświadczeń i rezultatów prac związanych z diagnozowaniem wcześniejszych przypadków. W niektórych sytuacjach pozwala to w istotny sposób skrócić czas rozwiązywania problemu, gdy obserwowane symptomy są identyczne jak dla wcześniejszych przypadków: po zebraniu niezbędnych informacji można wówczas wprost wskazać hipotetyczną przyczynę nieprawidłowości omijając czasochłonne etapy analizy oraz eliminacji. We wszystkich wyżej przytoczonych sytuacjach bardzo istotną rolę odgrywa dokumentowanie prowadzonych prac diagnostycznych. Dokumentacja ułatwia przekazywanie sprawy kolejnym osobom jak również angażowanie nowych osób czy zespołów. Pozwala również na powtórne przeanalizowanie zebranych informacji i zweryfikowanie podjętych wcześniej na etapie eliminacji decyzji. Stanowi doskonałą bazę wiedzy uzupełniającą typową dokumentacje sieci. Tworzenie dokumentacji-historii prac diagnostycznych dla niektórych osób wydaje się na pierwszy rzut oka marnowaniem czasu, lecz w dłuższej perspektywie prowadzi do usprawnienia działania zespołu administratorów oraz udoskonalenia procesu diagnostycznego. Warunki ćwiczeń laboratoryjnych na szkoleniu TSHOOT W ramach szkolenia TSHOOT uczestnicy rozwiązują problemy sieciowe w zakresie technologii oraz elementów konfiguracji routerów i switchy Cisco omawianych na szkoleniach SWITCH oraz ROUTE. Znajomość technologii oraz umiejętność konfigurowania urządzeń Cisco w tym zakresie jest wymagana, gdyż czas i zakres szkolenia TSHOOT nie zakłada prowadzenia wykładów dotyczących tych zagadnień. Pewne elementy konfiguracji wykorzystywanych na szkoleniu TSHOOT wykraczają poza zakres szkoleń SWITCH i ROUTE – dotyczy to głównie zagadnień security. Uczestnicy szkolenia mają do dyspozycji środowisko laboratoryjne składające się z kilkunastu urządzeń. Strukturę sieci laboratoryjnej wykorzystywanej przez 3-4 osobową grupę przedstawia rysunek 2. Rys. 2. Struktura sieci laboratoryjnej szkolenia TSHOOT. Wykonywane ćwiczenia można podzielić na trzy grupy tematyczne obejmujące: problemy związane z sieciami LAN, problemy dotyczące routingu (EIGRP, OSPF, BGP), problemy bezpieczeństwa w sieci. W ramach każdej grupy tematycznej realizowane są dwa lub trzy ćwiczenia, z których każde zawiera od 3 do 5 zadań w postaci „zgłoszeń problemów” (trouble tickets). Diagnozowane problemy związane są z błędami konfiguracji – od uczestników oczekiwane jest nie tyle proste znalezienie błędu konfiguracyjnego, co przede wszystkim przeprowadzenie diagnostyki sieci pozwalającej na podstawie zbieranych informacji zidentyfikować i usunąć przyczyny problemów. Na zakończenie szkolenia przeprowadzane jest ćwiczenie podsumowujące, w którym rozwiązywane problemy dotyczą wszystkich omawianych wcześniej technologii. Współdziałanie w grupie Interesującym aspektem szkolenia jest praca w zespołach rozwiązujących problemy. Szkolenie przeprowadzane jest w grupie 6-12 osób dzielonych na dwa do czterech zespołów. Każdy z zespołów liczy 3-4 osoby i ma za zadanie zdiagnozować i rozwiązać problemy przedstawiane w poszczególnych ćwiczeniach. Ćwiczenia realizowane w poszczególnych zespołach są identyczne co daje możliwość porównania sposobu i efektów pracy poszczególnych zespołów. Na zakończenie ćwiczenia uczestnicy szkolenia z różnych grup mogą podzielić się doświadczeniami zebranymi w trakcie pracy. Organizacja pracy w zespole oddaje rzeczywiste warunki rozwiązywania problemów, gdzie zaangażowany jest cały zespół. W zależności od sposobu organizacji pracy zespołowej zaangażowanie kliku osób może pomagać lub utrudniać rozwiązanie problemów. Stosowane metody rozwiązywania problemów Uczestnicy szkolenia mają do dyspozycji dostęp terminalowy do portów konsoli poszczególnych urządzeń oraz mogą korzystać z testowych komputerów w środowisku laboratoryjnym. Pomiędzy urządzeniami możliwe jest również nawiązywanie zdalnych sesji terminalowych (telnet, ssh). W razie potrzeby istnieje możliwość użycia oprogramowania Wireshark do analizy pakietów przesyłanych w sieci laboratoryjnej. Ponadto dostęp do Internetu daje możliwość skorzystania z dokumentacji jak również innych zasobów informacji pozwalających znaleźć wyjaśnienie obserwowanych zjawisk. Najprostszą, aczkolwiek najmniej kształcącą metodą rozwiązywania problemów diagnozowanych w ramach szkolenia jest czytanie konfiguracji urządzeń i wychwycenie błędów w nich zawartych. Dużo ciekawszą metodą jest próba zebrania informacji oraz obserwowanie zachowania urządzeń i na tej podstawie przeprowadzenie wnioskowania odnośnie przyczyny problemów. Ponieważ diagnozowana sieć jest siecią laboratoryjną, uczestnicy szkolenia mają niemal nieograniczone możliwości testowania stawianych hipotez (nie ma możliwości dokonywania zmian topologii sieci). Na zakończenie każdego z ćwiczeń prezentowane jest podsumowanie, które zawiera nie tylko wskazanie, gdzie krył się błąd, ale podaje również metody diagnostyczne, których użycie pozwala zidentyfikować przyczyny problemów. Uczestnicy szkolenia mają możliwość w ramach takiego podsumowania podzielić się również własnymi spostrzeżeniami oraz uwagami odnośnie przeprowadzanego procesu diagnostycznego. Inżynier SOLIDEX H.M.