]> gitweb.morketsmerke.org Git - mmdev.git/commitdiff
Kontynuacja pisania 12 rozdziału. Zakończono na podrozdziale 12.6
authorxf0r3m <jakubstasinski@protonmaill.com>
Thu, 8 Feb 2024 13:40:17 +0000 (14:40 +0100)
committerxf0r3m <jakubstasinski@protonmaill.com>
Thu, 8 Feb 2024 13:40:17 +0000 (14:40 +0100)
articles/terminallog/Cisco_-_CCNA.html

index be49b54ce37dbd518aa78734c774375519bce10f..b38e52d05f855f17ee57b341e772ed9212c652f1 100755 (executable)
         jest taka potrzeba. Naszym celem powinno być zapewnienie domyślnej
         komunikacji z pośrednictwem protokołu IPv6.
       </p>
+      <h2 id="1.12.2.ipv6representation">1.12.2. Reprezentacja IPv6</h2>
+      <p>
+        Adres IPv6 mają długość 128-bitów, zapisywane są za pomocą liczb
+        systemu heksadecymalnego (szestnastkowego). Zapis adresu nie jest
+        wrażliwy na wielkość znaków, cyfry reprezentujące liczby od 10 (A) do 
+        15 (F), można zapisać małymi lub wielkimi literami. Preferowanym
+        formatem zapisu jest <code class="code-inline">x:x:x:x:x:x:x:x</code>,
+        gdzie każdy <code class="code-inline">x</code> jest czterema cyframi
+        heksadecymalnymi, jeden taki <em>x</em> jest również nazywany
+        nieoficjalnie <em>hekstetem</em>. Poniżej znajdują się przykładowe
+        adresu IPv6.
+      </p>
+<pre class="code-block">
+2001:0db8:0000:1111:0000:0000:0000:0200
+2001:0db8:0000:00a3:abcd:0000:0000:1234
+</pre>
+      <p>
+        Powyższy zapis jest niewygodny, wymaga więcej czasu na jego zapisanie
+        na stacji roboczej. Dlatego też wymyślono dwie zasady za pomocą,
+        których możemy skracać zapis tego typu adresów. Zasady operają się
+        na cyfrze 0. Pierwszą z nich jest <strong>ponięcie wiodącego zera</strong>
+      </p>
+      <p>
+        Zatem jeśli mamy na początku hekstetu cyfrę 0, to możemy ją pominąć,
+        a hosty same ją poźniej uzupełnią, tak aby każdy hekstet mam 4 znaki.
+        Po zastosowaniu tej metody powyższe przykłady wygłądały by nastepująco.
+      </p>
+<pre class="code-block">
+2001:db8:0:1111:0:0:0:200
+2001:db8:0:a3:abcd:0:0:1234
+</pre>
+      <p>
+        Zapis jest już krótszy i w pełni poprawny. Drugą zasadą jest
+        wykorzystanie <strong>podwójnego dwukropka (::)</strong>. Ta zasada
+        mówi, że możemy zastąpić następujące po sobie hekstety 0, podwójnym
+        dwukropkiem. Ta zasada ma jednak ograniczenia, otóż może zostać w
+        jednym adresie użyta tylko raz. Tak więc nasze adresy możemy zapisać
+      </p>
+<pre class="code-block">
+2001:db8:0:1111::200
+2001:db8:0:a3:abcd::1234
+#lub jeśli zmodyfikujemy 4 hekstet z 00a3 na 0000, to wówczas taki adres
+#możemy zapisać tak:
+2001:db8:0:0:abcd::1234
+#albo
+2001:db8::abcd:0:0:1234
+</pre>
+      <h2 id="1.12.3.ipv6adresstypes">1.12.3 Typy adresów IPv6</h2>
+      <p>
+        Istnieją trzy kategorie adresów IPv6, są to m. in.:
+      </p>
+      <ul>
+        <li><strong>Unicast</strong> - adres unikalny dla każdego hosta
+          używającego IPv6.</li>
+        <li><strong>Multicast</strong> - adres wykorzystywany do wysłania
+          jednego pakietu IPv6 do wielu urządzeń.</li>
+        <li><strong>Anycast</strong> - dowolny unikastowy adres IPv6, który
+          może być przypisany do wielu urządzeń. Pakiet wysłany pakiet na ten
+          adres zostanie przekierowany do urządzeń, które go posiadają.</li>
+      </ul>
+      <p>
+        W przeciwieństwie do IPv4 w IPv6 nie ma czegoś takiego jak adres
+        <em>broadcast</em>, jednak że istnie adres multikastowy kierowanych
+        do wszystkich hostów, co w rezultacie daje takie same efekty.
+      </p>
+      <p>
+        Prefiks oraz jego długość wykorzystywane są do wskazywania sieciowej
+        części adresu IPv6. Przedstawiany jest jak maska IPv4 w notacji CIDR.
+        Prefiks może mieć długośc od 0 do 128. Jednak rekomendowaną długością
+        prefiksu dla sieci LAN oraz innych są 64-bity (/64). Jest to wręcz
+        standard, ze względu na ty, że metoda SLAAC (będzie opisana poźniej),
+        wykorzystuje pozostałe 64-bity na identyfikator interfejsu użytkownika.
+        Użycie takie prefiksu, łatwia podział na podsieci oraz poźniejsze nimi
+        zarządzanie.
+      </p>
+      <p>
+        W przeciwieństwie do IPv4, urządzenia korzystające z IPv6 mają po dwa
+        adresy przypisane do interfejsów. Pierwszym z nich jest
+        <strong>Global Unicast Address (GUA)</strong> - adres ten jest podobny
+        do publicznego adresu IPv4, jest unikalny w skali świata oraz
+        osiągalny z Internetu. Drugim adresem jest
+        <strong>Link-local Address (LLA)</strong> - jest on wymagany przez
+        wszystkie urządzenia, które korzystają z IPv6 i sa wykorzystywane 
+        do komunikacji tylko w sieci lokalnej przez co są nie routowalne.
+      </p>
+      <p>
+        IPv6 posiada unikalne adresy lokalne (zakres od fc00::/7 do fdff::/7),
+        (<em>Unique Local Adress</em>) 
+        które posiadają pewne podobnieństwa do adresów prywatnych IPv4, ale
+        również istnieje znaczące różnice. Tego rodzaju adresy sa używane do
+        adresacji wewnątrz organizacji lub pomiędzy ograniczoną ich
+        liczbą. Urządzenia wykorzystujące te adresy nigdy nie będą mieć
+        dostępu do innych sieci za ich pośrednictwem. Unikalne adresy lokalne
+        nie są ani routowalne, ani zamieniane na adresy globalne IPv6.
+      </p>
+      <p>
+        Niektóre organizacje korzystały sieci prywatnych IPv4, aby ukryć swoje
+        sieci przed zagrożeniami z Internetu, jednak to nigdy nie było 
+        motywacją do stoswania adresów ULA w IPv6. 
+      </p>
+      <p>
+        Adresami unikastowmi o zasiągu globalnym są tzw. adresy
+        <em>Global Unicasts Address</em> - GUA. Tego typu adresy są swojego
+        rodzaju adresy publiczne osiagne z Internetu. Obecnie przypisane
+        są tylko adresu GUA rozpoczynające sie od 2000::/3, co daje man tylko
+        trzy bity. Na tych trzech bitach można rozpisać tylko 2 liczby 
+        2 oraz 3. Zatem obecny zakres GUA rozpoczyna się od 2000 a kończy 3fff.
+      </p>
+      <p>
+        Adresy GUA posiadają określoną strukturę. Składa się on z globalnego
+        prefiksu routing, który może być prefiksem, siecią lub pulą adresów.
+        Ten prefiks routingu jest przydzielny organizcjom lub klientom przez
+        ISP. Następną cześcią adresu jest identyfikator podsieci, znajduje się
+        między globalnym prefiksem a identyfikatorem interfejsu. Identyfikator
+        podsieci wykorzystywany identyfikacji podsieci wewnątrz organizacji.
+        Ostatnią cześcią adresu jest identyfikator interfejsu, jest to część
+        adresu odpowiedzialna za identyfikację hosta. Identyfikator hosta ma
+        długość 64-bitów, dlatego też rekomendowane jest aby stosować
+        64-bitowe prefiksy.
+      </p>
+      <p>
+        IPv6 pozwala na przypisanie hostom adresów składajacych się z samych
+        0 lub z samych 1, jednakże adres składajacy się z samych 0 jest
+        zarezwowany jako adres any-kastowy <em>Subnet-Router</em> i powinnien
+        być przypisany tylko do routera.
+      </p>
+      <p>
+        Ostatnim typem adresu IPv6 jest <em>Link-local address</em> - LLA.
+        Ten pozwala na komunikację wewnątrz tej samej podsieci. Pakiet
+        zaadresowane przez LLA nie są routowalne. Każdy interfejs sieciowy
+        działający przy użyciu IPv6 musi mieć skonfigurowane LLA, jesli nie
+        jest przypisane, urządzenie przypisze je sobie samo, automatycznie.
+        Prefiksem dla adresów LLA jest
+        <code class="code-inline">fe80::/10</code>
+      </p>
+      <h2 id="1.12.4.guaandllastaticconfig">1.12.4. Statyczna konfiguracj GUA oraz LLa</h2>
+      <p>
+        Chcąc skonfigurować ręcznie adres IPv6 GUA, 
+        w systemie IOS po przejściu do konfiguracji
+        wybranego intefejsu wydajemy poniższe polecenie: 
+      </p>
+<pre class="code-block">
+Router(config-if)# ipv6 address 2001:db8:acad:1::1/64
+</pre>
+      <p>
+        Następnie podnośimy interfejs za pomocą polecnia
+        <code class="code-inline">no shutdown</code>. Gotowe.
+      </p>
+      <p>
+        W przypadku konfiguracji stacji roboczych, to konfiguracja wygląda
+        podobnie do konfiguracji IPv4, tylko zamiast "Protokoł Internetowy
+        w wersji 4" wybieramy "Protokoł Internetowy w wersji 6". Jeśli
+        podajemy adres bramy, to najlepszą praktyką jest ustawienie adresu
+        LLA routera.
+      </p>
+      <p>
+        Konfigurując LLA na jednym z interfejsów w systemie IOS korzystamy
+        z tego samego polecenia. Nie podajemy przy tego rodzaju adresie
+        prefiksu. To specjalny adres, który go nie wymaga. Dodajemy również
+        specjalne słowo kluczowe: <em>link-local</em>.
+      </p>
+<pre class="code-inline">
+Router(config-if)# ipv6 address fe80::1:1 link-local
+</pre>
+      <p>
+        Konfigurując LLA dla każdego z interfejsów routera warto pamiętać o tym
+        aby były one unikalne (wymagane jest aby były unikalne w obrębie
+        jednej podsieci).
+      </p>
+      <h2 id="1.12.5.dynamicaddressingforipv6gua">1.12.5. Dynamiczne adresowanie GUA w IPv6</h2>
+      <p>
+        Urządzenia mogą uzyskąć adres GUA dynamicznie wykorzystując do tego
+        komunikaty ICMP w wersji 6. Host może wysłać zapytanie o router
+        (komunikat RS <em>Router Solicitation</em>). W informacji zwrotnej w
+        postaci (komunikatu RA <em>Router Advertisment</em>) od routera, host
+        dowiaduje się w jaki sposób może uzyskać GUA oraz otrzymuje kilka
+        dodatkowych informacji takich jak:
+      </p>
+      <ul>
+        <li>Prefix sieci oraz jego długość.</li>
+        <li>Adres do myślnej bramy.<li>
+        <li>Adresy DNS oraz nazwę domenowa.</li>
+      </ul>
+      <p>
+        Komunikat RA dostarcza trzy metody dla konfiguracji GUA:
+      </p>
+      <ul>
+        <li>SLAAC</li>
+        <li>SLAAC z bezstanowym serwer DHCPv6</li>
+        <li>Stanowy serwer DHCPv6 (bez SLAAC)</li> 
+      </ul>
+      <p>
+        Metoda SLAAC pozwala na skonfigurowanie GUA bez usługi DHCPv6.
+        Urządzenia uzyskują informacje do konfiguracji GUA z komunikatów RA
+        protokołu ICMP. Prefix również znajdujący się w komunikatach RA
+        jest również używany do generowania identyfikatora interfejsu czy to
+        w przypadku metody EUI-64 lub metody losowej.
+      </p>
+      <p>
+        W przypadku metody SLAAC i bezstanowego serwera DHCPv6, komunikat RA
+        instruuje klientów aby wykorzystali mechnizm SLAAC to utworzenia
+        GUA. LLA routera, które jest adresem źródłowym pakiety RA zostaje
+        zapisany jako adres bramy. Używa się bezstanowego serwera DHCPv6 do
+        uzyskania takich informacji jak adres DNS oraz nazwę domenową.
+      </p>
+      <p>
+        Ostatnią metodą jest poinstruowanie przez pakiet RA do użycia
+        stanowego serwera DHCPv6. Stanowe DHCPv6 jest podobne do DHCP dla
+        IPv4. Urządzenie automatycznie otrzymuje GUA, długość prefiksu oraz
+        adresy serwerów DNS z serwera DHCPv6. Komunikat RA sugeruje aby
+        urządzenia użyły adresu źródłowego komunikatu RA, którym jest
+        LLA jako adresu bramy oraz serwera DHCPv6 do uzyskania innych
+        informacji
+      </p>
+      <p>
+        Nie zależnie czy w RA będzie sugerowane SLAAC czy SLAAC z uzyciem
+        bezstanowego DHCPv6, klient musi wygenerować identyfikator interfejsu.
+        Taki identyfikator jest tworzony za pomocą metody EUI-64 lub za pomocą
+        wygenerowanych losowo 64-bit liczb. 
+      </p>
+      <p>
+        Instytucja IEEE określa EUI (<em>Extended Unique Identifier</em>) lub
+        jego zmodyfikowaną wersję EUI-64, która polega na utworzeniu
+        identyfikatora umieszczając 16-bitową wartość heksadecymalną <em>fffe</em>
+        w środku adresu MAC interfejsu, korzystającego z tej metody, oraz
+        odwróceniu w siódmego bitu adresu MAC z wartości binarnej 0 na 1.
+      </p>
+      <p>
+        Alternatywną metodą jest wygenerowanie 64-bitów liczb heksadecymalnych
+        zamiast generowania identyfikatora za pomocą metody EUI-64. Tak dzieje
+        się w wszystkich współczesnych systemach MS Windows.
+      </p>
+      <p>
+        Aby zapewnić unikalnosć adresów, hosty mogą użyć mechanizmu DAD
+        (<em>Duplicate Address Detection</em>). Jest to podobne do protokołu
+        ARP, żądanie o swój adres. Jeśli odpowiedź nie nadejdzie to oznacza,
+        że adres jest unikatowy.
+      </p>
       <h1 id="1.13.icmpprotocol">1.13. Protokół ICMP</h1>
       <p>
         Protokół ICMP jest protokołem diagnostyczno-kontrolnym, wspomagając