<h1 id="0.introduction">0. Wstęp</h1>
<p>
+ Same materiały zapewnione przez Cisco do nauki dla kursantów są
+ wątłej jakości, tłumaczenie na język polski to ło matko, ło Jezu.
+ A prezentacje w PowerPoint w języku angielskim, potrafią nie zawierać
+ przykładów, czy zawierać błędy w poleceniach lub opisy mogą niepasować
+ do niektórych terminów (ale nie to, że merytorycznie coś jest nie tak,
+ są po prostu zamienione w tabeli miejscami XD).
</p>
<p>
Przedstawione tutaj informacje mogą nie tyle mijać się z celem, co być
<p>
<a href="">Bezpieczeństwo urządzeń sieciowych</a>
</p>
+ <h1 id="1.17.buildingasmallnetwork">1.17. Budowanie małej sieci</h1>
+ <p>
+ Ostatni rozdział pierwszego modułu kursu, ma skłonić nas do refleksji
+ na temat: Co gdyby trzeba było zbudować taką małą sieć? Oczywiście
+ pierwsze pytanie jak się nasuwa: <em>co to znaczy mała?</em> czasmi
+ może okazać się, że do budowy takiej sieci wystarczy router klasy SOHO
+ i dostęp do ISP. A czasami do małej sieci może zaliczać się nawet
+ kilka segmentów.
+ </p>
+ <h2 id="1.17.1.desingasmallnetwork">1.17.1. Projektowanie małej sieci</h2>
+ <p>
+ W tym podrozdziale zastanowimy się nad kilkoma aspektami, które trzeba
+ rozważyć podczas projektowania małej sieci.
+ </p>
+ <p>
+ Pierwszym z nich jest <strong>topologia</strong>. Małe sieci są
+ zazwyczaj proste, zasięgiem obejmują jeden poziom lub jeden nieduży
+ budynek. Takie sieci posiadają zazwyczaj jedno połączenie do ISP,
+ mogą posiadać łącze zapasowe w postaci połączenia np. z siecią
+ komórkową, jednak przełączanie między tymi sieciami może odbywać się
+ w sposób ręczny. Takie sieci są zarządzane zazwyczaj przez osoby
+ z zewnątrz, lub co może być rzadkością posiadają oni własnego
+ administratora IT.
+ </p>
+ <p>
+ Jeśli już decydujemy się, że będziemy budować sieć komputerową to
+ należy zastanowić się nad doborem urządzeń. Istnieją cztery
+ postawowe czynnki, które należy wziąć pod uwagę podczas wybierania
+ urządzeń dla naszej sieci:
+ </p>
+ <ul>
+ <li>Koszt urządzenia</li>
+ <li>Wydajność oraz typ portów/interfejsów</li>
+ <li>Możliwości rozbudowy</li>
+ <li>Funkcje i usługi oferowane przez firmware</li>
+ </ul>
+ <p>
+ Tworząc projekt sieci, nie można zapomnieć o adresacji IP i jej
+ ewentualnym podziale. Jeśli już będziemy dzielić adresy klasy
+ prywatnej na mniejsze podsieci, to warto oprzeć się na klasach
+ urządzeń i ich połączeniach. Dla przykładu powinniśmy wydzielić
+ osobną klasę dla serwerów i urządzeń sieciowych, ale tutaj ciekawą
+ opcją
+ mogą być komputery użytkowników, często są to laptopy, którą mogą mieć
+ więcej niż jedno połączenie. Warto mieć to
+ na uwadze zastanawiając się nad podziałem adresów IP.
+ </p>
+ <p>
+ Jeśli operamy swoją sieć o połączenia kablowe, raczej będzie to kabel
+ UTP, ponieważ jest prostszy w obsłudze, to warto pomyśleć o
+ nadmiarowości połaczeń, na przykład na jednego użytkownika przypadały
+ dwa gniazda sieciowe. Warto również mieć w zanadrzu zapasowy
+ przełącznik oraz router.
+ </p>
+ <p>
+ Ostatnim zagadnieniem jest zarządzanie ruchem, w przypadku małej sieci
+ nie jest to może priorytetowy temat do czasu, aż ktoś nie zacznie nam
+ wysycać łącza np. pobierając duży plik z Internetu. Wówczas najlepszym
+ sposobem jest inwestycja w przełączniki, którymi możemy zarządzać, tam
+ jest możliwość nie tyle wdrożenia QoS oczywiście jest to możliwe co
+ przypisania konkretnej przepustowości dla danego hosta w obu kierunkach.
+ </p>
+ <p>
+ Nie mniej jednak przełączniki i routery powinny być skonfigurowane w
+ taki sposób aby priorytetyzować ruch zgodnie z zapotrzebowaniem
+ wykorzystywanych w tej sieci protokół, tak więc dobrze skonfigurowane
+ sieci posiadają wdrożony QoS (<em>Quality of Service</em> -
+ priorytetyzację ruchu) (sic).
+ </p>
+ <h2 id="1.17.2.smallnetworkprotocols">1.17.2. Protokoły wykorzystywane w małych sieciach</h2>
+ <p>
+ Najczęsciej wykorzystywanymi protokołami w małej sieci będzie na pewno
+ protokoł HTTP lub HTTPS w bezpieczniejszej wersji. Protokoły pocztowe
+ również mogą mieć miejsce, jak i protokoły SMB w celu wymiany plików
+ z innymi współużytkownikami sieci. Do administracji mogą być
+ wykorzystywane protokoły HTTPS jak i SSH. Protokoły takie DHCP oraz
+ DNS muszą działać inaczej sieć może być trudna w użytkowaniu.
+ Najczęściej są one zapewniane przez takie urządzenia jak routery,
+ przynajmniej te klasy SOHO. Warto wspomnieć, że wiele usług może
+ wykorzystywać jeden ten sam serwer fizyczny.
+ </p>
+ <p>
+ Inna kwestią jest wdrożenie w sieci usług głosowych oraz video czatu.
+ Tutaj musimy się zastanowić czy nasza infrastruktura jest w obsłużyć
+ tego typu ruch oraz musimy wybrać jedną z trzech technologii:
+ </p>
+ <ul>
+ <li><strong>VoIP</strong> - tańszy odpowiednik dla telefonów IP,
+ oczywiście kosztem jakoś jak i funkcjonalności.</li>
+ <li><strong>Telefony IP</strong> - wymagają serwerów do sygnalizacji
+ oraz utrzymywania połączeń.</li>
+ <li><strong>Aplikacje czasu rzeczywistego</strong> - wszelkie aplikacje
+ dla videoczatów oraz komunikatory głosowe. Wymagają one małych
+ opóźnień w sieci oraz wdrożenia mechanizmów QoS. Niektóre z nich
+ mogą być oparte o protokoły <em>Real-Time Transport Protocol</em>
+ (RTP) oraz <em>Real-Time Transport Control Protocol</em> (RTCP).</li>
+ </ul>
+ <h2 id="1.17.3.smallnetworkexpanding">1.17.3. Rozbudowa małej sieci</h2>
+ <p>
+ Może zajść taka potrzeba, że małą sieć będzie trzeba rozbudować i
+ warto mieć to na uwadze już podczas projektowania małej sieci. Po co?
+ Aby wyrobić w na przykład nawyk prowadzenia
+ <strong>dokumentacji sieci</strong> zarówno topologii logicznej, jak
+ i fizycznej, w której można znaleźć opisy połączeń oraz lokalizacje
+ gdzie można znaleźć router i przełączniki. Jak i prowadzenie
+ <strong>spisu posiadanych urządzeń</strong>, które działają w sieci.
+ </p>
+ <p>
+ Dośc istotnym czynnikiem związanym z rozbudową sieci jest to jakim
+ <strong>budżetem</strong> dysponujemy, być może będziemy musieli z
+ czegoś zrezygnować lub wręcz przeciwnie będzimy mogli wdrożyć więcej
+ przydatnych innowacji. Ważnym czynnikiem determinującym rozbudowę
+ może być <strong>analiza ruchu</strong> przy użyciu ogólnodostępnych
+ narzędzi takicj jak np. <em>Wireshark</em>.
+ </p>
+ <p>
+ Aby analiza ruchu była miarodajna musi zostać przeprowadzona w
+ odpowiedni sposób. Poniżej znajduje się kilka reguł w jaki sposób
+ zbierać pakiety, tak aby dały jak najlepszy obraz tego co się dzieje
+ w sieci podczas normalnego dnia pracy, kiedy użytkownicy korzystają
+ z jej zasobów:
+ </p>
+ <ul>
+ <li>Zbieranie pakietów powinno odbywać podczas najwiekszego piku z
+ użycia jej zasobów. Powiedzmy gdzieś godzinę od rozpoczęcia pracy
+ w dniu kiedy większość pracowników jest obecna w siedzibie firmy.
+ </li>
+ <li>Przeprowadzenie zbierania pakietów powinno odbyć się w różnych
+ segmentach sieci, tak aby móc uchwycić ruch specyficzny dla tego
+ segmentu.</li>
+ <li>Analiza ruchu powinna być oceniana na podstawie ruchu wychodzącego,
+ przychodzącego oraz rodzaju przesyłanego ruchu (np. wykorzystywanych
+ protokołów).</li>
+ </ul>
+ <p>
+ Analiza dokonana przy zastosowaniu powyższych metod może dać nam dobrą
+ wskazówkę w jaki sposób tym ruchem możemy zarządzać.
+ </p>
+ <h2 id="1.17.4.verifyconectivity">1.17.4. Weryfikacja łączności</h2>
+ <p>
+ Weryfikację łączności możemy stosować w momencie budowania sieci, kiedy
+ jesteśmy pewni, że wszelakie okablowanie jest podłączone. Weryfikacja
+ łączności na wczesnym etapie budowy sieci, może przyspieszyć
+ uruchomienie jej w całości.
+ </p>
+ <p>
+ Najprostszym narzędziem jest polecenie <strong>ping</strong>, opera
+ się ono protokół ICMP i jest dostępne w wiekszości systemów
+ operacyjnych podłączonych do sieci. W przypadku systemów Cisco IOS,
+ również jest ono dostępne ma ono nieco inną formę odpowiedzi niż
+ standardowe narzędzia znane z dystrybucji Linuksa czy systemów MS
+ Windows. Wysyłane jest komuników i na każde z nich możemy otrzymać
+ albo kropkę (<strong>.</strong>) w przypadku braku odpowiedzi lub
+ też wykrzyknik (<strong>!</strong>) jeśli taka odpowiedź zostanie
+ otrzymana. Możemy rownież uzyskać dużą literę <strong>U</strong>,
+ która oznacza, że sieć hosta, do którego wysłaliśmy to zapytanie jest
+ nie osiągalna (równoznaczne z <em>destination unreachable</em>).
+ Polecenie <em>ping</em> jest uruchamiane z adresem docelowego hosta
+ jako pierwszym argumentem. W przypadku IOS jest tak samo, ale jeśli
+ uruchomimy to polecenie bez argumentu, to wówczas przejdzie ono
+ do trybu rozszerzenego, w którym to będziemy mogli skonfigurować
+ więcej parameterów poza samym podaniem adresu docelowego.
+ </p>
+ <p>
+ Innym poleceniem które może być przydatne podczas weryfikacji
+ łączności w IOS jest <strong>traceroute</strong>, nazwa ta obowiązuje
+ również w Uniksach, w przypadku systemu MS Windows jest
+ <em>tracert</em>. Zadaniem tego polecenia jest przeanalizowanie trasy
+ do hosta docelowego. Narzędzia te mogą posłużyć do analizy czy wina
+ w braku łączności z Internetem leży po stronie naszej konfiguracji czy
+ naszego usługodawcy.
+ </p>
+ <p>
+ Jeśli korzystamy z powyższych poleceń na zwykłym PC-cie, to warto
+ pamiętać, że te polecenia posiadają komunikaty pomocy nie zależnie
+ od systemu w Uniksach dodatkowo istnieje nieco bardziej obszerny plik
+ pomocy tzw. <em>strona podręcznika</em>.
+ </p>
+ <h2 id="1.17.5.displaynetconfigcommands">1.17.5. Polecenia wyświetlania konfiguracji sieciowej</h2>
+ <p>
+ Podczas budowania małej sieci, gdziej pod koniec prac nad nią przyjdzie
+ nam zacząć podłączać do niej hosty, wówczas możemy potrzebować sposóbów
+ na sprawdzenie ich konfiguracji sieciowej.
+ </p>
+ <p>
+ Najczęsciej podłączanym przez nas hostem będzie MS Windows 10 i w
+ ustawieniach karty sieciowej w aplecie "Centrum udostępniania i sieci"
+ możemy sprawdzić parametry konfiguracji sieciowej takie jak adres IP,
+ maska, adres bramy czy adresy serwerów DNS. Możemy również wyświetlić
+ te informacje w wierszu polecenia, za pomoca polecenia
+ <strong>ipconfig</strong>. Polecenie posiada kilka przydatnych
+ opcji takich jak:
+ </p>
+ <ul>
+ <li><strong>/all</strong> - wyświetla bardziej szczegółowe informacje</li>
+ <li><strong>/release</strong>,<strong>/renew</strong> - zwolnienie
+ używanego adresu IP oraz ponowna prośba o przydzielenie adresu IP.</li>
+ <li><strong>/displaydns</strong> - wyświetlenie wpisów w pamięci
+ podręcznej systemowego DNS.</li>
+ </ul>
+ <p>
+ Może tak się zdarzyć, że chcąc wdrożyć pewne usługi w sieci organizacji
+ będziemy mieć stycznosć z dystrybucjami Linuksa. Tutaj do wyświetlenia
+ adresu ip używa się polecenia <strong>ip a</strong> do wyświetlania
+ bramy wykorzystujemy polecenie <strong>ip route</strong> adres bramy
+ będzie wówczas widnieć we wpisie dla sieci (pierwsza kolumna)
+ <em>0.0.0.0</em>. Natomiast adresy serwerów DNS możemy zobaczyć,
+ poprzez wyświetlenie zawartości pliku <em>/etc/resolv.conf</em>.
+ </p>
+ <p>
+ W systemach MacOS na komputerach firmy Apple, listę dostępnych
+ interfejsów możemy wyświetlić w terminalu za pomocą polecenia
+ <strong>networksetup -listallnetworkservices</strong>. Po ustaleniu
+ interfejsu wydajemy polecenie
+ <strong>networksetup -getinfo <em>nazwa interfejsu</em></strong>.
+ </p>
+ <p>
+ Innym przydatnym narzędziem może być sprawdzenie
+ <strong>tablicy ARP</strong>. Tablica
+ ARP ma to do siebie, że komputer w sieci nie odpowiada na <em>ping</em>,
+ ponieważ może być tak skonfigurowany za pomocą pakietu programu
+ antywirusowego, aby nie odpowiadał na te żądania. To jeśli adres IP
+ hosta ma dowiązany MAC w naszej tablicy ARP, to znaczy, że jest on
+ poprawnie skonfigurowany tylko nie odpowiada na <em>ping</em>. Tablicę
+ ARP możemy wyświetlić za pomoca polecenia <strong>arp -a</strong> w
+ przypadku systemów MS Windows, w przypadku dystrybucji Linuksa
+ jest <strong>ip neighbor</strong>. Tablice ARP możemy wyczyścić
+ w systemach MS Windows za pomocą polecenia
+ <strong>netsh interface ip delete arpcache</strong>. To polecenie
+ może wymagać uprawnień administratora.
+ </p>
+ <p>
+ W systemie Cisco IOS ze względu, że są to urządzenia sieciowe, mamy
+ do dyspozycji kilka różnych poleceń poniżej (są one dostępne w
+ trybie uprzywilejowanym EXEC):
+ </p>
+ <ul>
+ <li><strong>show running-config</strong> - wyświetla obecnie używaną
+ konfigurację oraz ustawienia.</li>
+ <li><strong>show interface</strong> - wyświetla status interfejsów
+ oraz ewentualne komunikaty o błędach.</li>
+ <li><strong>show ip interface</strong> - wyświetla informacje dla
+ z warstwy 3 dla interfejsu.</li>
+ <li><strong>show arp</strong> - wyświetla tablice arp urządzenia.</li>
+ <li><strong>show ip route</strong> - wyświetla tablice routing
+ urządzenia.</li>
+ <li><strong>show protocols</strong> - wyświetla listę dostępnych
+ protokołów warstwy 3.</li>
+ <li><strong>show version</strong> - zwraca informacje o pamięci
+ urządzenia, dostępnych interfejsach oraz licencji.</li>
+ </ul>
+ <p>
+ Innym wartym uwagi narzędziem jest protokół Cisco <strong>CDP</strong>,
+ z jego pomocą możemy z identyfikować inne urządzenia Cisco podłączone
+ do tego, na którym wydajemy polecenia tego protokołu. Ten protokół jest
+ nieroutowalny, tak więc zobaczymy urządzenia zajdujące się w tej samej
+ domenie rozgłoszeniowej. Aby sprawdzić z jakie są inne urządzenia
+ Cisco w naszej sieci należy wydać polecnie:
+ <code class="code-inline">show cdp neighbors</code> lub
+ <code class="code-inline">show cdp neighbors detail</code>.
+ </p>
+ <p>
+ W przypadku polecenia
+ <code class="code-inline">show ip interface</code> możemy dodać na
+ końcu jeszcze słowo kluczowe <strong>brief</strong> aby uzyskać więcej
+ informacji.
+ </p>
+ <h3 id="1.17.5.pka">Zadanie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="">Interpretacje wyników działania poleceń show</a>
+ </p>
+ <h2 id="1.17.6.troubleshootingmethodologies">1.17.6. Metodologia rozwiązywania problemów</h2>
+ <p>
+ Czasami może tak się zdarzyć, że coś nie będzie działać lub coś
+ przestanie działać. Naszym zadaniem jest znalezienie usterki oraz
+ jej usunięcie. Czasami nie jest takie proste jakby się mogło wydawać,
+ i niektóre problemy mogą być bardziej lub mniej złożone, wiadome jest,
+ że ile jest usterek to tyle samo może być sposób na ich usunięcie.
+ Poniżej jednak znajduje się lista kroków, które wprowadzają nieco
+ organizacji w metodologię rozwiązywania problemów i to nie tylko
+ sieciowych.
+ </p>
+ <ol>
+ <li><strong>Zidentyfikuj problem</strong> - Tutaj możemy użyć wszelkich
+ możliwych środków, które mogą przybliżyć nas do natury problemu.
+ Istotna może być rozmowa z innymi użytkownikami.</li>
+ <li><strong>Określenie możliwych przyczyn problemu</strong> - po
+ zidentyfikowaniu problemu, powinniśmy ustalić możliwe przyczyny jego
+ powstania, co mogło i kiedy się stać, że ten problem wystąpił.</li>
+ <li><strong>Spróbuj potwierdzić swoje ustalenia</strong> - tutaj musimy
+ ustalić, które z naszych przypuszeń powstania problemów, jest tą
+ prawdziwą genezą usterki.</li>
+ <li><strong>Określ plan rozwiązania problemu oraz ustal właściwe
+ rozwiązanie</strong> - skoro wiemy co spowodowało usterkę, to należy
+ opracować rozwiązanie problemu oraz sposób w jaki to zrobimy, aby
+ jeszcze nie pogorszyć sytuacji.</li>
+ <li><strong>Zweryfikuj poprawność wprowadzonych rozwiązań, wdróż
+ rozwiązania zardcze</strong> - Po hipotetycznym pozbyciu się
+ problemu musimy ustalić, czy naszy rozwiązanie działa i czy
+ przypadkiem nie ma wpływu na inne rozwiązania. Warto równiez
+ skonfrontować się z przyczyną problemu i wdrożyć odpowiednie środki
+ zaracze, aby problem się nie powtarzał.</li>
+ <li><strong>Udokumentuj to</strong> - warto prowadzić bazę wiedzy lub
+ chociaż notatki, wrazi gdyby podobny problem wystąpił gdzieś
+ indziej.</li>
+ </ol>
+ <p>
+ Oczywiście zdaję sobie sprawę z tego, że nie zawsze uda się trzymać
+ tego planu. Warto jednak moim zdaniem wziąć sobie do serca ostatnią
+ zasadę. Właśnie dzięki niej ta strona w ogole powstała i dlatego też
+ dalej ją prowadzę.
+ </p>
+ <p>
+ Drugą sprawą jest fakt, że pewnych problemów nie uda nam się rozwiązać,
+ z różnych przyczyn. Warto mieć to na uwadze i poinformować o tym
+ przełożonych oraz innych pracowników. Oszczędzimy sobie setek pytań
+ o...
+ </p>
+ <p>
+ Cisco IOS posiada narzędzie, które może pomóc nam znaleźć problem lub
+ jego przyczynę, jednak należy traktować go jako ostatateczność. Do
+ dyspozycji mamy polecenie <strong>debug</strong>. Wprowadza ono
+ urządzenie w stan debugowania, przez co każdy pakiet jest analizowany,
+ a rozszerzeone komunika diagnostyczne o przychodzących pakietach jakie
+ zostały
+ przetworzone przez te urządzenie mogą pojawiać się na konsoli. Jednak
+ warto mieć to na uwadzę, że uruchomienie tego trybu spowoduje znaczne
+ spowolnienie transmisji przez nie, ponieważ przez większość czasu
+ będzie ono zajęte analizowaniem pakietów. Tryb debugowania włączamy
+ polecenie <code class="code-inline">debug</code> w trybie
+ uprzywilejowanym EXEC, a wyłączamy za pomocą polecenia
+ <code class="code-inline">no debug</code>.
+ </p>
+ <h2 id="1.17.7.troubleshootingscenarios">1.17.7. Rozwiązania typowych problemów</h2>
+ <p>
+ Poniżej znalazły się rozwiązania typowych problemów jakie możemy
+ napotkać nie tylko konfigurując małą sieć. Takie problemy mogą się
+ pojawić zawsze gdy konfigurujemy czy urządzenie końcowe czy też
+ urządzenie pośredniczące w komunikacji sieciowej.
+ </p>
+ <p>
+ Pierwszym z nich mogą być problemy z autonegocjacją interfejsów
+ sieciowych oraz błedne przyjęte uzgodnie odnośnie kierunku transmisji
+ (<em>duplex</em>). Tutaj najczęściej przyczną może być fatalnej jakość
+ medium transmisjne, np. kabel UTP, źle zarobione końcówki RJ-45 lub
+ uszkodzone urządzenie, które chcemu podłączyć. Urządzenia Cisco mogą
+ wyłączać również porty, jeśli dochodzi na do błędów.
+ </p>
+ <p>
+ Następnym przypadkiem jest przypadek błędnej adresacji interfejsów.
+ Do rozwiązania tego problemu możemy wykorzystać poznane wcześniej
+ polecenia jak <code class="code-inline">show ip interface brief</code>.
+ </p>
+ <p>
+ Problem z brakiem łączności z internetem można powiązać z brakiem
+ lub błędnym przypisaniem adresu bramy do hosta. Za pomocą poleceń
+ <code class="code-inline">ipconfig</code> lub
+ <code class="code-inline">show ip route</code> w przypadku urządzeń
+ sieciowych. Warto również sprawdzić czy serwer DHCP dobrze ustawia
+ ten parametr.
+ <p>
+ <p>
+ Problemy z rozwiązywaniem nazw również mogą powodować błędnę adresy
+ w konfiguracji hostów. Tak jak we wcześniejszym przypadku serwer DHCP
+ może przydzielć adres serwera DNS, który już nie istnieje. W przypadku
+ systemów MS Windows, aby sprawdzić adres serwera DNS należy wydać
+ polecenie <code class="code-inline">ipconfig /all</code> do dyspozycji
+ mamy również takie narzędzie jak
+ <code class="code-inline">nslookup</code>
+ </p>
+ <h3 id="1.17.7.lab">Laboratorium</h3>
+ <p>
+ <a href="">Rozwiązywanie problemów z łącznością</a>
+ </p>
+ <h3 id="1.17.7.pka">Zadanie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="">Rozwiązywanie problemów z łącznością</a>
+ </p>
+ <h2 id="ch17summary">Podsumowanie</h2>
+ <p>
+ W tym rodziale dowiedzieliśmy się w jaki sposób projektować małe sieci
+ czy weryfikować konfigurację sieciową hostów znajdujących się nie
+ tylko w małych sieciach, ale podłączonych do sieci ogólnie. Poznalismy
+ również zasady jakim należy kierować się podczas chęci rozbudowy
+ takiej małej sieci. Na koniec usystematyzowaliśmy swoją wiedze na
+ temat metodologi rozwiązywania problemów oraz poznaliśmy scenariusze
+ typowych błędów jakie możemy napotkać. Ten rozdział zamyka pierwszy
+ moduł kursu Cisco CCNA. Poniżej znajduje się 50 pytań teoretycznych,
+ których można spodziewać się na egzaminie z pierwszego modułu.
+ </p>
+ <h1>Koniec modułu pierwszego</h1>
</div>
</body>
</html>