]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Zakończenie pisania rozdziału 8. Do przeredagowania.
authorxf0r3m <jakubstasinski@protonmail.com>
Sat, 10 Feb 2024 14:43:01 +0000 (15:43 +0100)
committerxf0r3m <jakubstasinski@protonmail.com>
Sat, 10 Feb 2024 14:43:01 +0000 (15:43 +0100)
articles/terminallog/Cisco_-_CCNA.html

index 451ad1ecb824413e57138d0e689feb757893d561..bbb6e4383f7de2513345ef1015623eddd9ab79c3 100755 (executable)
         wydawać się nieco dziwne, dlatego też przy takich informacjach będę
         zapisywać oznacznie oryginalności zapisu (<strong>sic/sic!</strong>).
       </p>
-      
+      <h1 id="1.8.networklayer">1.8. Wartstwa sieciowa</h1>
+      <p>
+        Warstwa sieciowa dostarcza usługi pozwalające na wymianę danych między
+        hostami. Podstawowym jej protokołem jest protokół IP zarówno w wersji
+        4 jak i 6. Warstwa sieciowa odpowiada adresacje urządzeń końcowych,
+        enkapsulacja, routing oraz deenkapsulacje.
+      </p>
+      <h2 id="1.8.1.networklayecharacteristics">1.8.1. Charakterystyki warstwy sieciowej</h2>
+      <p>
+        Protokół IP enkapsuluje segmenty z wartstwy transportowej, nie ma 
+        znaczenia czy użyjemy wersji 4 czy 6 protokołu IP, na ten segment
+        nie będzie to miało wpływu. Pakiet IP będzie analizowany przez
+        wszystkie urządzenia warstwy 3 (lub mogące w niej działać) na swojej
+        drodze do punktu docelowego. Generalnie to adres protokołu IP nie
+        powinny się zmienić ma drodze między hostem źródłowym a hostem
+        docelowym, wyjątkiem od tej reguły jest mechanizm NAT. Protokół IP
+        opisywany jest jako bezpołączeniowy, niezależny od medium transmisyjnego
+        oraz najlepszej możliwości.
+      </p>
+      <p>
+        Protokół IP jest bezpołączeniowy. IP nie ustanawia żadnego połączenia
+        ze stroną docelową przed wysłaniem pakietu, nie potrzeba żadnych
+        informacji kontrolnych. Host docelowy otrzyma pakiet kiedy on nadejdzie
+        nie ma żadnych wcześniejsych powiadomień. Jeśli wymagane jest
+        połączenie, wówczas jest to powierzane warstwie wyższej, warstwie
+        transportowej, a konkretnie protokołowi TCP.
+      </p>
+      <p>
+        Protokół IP jest uznawana za protokół najlepszej możliwości porzez
+        zmniejszenie narzutu spowodowanego brakiem mechnizmów retransmisji,
+        nie ma potwierdzeń o tym, że pakiet dotarł. IP nawet na nie,
+        nie oczekuje. Protokół również nie ma informacji na temat czy
+        host w ogóle funkcjonuje i otrzymuje wysłane do niego pakiety.
+      </p>
+      <p>
+        Ze względu na to, że protokół IP jest protokołem najlepszej możliwości
+        uznawany jest za nierzetelny. Jak te funkcje nie sprawdzają się w
+        każdym możliwym przypadku, dlatego też brak ich w protokole IP, który
+        w obenych czasach musi obsłużyć 99% ruchu w sieci. Protokół IP jest
+        protokołem niezależnym od medium transmisjynego oznacza to, że
+        może on przesyłać dane przez dowolne połączenie między dwoma hostami.
+        Przyczym wprowadza on pojęcie <strong>MTU</strong>
+        (<em>Maximum Transmission Unit</em>). Przyczy ten protokół utrzymuje
+        informacje o tym jakie MTU ma ustawić od warstwy łącza danych. Innym
+        mechanizmem protokołu IP jest <strong>Fragmentacja</strong>, pozwala
+        to dzielić pakiety na mniejsze części, na przykład gdy nasza 
+        technologia WAN ma mniejsze MTU.
+      </p>
+      <h2 id="1.8.2.ipv4packet">1.8.2. Pakiet IPv4</h2>
+      <p>
+        Protokół IP wersji 4 jest podstawowym protokołe komunikacyjnym w
+        warstwie sieciowej, a sam nagłówek jest dość istotny w całej
+        transmisji. Zapewnia, że pakiet zostanie wysłany do właściwego
+        odbiorcy, zawiera w swoich polach wiele informacji ważnych dla
+        przetwarzania pakietów. Informacje z nagłówka wykorzystują wszystkie
+        urządzenia mogące przetwarzać dane z warstwy sieciowej. W nagłówku IP
+        mimo wszystko najważniejszą informacją są pola a zawierające adresy,
+        dość ciekawy polem tutaj jest pole <em>Protocol</em>, gdyż może mieć
+        więcej niż jedną funkcję. Poniżej znajduje się bardziej szczegółowy
+        opis poszczególnych pól:
+      </p>
+      <ul>
+        <li><strong>Wersja</strong> - 4-bitowe pole zawierające wersję IP w tym
+          przypadku: <em>0100</em> = 4.</li>
+        <li><strong>Zróżnicowane usługi</strong> - pole wykorzystywane przez
+          QoS, może mieć rózne oznaczenie: DS, DiffServ lub IntServ czy ToS
+          <em>Type of Service</em>.</li>
+        <li><strong>Suma kontrolna nagłówka</strong> - pole wykorzystywane do
+          detekcji uszkodzeń nagłówka.</li>
+        <li><strong>Pole TTL</strong> - licznik skoków w warstwie 3. Kiedy
+          zostanie wyzerowane router odrzuci pakiet.</li>
+        <li><strong>Protokoł</strong> - wskazuje na protokół, którego dane
+          są niesione w tym pakiecie, np.: ICMP, TCP czy UDP.</li>
+        <li><strong>Adres źródłowy IPv4</strong> - adres IPv4 hosta wysłającego
+          pakiet.</li>
+        <li><strong>Adres źródłowy IPv6</strong> - adres IPv4 hosta docelowego.</li>
+      </ul>
+      <h2 id="1.8.3.ipv6packet">1.8.3. Pakiet IPv6</h2>
+      <p>
+        Protokół IPv4 posiada swoje ograniczenia. Pierwszym z nich jest
+        wyczerpanie się adresów IP w wersji, inna przeszkodą może być brak
+        bezpośrednich połaczeń, obecnie łączymy się z pośrednictwem adresów
+        prywatnych oraz NAT-u, a użycie mechnizmu NAT powoduje potrzebę zmiany
+        nagłówków, co może powodować opóźnienia oraz zwiększać złożoność sieci.
+      </p>
+      <p>
+        Remedium na powyższe ograniczenia jest globalne wdrożenie IPv6.
+        IPv6 zwiększa długość adresu z 32-bitów do 128 przez co ich ilość
+        zwiększa o bardzo duża liczbę (340 x 10^36), gdzie adresów IPv4 mamy
+        lekko powyżej 4 miliardy. Zmniejsza się również nagłówek pakietu,
+        zostaje pozbawiony kilku pól. Ze względu na ilość operowalnych adresów
+        nie ma potrzeby stosowania NAT-u. 
+      </p>
+      <p>
+        Sam nagłówek IPv6 został uproszczony, ale nie zmniejszony. Nagłówek
+        IPv6 ma długość 40B, wiele z pól zostało zostało usuniętych aby
+        zwiększyć wydajność. Ponizej znajduje się opis poszczególnych pól
+        nagłówka IPv6.
+      </p>
+      <ul>
+        <li><strong>Wersja</strong> - wersja protokołu 4 bity dla IPv6 to:
+          <em>0110</em>.</li>
+        <li><strong>Klasa ruchu</strong> - pole dla QoS.</li>
+        <li><strong>Etykieta przepływu</strong> - 20-bitowe pole informujące
+          urządzenia, aby przetwarzały pakiety z tą samą wartością tego pola
+          w ten sam sposób.</li>
+        <li><strong>Długość ładunku</strong> - 16-bitowe pole określa długość
+          danych niesionych przez ten pakiet.</li>
+        <li><strong>Następny nagłówek</strong> - wskazuje na protokół
+          warsty wyższej, której dane niesie.</li>
+        <li><strong>Limit skoków</strong> - licznik skoków w warstwie sieciowej</li>
+        <li><strong>Adres źródłowy IPv6</strong> - 128-bitowy adres źródłowy.</li>
+        <li><strong>Adres docelowy IPv6</strong> - 128-bitowy adres docelowy.</li>
+      </ul>
+      <p>
+        Dodatkowo pakiety IPv6 mogą zawierać rozszerzenie nagłówka, które może
+        zawierać dodatkowe informacji warstwy sieciowej takie jak fragmentacja,
+        informacje odnośnie bezpieczeństwa czy wsparcie dla mobilności. To
+        rozszerzenie jest opcjonalne i umiesczone jest między danymi a
+        nagłówkiem. W przeciwieństwie do IPv4 routery IPv6 nie fragmentują
+        pakietów.
+      </p>
+      <h2 id="1.8.4.howhostsroutes">1.8.4. W jaki sposób host przesyła pakiety</h2>
+      <p>
+        Każdy host posiada w swojej konfiguracji TCP/IP tablicę routingu.
+        Pakiety przez niego wygenerowane mogą być wysłane do siebie po przez
+        adres pętli zwrotnej: <em>127.0.0.1</em> (IPv4), <em>::1</em> (IPv6);
+        do hostów lokalnych znajdujących się w tej samej sieci czy też do
+        hostów zdalnych znajdujących się poza naszą siecią lokalną.
+      </p>
+      <p>
+        To host źródłowy decyduje o tym czy adres docelowy jest adresem
+        lokalnym czy też pochodzącym z poza sieci. W zależności od wersji
+        protokołu są dwie metody. Host konfrontuje swój adres oraz maskę
+        obliczając adresy sieciowe (adres sieci i broadcast) z adresem
+        docelowym w przypadku IP w wersji 4. W przypadku IP w wersji 6, host
+        wykorzystuje adres sieci oraz prefix przedstawiony mu przez najbliższy
+        router. Ruch lokalny opuszcza kartę sieciową hosta i jest przetwarzany
+        przez urządzenia pośredenie, takie jak przełączniki. Jeśli ruch jest
+        ewidentnie adresowany na zewnątrz, jest on kierowany do prosto do bramy
+        oczywiści z pośrednictwem urządzeń po drodze do routera.
+      </p>
+      <p>
+        Urządzenia warstwy 3, takie jak routery lub przełączniki L3 mogą być
+        domyślną bramą dla hostów w sieci lokalnej. Cechami domyślnej bramy
+        są na pewno: adres IP urządzenia/interfejsu musi znajdować się w tej
+        samej sieci lokalnej, urządzenia tego typu przyjmują ruch z sieci
+        lokalnej i kierują ją po za nią, mogą trasować ruch do innych sieci.
+        Jeśli hosty w sieci nie posiadają skonfigurowanej bramy lub jej adres
+        adres jest nie poprawny nie będą wstanie przsyłać danych poza sieć.
+      </p>
+      <p>
+        Host adres bramy może mieć zapisany w swojej konfiguracji statycznie
+        lub otrzymać go wraz z dzierżawą adres IP z serwera DHCP, w przypadku
+        protokołu IPv6 adres bramy może zostać otrzymany z komunikatów
+        <em>router solicitation</em> (RS) lub skonfigurowany ręcznie.
+      </p>
+      <p>
+        Za pomocą poleceń <code class="code-inline">netstat -r</code> dla
+        (systemy MS Windows) czy <code class="code-inline">ip route</code>
+        (dystrybucje Linuksa). Możemy wyświetlić tablicę routingu zapisaną
+        na systemie hosta.
+      </p>
+<pre class="code-inline">
+󱩊 xf0r3m@laptop-026253a/ ~/󰯆 ip route
+default via 192.168.8.1 dev enp0s31f6 proto dhcp src 192.168.8.133 metric 100 
+192.168.8.0/24 dev enp0s31f6 proto kernel scope link src 192.168.8.133 metric 100 
+<pre>
+      <h2 id="1.8.5.introductiontorouting">1.8.5. Wprowadzenie do routingu</h2>
+      <p>
+        Załóż czysto hipotetycznie, że chcemy przesłać pakiet do sieci obok,
+        co sie stanie? Taki pakiet jeśli osiągnie router, ponieważ nasz host
+        wysłał tę ramkę do bramy domyślnej, to router sprawdzi adres docelowy
+        i wzależności czy posiada trasę do tego hosta, to wyśle go na pierwszy
+        router w tej trasie, lub jeśli sieć docelowa jest wpięta do tego samego
+        routera zostanie przekazana na interfejs obsługjący tę sieć. Router
+        dokonuje tych decyzji opierając się o zapisaną w swojej pamięci tablicę
+        routingu.
+      </p>
+      <p>
+        W routerach możemy spotkać trzy rodzaje tras w ich tablicach.
+      </p>
+      <ul>
+        <li><strong>Podłączone bezpośrednio</strong>
+          (ang. <em>Directly Connected</em>) - te trasy są dodwane domyślnie
+          bazując na aktywnych interfejsach i powiązanych z nimi adresach.</li>
+        <li><strong>Zdalne</strong> (ang. <em>Remote</em>) - trasy
+          bez połączenia bezpośrednie (niepodłączone lokalnie), router nauczył
+          się ich albo przy użyciu dynamicznych protokółów routingu lub
+          zostały mu one zapisane ręcznie przez administratora
+          (trasy statyczne)</li>
+        <li><strong>Trasa domyślna</strong> - trasa wykorzystywana w momencie,
+          gdy nie ma innej pasującej do adresu docelowego.</li>
+      </ul>
+      <p>
+        Cechami tras statycznych są: potrzeba ręcznej konfiguracji, potrzeba
+        ręcznego dostosowania do zmienającej się topologii sieci. Trasy
+        statyczne mogą być dobrym wyborem dla małych sieci. Za pomocą tras
+        statycznych mimo wykorzystywania protokołów dynamicznych ustala się
+        bramy domyślne dla routerów.
+      </p>
+      <p>
+        W przypadku routingu dynamicznego, routery same odnajdują sieci,
+        aktualizują informacje, wybierają najlepsze ścieżki czy dostosowują się
+        do topologii. Dynamiczny routing może być wykorzystywany do
+        współdzielnia statycznej trasy bramy domyślnej.
+      </p>
+      <p>
+        W systemach Cisco IOS, szczególnie na routerach możemy zobaczyć dość
+        obszerną informacje podobną do tej przedstawionej na poniższym
+        przykładzie. Nie będzie ona tak obszerna jak w tym przypadku. Nie
+        mniej warto się jednak zapoznać z oznaczeniami poszczególnych tras.
+      </p>
+<pre class="code-block">
+route-views&gt;show ip route
+Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
+       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
+       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
+       E1 - OSPF external type 1, E2 - OSPF external type 2
+       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
+       ia - IS-IS inter area, * - candidate default, U - per-user static route
+       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
+       a - application route
+       + - replicated route, % - next hop override, p - overrides from PfR
+
+Gateway of last resort is 128.223.51.1 to network 0.0.0.0
+
+S*    0.0.0.0/0 [1/0] via 128.223.51.1
+      1.0.0.0/8 is variably subnetted, 3781 subnets, 17 masks
+B        1.0.0.0/24 [20/0] via 12.0.1.63, 12:59:24
+B        1.0.4.0/22 [20/0] via 114.31.199.16, 12:59:24
+B        1.0.5.0/24 [20/0] via 114.31.199.16, 12:59:24
+...
+</pre>
+      <p>
+        Zatem:
+      </p>
+      <ul>
+        <li><strong>L</strong> - podłączony bezpośrednio adres IP interfejsu.</li>
+        <li><strong>C</strong> - sieć podłączona bezpośrednio.</li>
+        <li><strong>S</strong> - trasa statyczna.</li>
+        <li><strong>O</strong> - protokół OSFP.</li>
+        <li><strong>D</strong> - protokół EIGRP.</li>
+        <li><strong>R</strong> - protokół RIP.</li>
+        <li><strong>B</strong> - protokół BGP.</li>
+      </ul>
+      <p>
+        Chcąc przypasować te oznaczenia do wspomniany wcześniej rodzajów wpisów
+        w tablicy routingu routera to:
+      </p>
+      <ul>
+        <li>Podłączone bezpośrednio (ang. <em>Directly Connected</em>) -
+          <strong>C</strong> i <strong>L</strong>.</li>
+        <li>Trasy zdalne (ang. <em>Remote Routes</em>) - 
+          <strong>O</strong>, <strong>D</strong>, <strong>R</strong>
+          <strong>B</strong>.</li>
+        <li>Trasy domyślne (ang. <em>Default routes</em>) - 
+          <strong>S*</strong>.</li>
+      </ul>
+      <h2 id="ch8summary">Podsumowanie</h2>
+      <p>
+        Tym rozdziałem rozpoczeliśmy omawianie warstwy sieciowej.
+        Poznaliśmy jej główny protokół jakim jest protokół IP oraz nagłówki
+        pakietów zarówno dla wersji 4 jak i 6. Dowiedzieliśmy się ja
+        działa trasowanie oraz jakie są jego rodzaje oraz charakterystyki
+        metody statycznej oraz dynamicznej. 
+      </p>
       <h1 id="1.9.adresresolution">1.9. Rozwiązywanie adresów</h1>
       <p>
         Chcąc wysłać jakieś informacje przez sieć, nasz komputer musi w jakiś