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