Tag: IPv6

  • (K) Statyczne przydzielanie adresów IPv6**

    (K) Statyczne przydzielanie adresów IPv6**

    Konfiguracja adresów IPv6

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6 do konfigurowanego interfejsu sieciowego.

    (config-if)# ipv6 address prefix/prefix-length eui-64

    Przypisuje adres IPv6 wygenerowany na podstawie adresacji EUI-64.

    (config-if)# ipv6 address prefix-IPv6 link-local

    Przypisuje adres Link-Local do konfigurowanego interfejsu sieciowego .

    (config-if)# ipv6 address prefix/prefix-length anycast

    Przypisuje adres anycast do konfigurowanego interfejsu sieciowego.

    (config-if)# ipv6 address autoconfig [default]

    Dynamicznie pozyskuje adres IPv6, przy wykorzystaniu funkcji SLAAC. (Opcjonalna pod-komenda „default” automatycznie dodaje adres IPv6 do tablicy routingu).
    Po skonfigurowaniu adresu Global Unicast bądź Unique Local Unicast, adres Link-local jest generowany automatycznie. W sytuacji usunięcia skonfigurowanych adresów GUA, ULA, adres link-local również zostanie usunięty. Wyjątek od przedstawionej sytuacji stanowi, wykorzystanie komendy [ipv6 enable] względem konfigurowanego interfejsu sieciowego.

    General Prefix Option

    (config)# ipv6 general-prefix nazwa-wzorca prefix-IPv6(Np. 2001:db8:cafe::/48)

    Tworzy wzorzec prefix-ów IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego.

    (config-if)# ipv6 address nazwa-wzorca prefix-hosta(Np. ::88:0:0:0:1/64)

    Tworzy adres IPv6 na podstawie określonego wzorca.

    # show ipv6 general-prefix

    Wyświetla skonfigurowane wzorce prefix-ów.
    Zmiana adresu podanego w wzorcu IPv6, automatycznie zmienia wszystkie utworzone za jego pomocą adresy IPv6, na konfigurowanym urządzeniu. Dzięki czemu funkcja ta może być wykorzystywana przy migracji z jednego dostawcy ISP do drugiego.

    Podstawowe komendy SHOW

    # show ipv6 neighbors

    Wyświetla wszystkie znane hosty, wykryte za pomocą protokołu NDP (Wiadomości NA, NS).

    # show ipv6 routers

    Wyświetla wszystkie znane rutery, wykryte za pomocą protokołu NDP (Wiadomości RA, RS), z tej samej sieci lokalnej. Rutery połączone za pomocą przewodu serialowego nie będą widoczne.

    # show ipv6 general-prefix

    Wyświetla skonfigurowane wzorce prefix-ów.

    Linux$ ndp -an

    Wyświetla odpowiednik tablicy ARP dla protokołu IPv6 (NDP), w systemie linux.

    Pozostałe tematy związane z konfiguracją protokołu IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (TK) Konfiguracja tuneli IPv6*

    (TK) Konfiguracja tuneli IPv6*

    Wstęp teoretyczny

    Dynamiczny tunel GRE IPv6 over IPv4 (6to4)

    • Dynamicznie nawiązywanie tuneli GRE (IPv6 over IPv4), umożliwia nawiązanie połączenia point-to-multipoint, traktowanego jako sieci NBMA (Virtual Nonbroadcast Multiaccess)(Zwykłe tunele GRE nawiązuje połączenie point-to-point).
    • Tunele GRE 6to4 charakteryzują następujące cechy:
      • Docelowy adres IPv4 sąsiedniego urządzenia brzegowego dla inne strefy IPv6, jest pozyskiwany z adresu IPv6, zapisanego w formacie 2002:adresIPv4urządzeniabrzegowego::/48.
      • Podstawowa topologia składa się z wielu stref IPv6, z których każda podłączona jest przynajmniej jednym interfejsem do współdzielonej sieci IPv4.
      • Każdy z ruterów brzegowych powinien posiadać globalnie unikalny adres IPv4 umożliwiający stworzenie globalnie unikalnego adresu IPv6 6to4. Dzięki czemu możliwe staje się stworzenie mapowania adresów IPv4 jak i IPv6 za pomocą DNS-u.
    Ruter brzegowy musi wspierać zarówno protokół IPv4 jak i IPv6.

    Konfiguracja tuneli IPv6

    Konfiguracja tunelu IPv6 over IPv4

    Konfiguracja tunelu

    (config)# ipv6 unicast-routing

    Aktywuje funkcję routingu dla protokołu IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji interfejsu sieciowego (Źródłowego interfejsu IPv4 względem tunelu IPv6).

    (config-if)# ip address adres-IPv4

    Przypisuje adres IPv4, do konfigurowanego interfejsu sieciowego.

    (config-if)# interface tunnel 0-2147483647(tunel-ID)

    Przechodzi do poziomu konfiguracji wirtualnego interfejsu sieciowego.

    (config-if)# ipv6 address {adres-IPv6 / enable}

    Przypisuje adres IPv6 do konfigurowanego tunelu GRE.

    (config-if)# tunnel source {adres-IPv4 / interfejs}

    Określa źródłowy interfejs wyjściowy / IPv4 interfejsu wyjściowego.

    (config-if)# tunnel destination adres-IPv4

    Określa docelowy adres IPv4 tunelu wirtualnego.

    (config-if)# tunnel mode ipv6ip

    Określa tryb pracy tunelu wirtualnego na IPv4 over IPv4.

    Konfiguracja trasy statycznej

    (config)# ipv6 route adres-IPv6 tunnel 0-2147483647(tunel-ID)

    Definiuje trasę statyczną dla konfigurowanego tunelu wirtualnego.

    Konfiguracja tunelu 6to4

    Konfiguracja tunelu GRE

    (config)# ipv6 unicast-routing

    Aktywuje funkcję routingu dla protokołu IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji interfejsu sieciowego (Źródłowego interfejsu IPv4 względem tunelu IPv6).

    (config-if)# ip address adres-IPv4

    Przypisuje adres IPv4, do konfigurowanego interfejsu sieciowego.

    (config-if)# interface tunnel 0-2147483647(tunel-ID)

    Tworzy nowy interfejs wirtualny (Tunel GRE).

    (config-if)# tunnel mode ipv6ip 6to4

    Zmienia tryb pracy tunelu GRE na „Automatic 6to4”. Komenda ta musi być wydana jako pierwsza, w trybie konfiguracji tunelu wirtualnego.

    (config-if)# ipv6 address 2002:XXXX:XXXX::/128

    Przypisuje adres IPv6 do konfigurowanego tunelu GRE (XXXX:XXXX odnosi się do adresu IPv4, interfejsu fizycznego (Source), zapisanego w postaci heksadecymalnej.

    (config-if)# tunnel source {adres-IPv4 / interfejs}

    Określa źródłowy interfejs wyjściowy / IPv4 interfejsu wyjściowego.

    Konfiguracja sieci LAN

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji interfejsu sieciowego.

    (config-if)# ip address prefix-IPv6/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# ipv6 route sieć-IPv6(LAN) 2002:XXXX:XXXX::(Adres tunelu, następnego przeskoku)

    Tworzy statyczną trasę routingu.
    Tunel automatic 6to4 nie jest kompatybilny z dynamicznymi protokołami routingu.
    Wszystkie adresy IPv6 znajdujące się w jednej lokalizacji muszą posiadać część wspólną, odpowiadającą adresowi IPv4.

    Przykładowa konfiguracja tunelu 6to4

    • W poniższym przykładzie konfiguracji automatycznego tunelu 6to4. Wszystkie adresy IPv6 skonfigurowane na podanych urządzeniach, odpowiadają lokalnym adresom IPv4, będącym siecią tranzytową dla nawiązywanego tunelu. Działają one tym samym jako część identyfikująca dany odział zdalny. W sytuacji nawiązywania tunelu GRE pomiędzy oddziałami, ruter odzyskuje adres IPv4 z adresu IPv6, a następnie wykorzystuje go jako adres docelowy dla nawiązywanego tunelu.

    Konfiguracja pierwszego oddziału zdalnego

    Site1(config)# ipv6 unicast-routing

    Site1(config)# interface gigabitethernet 0/0

    Site1(config-if)# ip address 10.20.30.1 255.255.255.0

    Konfiguracja współdzielonej sieci IPv4.

    Site1(config-if)# interface tunnel 1

    Site1(config-if)# ipv6 address 2002:0A14:1E01::1/64

    Site1(config-if)# tunnel source gigabitethernet 0/0

    Site1(config-if)# tunnel mode ipv6ip 6to4

    Konfiguracja tunelu GRE z adresacją IPv6 (Adres zawiera część wspólną, przeliczoną z systemu dziesiętnego na system szesnastkowy, na podstawie adresu IPv4. (0A14:1E01 / 10 = 0A / 20 = 14 / 30 = 1E / 1 = 01)).

    Site1(config-if)# interface loopback 99

    Site1(config-if)# ip address 2002:0A14:1E01:99::1/64

    Konfiguracja dodatkowego interfejsu sieciowego z adresem IPv6, również posiadającym cześć wspólną.

    Site1(config-if)# ipv6 route 2002::/16 tunnel 1

    Konfiguracja trasy statycznej dla routingu IPv6.

    Konfiguracja drugiego oddziału zdalnego

    Site2(config)# ipv6 unicast-routing

    Site2(config)# interface gigabitethernet 0/0

    Site2(config-if)# ip address 10.20.30.2 255.255.255.0

    Konfiguracja współdzielonej sieci IPv4.

    Site2(config-if)# interface tunnel 1

    Site2(config-if)# ipv6 address 2002:0A14:1E02::1/64

    Site2(config-if)# tunnel source gigabitethernet 0/0

    Site2(config-if)# tunnel mode ipv6ip 6to4

    Konfiguracja tunelu GRE z adresacją IPv6, odpowiadającą lokalnemu adresowi IPv4.

    Site2(config-if)# interface loopback 99

    Site2(config-if)# ip address 2002:0A14:1E02:99::1/64

    Konfiguracja dodatkowego interfejsu sieciowego z adresem IPv6, również posiadającym cześć wspólną.

    Site2(config-if)# ipv6 route 2002::/16 tunnel 1

    Konfiguracja trasy statycznej dla routingu IPv6.

    Pozostałe tematy związane z konfiguracją protokołu IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria Prefix Delegation Options**

    (T) Teoria Prefix Delegation Options**

    Wstęp do metody Prefix Delegation Options

    • Prefix Delegation umożliwia przyznanie adresu IPv6 urządzeniom końcowym, podłączonym do domowego rutera SOHO (Small office Home office), przez dostawcę usług Internetowych ISP. Dzięki tej metodzie ruter SOHO stanowić będzie urządzenie pośredniczące w procesie przyznawania adresu IPv6, przez dostawcę ISP.
    • Metoda Prefix Delegation wyróżnia dwa rodzaje urządzeń:
      • RR (Requesting Router) – Urządzenie końcowe wysyłające zapytanie o adres IPv6.
      • DR (Delegating Route) – Urządzenie ISP przyznające adres IPv6.
    • Prefix (/56) przyznawany przez ruter DR umożliwia stworzenie 256 pod-sieci, po stronie rutera RR (0:0:0:0001::1/56).

    Proces przyznawania adresu IPv6 metodą Prefix Delegation

    Proces przyznawania adresu IPv6 metodą Prefix Delegation

    Proces przyznawania adresu IPv6 metodą Prefix Delegation wygląda następująco

    • SOHO wysyła wiadomość Router Solicitation do rutera ISP.
    • ISP odpowiada na otrzymaną wiadomość Router Solicitation, wiadomością Router Advertisement. Dzięki czemu ruter SOHO jest w stanie stworzyć własny adres IPv6 Global Unicast.
    • Jako że SOHO został skonfigurowany w trybie DHCPv6-PD, inicjuje proces przyznawania adresów IPv6 za pomocą wiadomości SOLICIT zawierającej opcję Prefix Delegation Option.
    • Rutery wymieniają pomiędzy sobą wiadomości ADVERTISE oraz REQUEST.
    • ISP odpowiada na wiadomość REQUEST, wiadomością REPLAY. Zawierającą prefix IPv6 jaki ruter SOHO może przypisać do swojej sieci wewnętrznej (LAN), wraz z innymi informacjami takimi jak adres serwera DNS czy nazwę domenową.
    • Po otrzymaniu wiadomości REQUEST, ruter SOHO:
      • Przypisuje otrzymany prefix IPv6 do wewnętrznego interfejsu sieciowego (LAN).
      • Generuje adres IPv6 w oparciu o otrzymany prefix IPv6.
      • Rozpoczyna rozsyłanie wiadomości Router Advertisement z flagą O ustawioną na 1.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Przydzielanie adresów (Stateful DHCPv6)**

    (T) Przydzielanie adresów (Stateful DHCPv6)**

    Wstęp do Stateful DHCPv6

    RFC 3315 – Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
    • Dynamiczne adresowanie sieci, przy wykorzystaniu metody Stateful DHCPv6, działa analogicznie do dynamicznej adresacji protokołu DHCPv4. Proces nauki adresacji IPv6 różni się jedynie sposobem pozyskiwania adresu bramy domyślnej.
    • W procesie adresacji lokalny ruter rozgłasza wiadomości RA z flagą A = 0, O = 0 oraz M = 1. Jeżeli zarówno flago O jak i M będą posiadały wartość 1, klient w zależności od systemu operacyjnego, stworzy dwa adresy IPv6 (Jeden w oparciu o metodę SLAAC oraz drugi pozyskany od serwera DHCPv6).
    Porównanie DHCPv4 do Stateful DHCPv6

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Przydzielanie adresów (SLAAC + Stateless DHCPv6)**

    (T) Przydzielanie adresów (SLAAC + Stateless DHCPv6)**

    Wstęp do Stateless DHCPv6

    RFC 3736 – Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6
    • Dynamiczne adresowanie sieci, przy wykorzystaniu metody Stateless DHCPv6 (RFC 3736) umożliwia urządzeniu końcowemu, stworzenie adresu IPv6 za pomocą funkcji SLAAC (Stateless Address Autoconfiguration) oraz pobranie dodatkowych informacji protokołu DHCPv6 (Takich jak adres serwera DNS, NTP czy nazwę domenową) za pośrednictwem serwera DHCPv6.
    • Metoda Stateless DHCPv6 współpracuje z protokołem NDP w procesie pozyskiwania adresu IPv6, za pomocą wiadomości RS oraz RA, wymienianych pomiędzy urządzeniem końcowym a lokalnym ruterem. Wiadomość RA zawiera oprócz adresacji sieci lokalnej (Prefix-u oraz długości Prefix-a) flagi A = 1, O = 1 oraz M = 0.
    • Ostatnim krokiem procesu Stateless DHCPv6 jest pozyskanie dodatkowych informacji takich jak adres serwera DNS czy nazwę domenową, za pomocą serwera DHCPv6.
    Porównanie SLAAC do Stateless DHCPv6

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu DHCPv6**

    (T) Teoria protokołu DHCPv6**

    Wstęp do protokołu DHCPv6

    Zagadnienia związane z protokołem DHCPv6

    RFC 3315 – Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
    • DHCPv6 Client – Urządzenie inicjujące proces przydzielania adresu IPv6, oraz innych informacji rozgłaszanych przez serwer DHCPv6 (Takich jak adres serwera DNS czy nazwa domenowa).
    • DHCPv6 Server – Serwer DHCP odpowiadający na zapytania klienta, może lecz nie musi być w tej samej sieci co klient.
    • DHCPv6 Relay Agent – Urządzenie pośrednie, umożliwiające komunikację klienta z serwerem DHCP, w sytuacji gdy obydwa urządzenia znajdują się w innej sieci (Przeważnie jest to ruter).
    • Inne zagadnienia związane z protokołem DHCPv6:
      • DUID (DHCP Unique Identifier) – Numer identyfikujący urządzenia wspierającego protokół DHCPv6. Zarówno klient jak i serwer DHCP posiadają po jednej unikalnej 2-bajtowej wartości, która wraz z zmienną tworzy numer DUID (Referencja RFC 3315 ogranicza wielkość wartości DUID do 128 bajtów). Obecnie występują trzy rodzaje wartości DUID:
        • Adres Link-Local połączony z czasem.
        • Unikalny numer ID nadany przez organizację IANA.
        • Adres Link-Layer.
      • IA (Identity Association) – Kombinacja adresów przypisanych do jednego interfejsu sieciowego.
      • IAID (Identity Association Identifier) – Unikalna wartość przypisane do interfejsu sieciowego.
    • Adresy IPv6 oraz porty wykorzystywane przez serwer DHCPv6:
      • All_DHCP_Relay_Agents_and_Servers (FF02::1:2) – Multicast-owy adres Link-Local określający wszystkie serwery DHCPv6 oraz wszystkich agentów pośredniczących (Relay Agents).
      • All_DHCP_Servers (FF05::1:3) – Multicast-owy adres Site-Local określający wszystkie serwery DHCPv6.
      • UDP port 546 – Server DHCPv6 oraz agent pośredniczący (Relay) wysyłają wiadomości DHCP do klienta na porcie docelowym UDP 546.
      • UDP port 547 – Klient wysyła wiadomości DHCP do serwera DHCPv6 bądź agenta pośredniczącego (Relay) na porcie docelowym UDP 547.

    Wiadomości protokołu DHCPv6

    • SOLICIT (1) – Wiadomość wysyłana przez klienta w celu zlokalizowania serwera bądź wielu serwerów DHCPv6.
    • ADVERTISE (2) – Odpowiedź serwera DHCPv6 na wiadomość SOLICIT.
    • REQUEST (3) – Zapytanie klienta skierowane do jednego z wybranych serwerów DHCPv6, z prośbą o przydzielenie adresu IPv6 oraz innych informacji protokołu DHCPv6 (Takich jak adres serwera DNS czy nazwa domenowa).
    • REPLAY (7) – Odpowiedź serwera DHCPv6 na wiadomość REQUEST. Zawiera adres IPv6 oraz inne informację protokołu DHCPv6. Odpowiedź REPLAY jest również stosowana w odpowiedzi na wiadomość SOLICIT w sytuacji skonfigurowania serwera DHCPv6 z opcją Rapid Commit Option.
    • INFORMATION-REQUEST (11) – Zapytanie klienta wysłane do jednego z wybranych serwerów DHCPv6, z prośbą o przesłanie innych informacji protokołu DHCPv6 bez jednoczesnego przydzielania adresu IPv6.
    • RENEW (5) – Prośba klienta o przedłużenie dzierżawy adresu IPv6 (Zawiera adres oraz inne informacje protokołu DHCP).
    • RELEASE (8) – Prośba klienta o unieważnienie dzierżawy adresu IPv6.
    • DECLINE (9) – Wiadomość wysłana przez klienta DHCP w celu poinformowania serwera DHCPv6, że wydzierżawiony przez serwer adres występuje już w sieci lokalnej (Duplikacja wykryta za pomocą funkcji DAD).

    Podstawowa zasada działania protokołu DHCPv6

    • Wymiana informacji pomiędzy klientem a serwerem DHCPv6, jest zbliżona w swym działaniu do zasad protokołu DHCP względem protokołu IPv4, istnieje jednak pomiędzy nimi pewna różnica wynikająca z np. braku adresu rozgłoszeni-owego w protokole IPv6.
    • Proces wymiany danych pomiędzy klientem a serwerem DHCPv6 wygląda następująco:
      • Klient wysyła zapytanie SOLICIT (multicast address).
      • Serwer odpowiada komunikatem ADVERTISE (unicast address).
        • Klient kolekcjonuje otrzymane komunikaty ADVERTISE, zebrane od wielu serwerów DHCPv6. W celu wybrania najlepszej propozycji względem propagowanego prefiksu.
      • Klient potwierdza wybranie adresu IPv6 za pomocą komunikatu REQUEST.
      • Serwer potwierdza rezerwację adresu za pomocą komunikatu CONFIRM.
    • Oprócz tradycyjnej cztero-fazowej negocjacji adresu IPv6, istnieje jeszcze jedna opcjonalna, dwuetapowa negocjacja (Rapid two-way message Exchange), w której klient wraz z serwerem DHCPv6 wymieniają jedynie komunikaty SOLICIT oraz REPLY.
    Aby opcja dwuetapowej negocjacji adresu IPv6 była dostępna, obydwa urządzenia muszą być skonfigurowane w trybie szybkiego zatwierdzania pakietów protokołu DHCP „rapid-commit” (RFC 4039).
    Proces cztero-stopniowej negocjacji jest wykorzystywany w sieci posiadającej więcej niż jeden serwer DHCPv6. Natomiast w przypadku sieci z jednym serwerem, możliwe staje się wykorzystanie negocjacji dwuetapowej.

    Stateful DHCPv6 – Relay Agent

    • W sytuacji, w której docelowy serwer DHCPv6 znajduje się w innej sieci niż host. Protokół DHCP wykorzystuje dwa adresy IPv6. Źródłowy Link-Local oraz docelowy multicast, kierowany do wszystkich agentów pośredniczących (Relay).
      • Adres źródłowy Link-Local – Klient wykorzystuje własny adres IPv6 Link-Local w celu nadania zapytania DHCPv6.
      • Adres Multicast-owy FF02::1:2 – Link-Local Multicast Address jest wykorzystywany jako adres docelowy skierowany do wszystkich serwerów znajdujących się w sieci lokalnej oraz ruterów działających jako agenci przekierowania (Relay).
    W przypadku agenta Relay względem protokołu IPv6, ruter pełniący tę rolę zmienia adres źródłowy (Link-Local klienta DHCP) na swój własny adres unicast-owy. Jest to istotna różnica w stosunku do protokołu IPv4.

    Działanie protokołu DHCPv6

    Proces działania protokołu DHCPv6

    Wiadomości RS, RA zostały opisane w artykule: Router Solicitation oraz Router Advertisement.

    Diagram opisujący działanie protokołu DHCPv6
    1. Jeżeli klient protokołu DHCPv6 nie otrzymał jeszcze wiadomości Router Advertisement, sam zainicjuje proces pozyskiwania adresu IPv6 za pomocą wiadomości Router Solicitation, wysłanej na adres FF02::2.
    2. Ruter systematycznie co 200 sekund, bądź w odpowiedzi na zapytania Router Solicitation wysyła odpowiedzi Router Advertisement, ze skonfigurowanymi przez administratora flagami A, O oraz M.
    3. Klient wyśle wiadomość SOLICIT do wszystkich dostępnych serwerów DHCPv6 (Na adres IPv6 FF02::1:2). W niektórych przypadkach klient może wysłać wiadomość SOLICIT na opcjonalnie skonfigurowany adres Unicast.
    4. Serwer odpowie na wiadomość SOLICIT, wiadomością ADVERTISE. Jeżeli klient otrzyma więcej niż jedną wiadomość ADVERTISE rozpocznie proces wyboru najlepszej oferty (RFC 3315 rozdział 17.1.3).
    5. Klient wyśle wiadomość REQUEST bądź INFORMATION-REQUEST w zależności od wybranej metody pobierania adresu IPv6 (Stateful bądź Stateless DHCPv6) w oparciu o wartości otrzymanych flag A, O oraz M.
      1. Jeżeli flaga M posiada wartość 1, klient wyśle wiadomość REQUEST.
      1. Jeżeli flaga M posiada wartość 0 a flaga O wartość 1, klient wyśle wiadomość INFORMATION-REQUEST.
    6. Serwer odpowie na wiadomość REQUEST, wiadomością REPLAY zawierającą adres IPv6 oraz inne informacje protokołu DHCPv6. W przypadku otrzymania wiadomości INFORMATION-REQUEST, serwer odpowie wiadomością REPLAY zawierającą jedynie pozostałe informacje protokołu DHCPv6 bez adresu IPv6.
    7. W sytuacji, w której czas dzierżawy adresu IPv6 zbliża się ku końcowi, klient wyśle wiadomość RENEW z prośbą o wydłużenie tego czasu.
    8. Serwer odpowie na otrzymaną wiadomość RENEW, wiadomością REPLAY, potwierdzając tym samym przedłużenie czasu dzierżawy.
    Zarówno wiadomość RENEW jak i REPLAY zawierają adres IP wraz z innymi informacjami protokołu DHCPv6.
    • Jeżeli klient nie potrzebuje już przydzielonego adresu IPv6, wyśle wiadomość zwalniającą posiadany adres (RELEASE).
    Serwer wysyła wiadomość potwierdzającą REPLAY, w odpowiedzi na wiadomość RELEASE bądź DECLINE.

    Zasada działania protokołu DHCPv6 Relay Agent

    W przypadku łączenie się z serwerem DHCPv6 za pośrednictwem rutera pośredniczącego (Relay Agent), proces przydziału adresu IPv6 przez serwer DHCPv6 wygląda następująco:

    1. Jeżeli klient protokołu DHCPv6 nie otrzymał jeszcze wiadomości Router Advertisement, sam zainicjuje proces pozyskiwania adresu IPv6 za pomocą wiadomości Router Solicitation, wysłanej na adres FF02::2.
    2. Ruter systematycznie co 200 sekund, bądź w odpowiedzi na zapytania Router Solicitation wysyła odpowiedzi Router Advertisement, ze skonfigurowanymi przez administratora flagami A, O oraz M.
    3. Klient wyśle wiadomość SOLICIT do wszystkich dostępnych serwerów DHCPv6 (Na adres IPv6 FF02::1:2). W niektórych przypadkach klient może wysłać wiadomość SOLICIT na opcjonalnie skonfigurowany adres Unicast.
    4. Agent wyśle wiadomość RELAY-FORWARD zawierającą enkapsulowaną, oryginalną wiadomość SOLICIT otrzymaną od klienta, na multicast-owy adres Site-Local (FF05::1:3), bądź skonfigurowany przez administratora adres Unicast.
    5. Serwer odpowie na wiadomość RELAY-FORWARD, wiadomością RELAY-REPLY zawierającą enkapsulowaną wiadomość ADVERTISE …
    Wszystkie wiadomości nadawane przez agenta Relay do serwera DHCPv6 stanowią oryginalną wiadomość otrzymaną od klienta, enkapsulowaną do postaci wiadomości RELAY-FORWARD.
    Wszystkie wiadomości wysyłane przez serwer DHCPv6 do Agenta Relay stanowią oryginalną wiadomość serwera enkapsulowaną do postaci wiadomości RELAY-REPLY.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Przydzielanie adresów (SLAAC)**

    (T) Przydzielanie adresów (SLAAC)**

    Wstęp do metody SLAAC (Stateless Address Autoconfiguration)

    RFC 3769 – Requirements for IPv6 Prefix Delegation
    SLAAC (Stateless Address Autoconfiguration)

    Proces przyznawania adresu IPv6 za pomocą metody SLAAC

    • Klient generuje własny adres IPv6 Link-local.
    • Klient wysyła wiadomość RS (Router Solicitation) na multicast-owy adres FF02::2 (Oznaczający wszystkie rutery).
    • Ruter odpowiada na otrzymaną wiadomość RS, wiadomością RA (Router Advertisement) wysłaną na multicast-owy adres FF02::1 (Oznaczający wszystkie urządzenia IPv6). Wiadomość ta zawiera następujące informacje: IPv6 Prefix, Prefix Length, Default Gateway (IPv6 source address, of RA message), MTU value (RA Flags: A = 1, O = 0, M = 0).
    • Klient generuje własny adres IPv6 przy wykorzystaniu otrzymanego prefix-u połączonego z metodą EUI-64, bądź losowo generowaną wartością w przypadku systemu Windows (Adres bramy domyślnej stanowi adres źródłowy wiadomości RA).
    • Klient sprawdza czy wygenerowany adres IPv6 nie powtarza się w sieli lokalnej, za pomocą procesu DAD (Duplicate Address Detection). Proces ten jest również przeprowadzany w odniesieniu do adresu Link-Local.
    • Jeżeli wygenerowany adres IPv6 jest unikalny, zostanie aktywowany na określonym interfejsie sieciowym.
    Wiadomości RA są domyślnie wysyłane co 200 sekund bądź w odpowiedzi na wiadomość Router Solicitation message (Wymagana jest przy tym aktywowanie funkcji rutera protokołu IPv6, za pomocą komendy [ipv6 unicast-routing] na ruterze).
    Ruter może opcjonalnie rozgłaszać adres serwera DNS.

    IPv6 unicast-routing

    • Aktywacja komendy [ipv6 unicast-routing] powoduje że ruter:
      • Będzie Trasować pakiety protokołu IPv6.
      • Zyska możliwość konfiguracji protokołów routingu dynamicznego, względem protokołu IPv6.
      • Rozpocznie wysyłanie wiadomości ICMPv6 (RA).
      • Doda wszystkie interfejsy do grupy Multicast-owej (FF02::1 / FF02::2).

    Wartości ND (Rozgłaszane przez ruter w wiadomościach RA)

    • ND Router Advertisement (Domyślnie 200 sekund) – Częstotliwość z jaką wysyłane są wiadomości RA.
    • ND Router Advertisement Live (Router Lifetime) (Domyślnie 1800 sekund) – Czas przez jaki urządzenie końcowe powinno uważać dany ruter za bramę domyślną (Czas ten zostaje zresetowany po otrzymaniu nowej wiadomości RA, domyślnie wysyłanej co 200 sekund) (Wartość 0 oznacza że dany ruter nie powinien być brany pod uwagę, jako urządzenie pełniące rolę bramy domyślnej, względem urządzeń końcowych znajdujących się w danej sieci).
    • ND Advertised Default Route Preference (Domyślnie Medium) – Wartość priorytetu określonego rutera, mająca wpływ na proces wyboru bramy domyślnej względem urządzenia końcowego. Wartość ta jest szczególnie przydatna w sieci posiadającej więcej niż jedną bramę domyślną (Dostępne są następujące wartości: High, Medium orz Low).

    Weryfikacja konfiguracji adresu IPv6

    • Komenda [show ipv6 interface interfejs] wyświetla informacje o:
      • Skonfigurowanej wartość MTU, czasie ND Router Advertisement (Domyślnie 200 sekund), czasie ND Router Advertisement Live (Domyślnie 1800 sekund) oraz wartości Default Route Preference (Domyślnie Medium).
      • Jeżeli na ruterze została aktywowana funkcja [ipv6 unicast-routing] interfejs będzie należał do grupy FF01::2.
      • W przypadku skonfigurowania metody SLAAC, komenda wyświetli „Host use Stateless Autoconfig for Address”.

    Adresy IPv6 w systemach operacyjnych (Windows, Linux oraz MAC OS)

    • Domyślnie, w czasie trwania procesu przyznawania adresów IPv6 przy wykorzystaniu metody SLAAC, oprócz głównego adresu Global Unicast Address (GUA) zwanego inaczej adresem publicznym (Public Address), do urządzenia zostaje przypisany drugi tymczasowy adres GUA zwany (Temporary Address). Powstały zgodnie z referencją RFC 4941 “Privacy Extensions for Stateless Address Autoconfiguration in IPv6” (Obydwa adresy IPv6 winny być globalnie routowalne).
      • Adres tymczasowy (Temporary Address) – Może być tworzony jedynie na podstawie liczby generowanej losowo, jest wykorzystywany jako źródłowy adres protokołu IPv6, przy nawiązywaniu połączenia z innymi urządzeniami sieciowymi, ponad to posiada krótszy czasz życia od adresu publicznego (Public Address).

    Adres IPv6 On-Link

    • Kiedy urządzenie końcowe chce wysłać pakiet na określony adres IPv6, musi określić czy wskazany adres znajduje się w tej samej sieci co omawiane urządzenie. Jeżeli tak pakiet zostanie wysłany bezpośrednio, jeżeli nie pakiet zostanie wysłany pośrednio, przez adres bramy domyślnej (Zapisany w lokalnej tablicy „Default Router List”).
    • W przypadku adresacji IPv4 określenie metody komunikacji (Bezpośredniej, Pośredniej), następuję po porównaniu adresu docelowego z maską sieciową lokalnego interfejsu z wykorzystaniem operacji logicznej AND.
    • W przypadku adresacji IPv6 określenie metody komunikacji (Bezpośredniej, Pośredniej), następuję na podstawie zawartości pola Prefix oraz pola On-Link Flag (L flag) wiadomości Router Advertisement (RA).
      • Wiadomość Router Advertisement odebrana przez urządzenie końcowe w czasie trwania procesu SLAAC, posiada domyślnie flagę L ustawioną na wartość 1, co oznacza że adres IPv6 stworzony na podstawie zawartego w wiadomości RA prefix-u, jest adresem On-Link.
      • Bazę lokalnych adresów IPv6 On-Link można wyświetlić w systemie Windows, za pomocą komendy [netsh interface ipv6 show siteprefixes].

    Bezpieczne generowanie adresu IPv6

    • Domyślnie generowany przy wykorzystaniu metody EUI-64 adres IPv6, zawiera w swojej strukturze fizyczny adres karty sieciowej (MAC). Co umożliwia śledzenie komunikacji prowadzonej przez komputer posiadający dany adres MAC, niezależnie od obecnie posiadanego adresu IPv6 (Ponieważ każdy nowy adres będzie zawierał ten sam adres MAC). Dlatego w systemie Windows adres IPv6 jest losowo generowany, ponadto wykorzystywany jest również drugi tymczasowy adres GUA zwany (Temporary Address), posiadający krótszą długość życia.

    Czas życia adresów IPv6

    SLAAC stany adresów IPv6

    • Tentative Address – Dynamicznie przypisany, bądź statycznie przyznany adres IPv6, podlegający weryfikacji w procesie DAD. Związku z tym nie jest to jeszcze adres przypisany do żadnego z interfejsów sieciowych, a wszelki ruch na niego kierowany, poza wiadomościami Neighbor Discovery (Wykorzystywanymi w procesie DAD) zostanie porzucony.
    • Valid Address – Adres IPv6 będący adresem preferowanym (Preferred Address) bądź przestarzałym (Deprecated Address), wykorzystywanym jako źródłowy bądź docelowy adres wysyłanych bądź też odbieranych pakietów IPv6. Okres przez jaki adres ten pozostaje ważny (Valid) jest zdefiniowany w wiadomościach RA.
      • Preferred Address – Adres IPv6 zweryfikowany za pomocą funkcji DAD, aktywnie wykorzystywany do nadawania oraz obierania pakietów, jest wykorzystywany do inicjowania nowych połączeń jako preferowany adres źródłowy.
      • Deprecated Address – Adres IPv6 wykorzystywany do nadawania oraz obierania pakietów w celu zachowania kompatybilności z aktywnymi sejmami np. TCP. Nie może być wykorzystywany do inicjowania nowych połączeń.
    • Invalid Address – Adres IPv6 którego czas (Valid Lifetime) upłynął, nie jest on już aktywnie wykorzystywany do nadawania czy obierania pakietów IPv6.

    SLAAC czasy życia adresów IPv6

    • Preferred Lifetime – Okres czasu przez jaki adres IPv6 jest adresem preferowanym (Preferred Address), zanim przejdzie w stan przestarzały (Deprecated Address).
    • Valid Lifetime – Okres czasu przez jaki adres IPv6 jest adresem ważnym (Valid Address), zanim przejdzie w stan przeterminowany (Invalid).

    Pełny proces funkcjonowania metody SLAAC

    Proces funkcjonowania metody SLAAC
    1. Urządzenie końcowe wspierające protokół IPv6, automatycznie generuje własny adres IPv6 Link-Local:
      1. Stworzony adres Link-local jest weryfikowany pod kontem występowania duplikacji adresu IPv6 (DAD).
      2. Po zakończeniu weryfikacji DAD, adres Link-Local zostaje przeniesiony do stanu Valid Preferred.
      3. Jako że adres Link-Local nie podlega tym samym zasadą co adres GUA, posiada nielimitowany czas życia.
    2. Urządzenie końcowe wymienia z ruterem wiadomości RA oraz RS w celu pozyskania adresu IPv6 GUA.
      1. Wiadomość RA otrzymana od rutera, zawiera informacje dotyczące czasów Valid Lifetime oraz Preferred Lifetime.
    3. Na podstawie informacji zawartych w wiadomości RA urządzenie końcowe generuje własny adres GUA, w przypadku systemu Windows oraz systemu Linux, generowane są dwa adresy IPv6 publiczny (Public) oraz tymczasowy (Temporary).
      1. System Windows tworzy obydwa adresy IPv6 (GUA) na podstawie wartości generowanej losowo.
      2. System Linux tworzy adres publiczny (GUA Public) na podstawie metody EUI-64 natomiast adres tymczasowy (GUA Temporary) na podstawie wartości generowanej losowo.
      3. Obydwa adresy GUA w przypadku obydwóch systemów operacyjnych, posiadają flagę L z wartością 1.
    4. Po zakończeniu weryfikacji DAD, adresy GUA zostają przeniesione do stanu Valid Preferred.
    5. Adres publiczny (Public Address) podlega pod czas Valid Lifetime (Domyślnie 30 Dni) oraz czas Preferred Lifetime (Domyślnie 7 Dni) zawarty w wiadomościach RA, otrzymanych do lokalnego rutera (Odebranie nowej wiadomości RA resetuje obydwa licznik).
    6. Adres tymczasowy (Temporary Address) przeważnie posiada krótszą długość życia (Lifetime), ponadto odebranie nowej wiadomości RA nie resetuje licznika Lifetime.
      1. System Windows posiada następujące wartości domyślne: Valid Lifetime 7 dni, Preferred Lifetime 7 dni.
      2. System Linux posiada następujące wartości domyślne: Valid Lifetime 7 dni, Preferred Lifetime 1 dzień.
    Po upływie czasu Preferred Lifetime adres IPv6 GUA zostanie przeniesiony do stanu Deprecated.
    Po upływie czasu Valid Lifetime adres IPv6 GUA zostanie przeniesiony do stanu Invalid.

    Wybór wykorzystywanego adresu IPv6

    1. Prefer Same Address
    2. Prefer Appropriate Scope
    3. Avoid Deprecated Address
    4. Prefer Home Address (Mobility)
    5. Prefer Outgoing Interface
    6. Prefer Matching Label
    7. Prefer Temporary Address
    8. Use longest Prefix Matching

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (S) RS

    (S) RS

    RS (Router Solicitation)

    (więcej…)
  • (S) RA

    (S) RA

    RA (Router Advertisement)

    (więcej…)
  • (S) NS*

    (S) NS*

    NS (Neighbor Solicitation)

    (więcej…)
  • (S) NA*

    (S) NA*

    NA (Neighbor Advertisement)

    (więcej…)
  • (TK) Teoria protokołu NPTv6**

    (TK) Teoria protokołu NPTv6**

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    NPTv6 (Network Prefix Translation)

    • Protokół NPTv6 umożliwia statyczną translacją prefix-ów IPv6 na inne prefix-y IPv6, zgodnie z zasadą jeden do jednego (1:1) (Stateless address translation), nie umożliwiając przy tym translacji Stateful.
    • Protokół NPTv6 jest wykorzystywany w sieci, ponieważ:
      • Uniezależnia wewnętrzną adresację sieci od dostawcy ISP, tym samym zmiana globalnego prefix-u nie wymaga zmiany wewnętrznej adresacji IPv6.
      • Umożliwia translację adresów ULA (Unique Local Address) na GUA (Global Unicast Address).
    • Protokół NPTv6:
      • Nie wymaga mapowania przy translacji prefix-ów IPv6.
      • Nie umożliwia translacji adresów IPv6, a jedynie translację prefix-ów IPv6.
      • Generuje tą samą wartość sumy kontrolnej jaką generuje algorytm (Internet Checksum Algorithm).
    • Protokół NPTv6 nie umożliwia translacji adresu GUA, na inne adresy GUA.

    Konfiguracja protokołu NPTv6

    Konfiguracja NPTv6 względem interfejsu LAN

    (config)# ipv6 unicast-routing

    Aktywuje funkcję routingu dla protokołu IPv6.

    (config)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (LAN).

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat66 inside

    Określa konfigurowany interfejs jako interfejs wewnętrzny w procesie translacji NPTv6.

    Konfiguracja NPTv6 względem interfejsu WAN

    (config-if)# interface interfejs

    Przechodzi do poziomu konfiguracji określonego interfejsu sieciowego (WAN).

    (config-if)# ipv6 address prefix/prefix-length

    Przypisuje adres IPv6, do konfigurowanego interfejsu sieciowego.

    (config-if)# nat66 outside

    Określa konfigurowany interfejs jako interfejs zewnętrzny w procesie translacji NPTv6.

    Globalna konfiguracja protokołu NPTv6

    (config)# nat66 prefix inside prefix/prefix-length(Prefix wewnętrzny)(Np. 2001:DB8:0:12::/64) outside prefix/prefix-length(Prefix zewnętrzny)(Np. 2001:DB8:0:2::/64)

    Określa jakie prefix-y IPv6 będą tłumaczone przez protokół NPTv6.

    # show nat66 prefix

    Wyświetla konfigurację protokołu NPTv6.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu NAT-PT**

    (T) Teoria protokołu NAT-PT**

    Protokół NAT-PT opisuje dokument referencyjny RFC 2766 oraz RFC 2765.

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    Wstęp do protokołu NAT-PT

    • Protokół NAT-PT umożliwia statyczną (Static), dynamiczną (Dynamic) bądź przepełnioną (Overload) translacją adresów IPv6 na adresy IPv4 jak i odwrót. Na podstawie portów warstwy czwartej.
    • Translacja statyczna (Static):
      • Umożliwia mapowanie pojedynczego adresu IPv6 do jednego adresu IPv4 jak i na odwrót.
    • Translacja dynamiczna (Dynamic):
      • Umożliwia mapowanie wielu adresów IPv6 na wiele adresów IPv4 należących do skonfigurowanej przez administratora puli adresów.
    • Translacja przepełniona (Overload):
      • Umożliwia mapowanie wielu adresów IPv6 na jeden adres IPv4 z przepełnieniem.

    Ograniczenia protokołu NAT-PT

    • Nie wspiera funkcji Cisco Express Forwarding.
    • Wspiera jedynie protokół: DNS, FTP, ICMP oraz ALGs.
    • Nie zapewnia bezpieczeństwa (end-to-end security).

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Teoria protokołu NAT64**

    (T) Teoria protokołu NAT64**

    Konfiguracja protokołu NPTv6 została opisana w artykule: Konfiguracja translacji NAT względem protokołu IPv6.

    NAT64 (IPv4 <-> IPv6)

    Wprowadzenie do protokołu NAT64

    • NAT-PT opisuje referencja RFC 6144, 2766 oraz 4966.
    • NAT64 opisuje referencja RFC 6146, 6145 oraz 6052.
    • Protokół NAT64 umożliwia translację adresów IPv4 na adresy IPv6, jak i na odwrót.
    • Protokół NAT64 stanowi ulepszoną wersję protokołu NAT-PT.

    Komponenty protokołu NAT64

    • NAT64 prefix – Prefix-y IPv6 wykorzystywane w protokole NAT64: /32, /40, /48, /56, /64, /96.
    • DNS64 server – Serwer DNS odwzorowujący nazwy domenowe AAAA na adresy IPv6. Oprócz rekordów AAAA serwery DNS64 obsługują również rekordy A, dzięki czemu mogą również odwzorować adresy IPv4.
    • NAT64 router – Ruter na którym zachodzi proces translacji adresów IPv6 na adresy IPv4, jak i na odwrót.

    DNS (Domain Name System)

    • A Record – Odwzorowuje nazwę domenową na adres IPv4.
    • AAAA Record – Odwzorowuje nazwę domenową na adres IPv6.
    • Adres serwera DNS względem protokołu IPv6 można skonfigurować za pomocą komendy [ip name-server adresy-IPv6].
    • Statyczne odwzorowanie adresów IPv6 na nazwę domenową w systemie Cisco IOS, można skonfigurować za pomocą komendy [ipv6 host nazwa-domeny [port] adresy-IPv6].

    Proces działania protokołu NAT64 (IPv6 host to IPv4 server)

    Skrócony proces protokołu NAT64

    • Proces translacji IPv6 -> IPv4:
      1. Nadchodzący pakiet IPv6 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
      2. Protokół NAT64 przeprowadza translację docelowego adresu IPv6, wydobywając z niego docelowy adres IPv4.
      3. Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.
    • Proces translacji IPv4 -> IPv6:
      1. Nadchodzący pakiet IPv4 zostaje przekierowany do wirtualnego interfejsu NVI (NAT Vitrual Interface).
      2. Docelowy adres IPv4 zostaje statycznie bądź dynamicznie mapowany na adres IPv6.
      3. Protokół NAT64 dodaje do tablicy (Bind Databese) wpis o przeprowadzonej translacji.

    Pełny proces protokołu NAT64

    Szczegółowy proces działania protokołu NAT64 (IPv6 host to IPv4 server)
    1. Host wysyła zapytanie Query (AAAA www.cisco.com) do serwera DNS64.
    2. Serwer DNS64 otrzymuje zapytanie Query od hosta. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła zapytanie Query do zaufanego serwera DNS AAAA.
    3. Serwer DNS AAAA otrzymuje zapytanie Query od Serwer DNS64. Jako że nie zna odwzorowania podanej nazwy domenowej na adres IPv6, wysyła odpowiedź Response (Name Error: www.cisco.com), do serwera DNS64.
    4. Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS AAAA. Następnie wysyła zapytania Query (A www.cisco.com) do serwera DNS A.
    5. Serwer DNS A otrzymuje zapytanie Query od serwera DNS64. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 10.10.10.10), do serwera DNS64.
    6. Serwer DNS64 otrzymuje odpowiedź Response od serwera DNS A. Jako że podany adres IP nie jest adresem protokołu IPv6, serwer DNS64 przekształca otrzymany adres IPv4 w specjalny adres IPv6 wykorzystywany przez protokół NAT64. Adres ten składa się z przekształconego adresu IPv4 (10.10.10.10 -> 0A0A:0A0A) oraz adresu IPv6 (2001:DB8:CAFE:AAAA::/96) co razem daje nowy, docelowy adres IPv6 w następującej postaci (2001:DB8:CAFE:AAAA::0A0A:0A0A/96).
    7. Serwer DNS64 wysyła odpowiedź Response (www.cisco.com(AAAAA) = 2001:DB8:CAFE:AAAA::0A0A:0A0A) do hosta.
    8. Host wysyła pakiet na docelowy adres IPv6 przekazany w odpowiedzi Response od serwera DNS64.
    9. Ruter NAT64 otrzymuje pakiet IPv6 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces Statefull NAT Translation (Prefix 2001:DB8:CAFE:AAAA::/96). Jako że pierwsze 96 bitów adresów IPv6 się nie zgadza, ruter NAT:
      1. Przekształca nagłówek pakietu IPv6 na nagłówek IPv4.
      2. Przekształca adres IPv6 na adres IPv4, usuwając z docelowego adresu IPv6 prefix 2001:DB8:CAFE:AAAA::/96) jak i zmieniając ostatnie bity adresu IPv6 z trybu szesnastkowego na dziesiętny (0A0A:0A0A -> 10.10.10.10).
      3. W zależności od konfiguracji protokołu NAT64, ruter przekształca źródłowy adres IPv6 na adres IPv4. Na zasadzie jeden do jednego (1:1) bądź poprzez przepełnienie (Overloading). Metoda ta jest podobna do protokołu PAT.
      4. Następnie następuje proces translacji adresów IP, a wyniki są zapisywane w tablicy NAT Translations.
    10. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
    11. Docelowy serwer IPv4 odpowiada na otrzymany pakiet IPv4.
    12. Ruter NAT64 otrzymuje pakiet IPv4 od serwera docelowego na interfejsie (NAT64 enable), sprawdzając czy w tablicy NAT Translations istnieje wpis odpowiadający informacją zawartym w otrzymanym pakiecie.
      1. Jeżeli ruter NAT64 nie posiada pasującego wpisu w tablicy NAT Translations, pakiet zostaje porzucony.
      2. Jeżeli ruter NAT64 posiada pasujący wpis w tablicy NAT Translations, następuje translacja z adresu IPv4 na IPv6.
    13. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.

    Proces działania protokołu NAT64 (IPv4 host to IPv6 server)

    Szczegółowy proces działania protokołu NAT64 (IPv4 host to IPv6 server)
    1. Na ruterze NAT64 zostaje skonfigurowany protokół NAT64, ze statycznym mapowaniem adresu IPv6 na adres IPv4, za pomocą komendy [nat64 v6v4 static 2001:db8:feed:1::e 172.16.1.10], wydanej w trybie konfiguracji globalnej.
    2. Host wysyła zapytanie Query (A www.cisco.com) do serwera DNS.
    3. Serwer DNS otrzymuje zapytanie Query od hosta. Jako że posiada odwzorowanie podanej nazwy domenowej na adres IPv4, wysyła odpowiedź Response (www.cisco.com(A) = 172.16.1.10), do hosta.
    4. Host wysyła pakiet na docelowy adres IPv4 przekazany w odpowiedzi Response od serwera DNS.
    5. Ruter NAT64 otrzymuje pakiet IPv4 od hosta, na interfejsie (NAT64 enable). Rozpoczynając tym samym proces translacji:
      1. Ruter NAT64 przekształca nagłówek pakietu IPv4 na nagłówek IPv6, zmieniając docelowy adres IPv4 na adres IPv6.
      2. Ruter NAT64 przekształca źródłowy adres IPv4, na nowo stworzony adres IPv6 (192.0.2.10 -> C000:020A), co razem daje nowy docelowy adres IPv6, w następującej postaci (2001:DB8:CAFE:AAAA:: C000:020A).
    6. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.
    7. Docelowy serwer IPv6 odpowiada na otrzymany pakiet IPv6.
    8. Ruter NAT64 otrzymuje pakiet IPv6 od serwera docelowego na interfejsie (NAT64 enable), rozpoczynając tym samym proces translacji NAT. Ruter NAT64:
      1. Przekształca nagłówek pakietu IPv6 na nagłówek IPv4, zmieniając źródłowy adres IPv6 na adres IPv4.
      2. Przekształca docelowy adres IPv6, na adres IPv4. Na podstawie oryginalnego docelowego adresu IPv6.
    9. Po translacji NAT64 pakiet kierowany jest na interfejs wyjściowy rutera NAT64.

    Porównanie Stateless NAT64 do Stateful NAT64

    Stateless NAT64 Stateful NAT64
    1:1 translation 1:N translation
    No conservation of IPv4 address Conserves IPv4 address
    Assures end-to-end address transparency and scalability Uses address Overloading, hence lacks in end-to-end address transparency
    No state or bindings created on the translations State or bindings are created every unique translation
    Requires IPv4-transable IPv6 addresses assignment No requirement on the nature of IPv6 address assignment
    Requires either manual or DHCPv6 based address assignment for IPv6 host Free to Choose any mode of IPv6 address assignment (Manual, DHCPv6, SLAAC).

    Porównanie metody Stateless NAT64 do metody Stateful NAT64

    Porównanie protokołów NAT

    NAT64 vs NPTv6

    • NAT64 – Modyfikuje sesje podczas transmisji.
    • NAT64 – Wykorzystuje określony adres IPv6 (Network-specyfic Prefix).
    • NPTv6 – Mapuje jeden adres IPv6 do drugiego adresu IPv6.
    • NPTv6 – Modyfikuje nagłówek pakietu podczas transmisji.

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Neighbor Discovery*

    (T) Neighbor Discovery*

    Protokół NDP (Network Discovery Protocol)

    Rodzaje wiadomości ICMPv6 NDP

    Funkcje protokołu NDP

    • Router and prefix Discovery – Umożliwia urządzeniu końcowemu, wykrycie rutera znajdującego się w tej samej sieci Link-Layer, przy wykorzystaniu zapytań RS (Router Solicitation)(FF02::2) . W odpowiedzi na które, ruter bądź wiele ruterów odpowie komunikatami RA (Router Advertisement)(FF02::1), informującymi urządzenie końcowe o: Prefix-ie, długości prefix-a, adresie bramy domyślnej, określonej wartości MTU oraz innych informacjach nie zbędnych w procesie SLAAC (Stateless Address Autoconfiguration).
      • Komunikaty RA oraz RS stanowią istotny element w pozyskiwaniu adresu IPv6 przez urządzenia końcowe. Informują jakiego rodzaju metoda pozyskiwania adresów jest skonfigurowana w lokalnej sieci jak i dostarczają niezbędnych informacji wymaganych do przeprowadzenia tego procesu.
      • Kolejną ważną rolą komunikatów RA oraz RS jest funkcja poszukiwania zapasowego rutera, gdy obecnie działający zawiedzie, a tym samym urządzenie końcowe straci swoje połączenie z bramą domyślną.
    • Address Resolution – Umożliwia wszystkim urządzeniom sieciowym wspierającym protokół IPv6, stworzenie tablicy odwzorowania adresów IPv6 na adresy MAC, zastępując tym samym protokół ARP wykorzystywany względem protokołu IPv4. W celu stworzenia tablicy odwzorowania urządzenia wykorzystują następujące wiadomości IPv6:
      • Wiadomość NS (Neighbor Solicitation) – Pełni analogiczną rolę względem protokołu IPv6, jaką pełni zapytanie ARP Request względem protokołu IPv4. Wiadomość jest nadawana przez urządzenie końcowe na adres IPv6 Solicited-Node Multicast Address połączony z adresem IPv6 hosta docelowego. W odpowiedzi urządzenie będące posiadaczem wskazanego adresu IPv6 odeśle wiadomość NA z własnym adresem MAC.
      • Wiadomość NA (Neighbor Advertisement) – Pełni analogiczną rolę względem protokołu IPv6, jaką pełni zapytanie ARP Replay względem protokołu IPv4. Jest wysyłana na adres unicast-owy lub multicast-owy do wszystkich hostów w danej sieci (FF02::1).
    • DAD (Duplicate Address Detection) – Umożliwia wykrycie z duplikowanych adresów IPv6, wykorzystując w tym celu wiadomości NS oraz NA, jeżeli na zapytanie NS zawierające adres IPv6 jaki należy sprawdzić, inny host w sieci odpowie wiadomością NA, oznaczać to będzie, że dany adres jest już używany przez inne urządzenie.
    • NUD (Neighbor Unreachability Detection) –
    • Redirection
    Function Messages Who Discovers info Who Supplies info Info Supplied
    Router Discovery RS and RA Any IPv6 host Any IPv6 router Link-Local Address of router
    Prefix/Length Discovery RS and RA Any IPv6 host Any IPv6 router Prefix(es) and associated prefix length used on local link
    Neighbor Discovery NS and NA Any IPv6 host Any IPv6 host Link-Layer address (for example, MAC address) used by a neighbor
    DAD Discovery NS and NA Any IPv6 host Any IPv6 host Simple confirmation
    Wiadomości RA są domyślnie wysyłane przez ruter co 200 sekund.
    W przypadku wykrycia duplikacji adresów IPv6 (DAD), system Cisco IOS wyświetli następujący komunikat [*%IPV6-4-DUPLICATE: Duplicate address FE80::1 on GigabitEthernet0/1].

    Opcje protokołu NDP

    • Informacje protokołu NDP, są zawarte w pakietach ICMPv6, które mogą zawierać jedną bądź więcej opcji, a każda z nich może wielokrotnie pojawiać się w jednym pakiecie ICMPv6. Opcje protokołu NDP są następujące:
      1. Type 1 Source Link-Layer Address – Zawiera źródłowy adres warstwy 2, przeważnie jest to adres MAC (NS, RS, RA).
      2. Type 2 Target Link-Layer Address – Zawiera docelowy adres warstwy 2, przeważnie jest to adres MAC (NA, Redirect).
      3. Type 3 Prefix Information – Zawiera prefix wraz innymi danymi wymienianymi w procesie SLAAC (RA).
      4. Type 4 Redirect Header – Zawiera informacje niezbędne dla funkcji Redirection (Redirect).
      5. Type 5 MTU – Zawiera wartość MTU (RA).

    Funkcje protokołu NDP

    Address Resolution

    Neighbor Cache

    Duplicate Address Detection

    Redirect Message

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6

  • (T) Adresacja Unicast**

    (T) Adresacja Unicast**

    Wstęp do adresów IPv6 Unicast

    Rodzaje adresów Unicast IPv6

    • [2000::/3] Global Unicast Address (IPv4 Public Address) – Pełni identyczną rolę względem protokołu IPv6, jaką pełnią adresy publiczne względem protokołu IPv4. Jest to adres publiczny globalnie rutowalny.
    • [FC00::/7] Unique Local Address (IPv4 Private Address) – Pełni identyczną rolę względem protokołu IPv6, jaką pełnią adresy prywatne względem protokołu IPv4. Jest to adres prywatny związku z tym nie jest globalnie rutowalny.
    • [FEC0::/7] Site-Local Address (IPv4 Private Address) – Prywatny adres będący poprzednikiem adresu Unique Local Address (RFC 3513). Obecnie nie zaleca się jego wykorzystywania w sieciach produkcyjnych.
    • [FE80::/10] Link-Local Address (Local address) – Adres lokalny, nie rutowalny, działający w obszarze jednej sieci. Domyślnie tworzony na podstawie adresacji EUI-64, służy do komunikacji pomiędzy urządzeniami w obrębie jednej sieci np. pomiędzy dwoma ruterami czy hostem a bramą domyślną (Przez protokoły routingu dynamicznego jest wykorzystywany jako adres następnego przeskoku).
      • Adres Link-Local reprezentuje jedynie jedno urządzenie w danej sieci (Unicast).
      • Adres Link-Local nie może opuścić lokalnej sieci data-link, ponieważ nie jest przepuszczany przez rutery.
      • Adres Link-Local jest automatycznie generowany na podstawie adresacji EUI-64.
      • Adres Link-Local jest wykorzystywany przez protokoły do określania adresu następnego przeskoku
      • Adres Link-Local zaczyna się od cyfr FE80::/10 co oznacza, że jego pierwsze trzy hexadecymalne liczby mogą być następujące: FE8, FE9, FEA oraz FEB, jednak zgodnie z zaleceniami standaryzacji RFC 4291 po pierwszych 10 liczbach powinny nastąpić 54 zera. Przez co adres Link-Local zawsze zaczyna się od FE80::/64.
      • Adres Link-Local statycznie przypisany przez administratora może zaczynać się od liczb FE8, FE9, FEA oraz FEB.
      • Rutery Cisco funkcjonują w oparciu o adresacje Link-Local.
    • [::/128] Unkown Address / Unspecified Address – Nieokreślony (pusty) adres protokołu IPv6. Odpowiada adresowi 0.0.0.0/0 wykorzystywanemu przez protokół IPv4.
    • [::1/128] Loopback Address – Wewnętrzny adres IPv6, karty sieciowej.
      • Areas Loopback nie może być przypisany do interfejsu fizycznego.
      • Pakiet z docelowym bądź źródłowym adresem Loopback nie może być wysłany poza urządzenie.
      • Ruter nie może routować pakietów z docelowym adresem Loopback.
      • Urządzenie musi porzucić otrzymany pakiet z docelowym adresem Loopback.
    • [::1/80] Embedded IPv4 Address – Adres IPv6 służący do odwzorowania adresu IPv4 (RFC 4291):
      • IPv4 Mapped IPv6 Address – Adres wykorzystywany w sieciach Dual-Stuck (Np. ::FFFF:192.168.10.10).
      • IPv4 Compatible IPv6 Address – Starsza obecnie nie wykorzystywana wersja adresu Embedded IPv4 Address.
    • [2002::/16] 6to4 Unicast – Adres wykorzystywany w dynamicznym tunelowaniu IPv6 to IPv4 (6to4).
    • [64:FF9B::/96] Well-known NAT64 Prefix – Dobrze znany adres translacji NAT64.
    Nazwa Adresy IPv6 Zakres adresów IPv6
    Global Unicast Address (GUA) 2000::/3 20003FFF
    Unique Local Address (ULA) FC00::/7 FC00FDFF
    Link-Local Unicast Address FE80::/10 FE80FEBF
    Unspecified Address ::/128
    Loopback Address ::1/128
    Embedded IPv4 Address ::1/80

    Porównanie adresów IPv6 Unicast

    Global Unicast Address (GUA)

    Budowa adresu Global Unicast

    • GUA (Aggregatable Global Unicast Address) – Adres Global Unicast Address składa się z:
      • Global Routing Prefix – Część adresu IPv6 nadana przez dostawcę ISP bądź organizację RIR.
      • Subnet ID – Część adresu IPv6 określająca sieć wewnętrzną, będącą pod opieką administratora.
      • Interface ID – Część adresu IPv6 przypisana do konkretnego interfejsu sieciowego.
      • 001 (2000::/3 20003FFF) + Global Routing Prefix + Subnet ID + Interface ID.
    • Podział adresów Global Unicast względem metody ich przydzielania:
      • PA (Provider Aggregatable) – Global Routing Prefix jest przyznawany przez dostawcę (ISP). Przyznany adres IP:
        • Należy do dostawcy (ISP).
        • Jest przyznawany nie odpłatnie (Dodawany w ramach usługi).
        • Nie może być przeniesiony wraz z klientem do innego dostawcy (ISP).
      • PI (Provider Independent) – Global Routing Prefix jest przyznawany przez odział regionalny RIR.
        • Adres jest przyznawany odpłatnie przez organizację RIR.
        • Istnieje możliwość przyznania większego prefix-u niż (/48).
        • Umożliwia podłączenie do wielu dostawców (ISP).
        • Adres może być przeniesiony wraz z klientem do innego dostawcy (ISP).

    Metody adresacji Global Unicast

    • Manual Configuration:
      • Manual – Statycznie skonfigurowany adres IPv6.
        • Konfigurowany za pomocą komendy [ipv6 address 2001:db8:cafe:1::123/64].
      • Manual + EUI 64 – Adres stworzony na podstawie prefix-u podanego przez administratora (Global Routing Prefix + Subnet ID), połączonego z automatycznie wygenerowaną końcówką (EUI 64).
        • Konfigurowany za pomocą komendy [ipv6 address 2001:db8:cafe:1::/64 eui-64].
      • IPv6 Unnumbred – Adres stworzony na podstawie innego adresu IPv6 przypisanego do innego interfejsu sieciowego.
        • Konfigurowany za pomocą komendy [ipv6 unnumbred interfejs].
    • Stateless Address Autoconfiguration
      • Adres pozyskany od lokalnego rutera za pomocą wiadomości RD, RA, zawartych w pakietach ICMP.
    • Stateless DHCPv6
      • Adres pozyskany od lokalnego rutera za pomocą wiadomości RD, RA, zawartych w pakietach ICMP. Z dodatkowym wykorzystaniem serwera DHCPv6, służącego w tym przypadku do pozyskania opcjonalnych informacji o nazwie domenowej czy adresie serwera DNS.
    • Stateful DHCPv6
      • Adres pozyskany przy pomocy serwera DHCPv6. Adres bramy domyślnej jest nadal pozyskiwany od lokalnego rutera.

    Zasada 3-1-4

    • Zasada 3-1-4 opisuje adresację sieci przy pomocy adresów IPv6 z najczęściej przyznawanym prefix-em /48.
      • 3 określa części adresu przyznawaną przez dostawcę ISP, bądź RIR (Global Routing Prefix).
      • 1 określa sieć (Subnet ID).
      • 4 stanowi identyfikator określonego interfejsu sieciowego (Interface ID).
    • Przykładowa wizualizacja zasady 3-1-4 wygląda następująco:
      • 2001:0DB8:CAFE:0001:0000:0000:0000:0001

    Przyznawane prefix-y sieciowe (Global Routing Prefix)

    Prefix Subnet ID Subnets
    /32 32-Bit Subnet ID 4 294 967 296 Subnets
    /36 28-Bit Subnet ID 268 435 456 Subnets
    /40 24-Bit Subnet ID 16 777 216 Subnets
    /44 20-Bit Subnet ID 1048576 Subnets
    /48 16-Bit Subnet ID 65536 Subnets
    /52 12-Bit Subnet ID 4096 Subnets
    /56 8-Bit Subnet ID 256 Subnets
    /60 4-Bit Subnet ID 16 Subnets

    Porównanie prefix-ów protokołu IPv6

    Adresacja /127

    • Ogromna ilość adresów jakie mogą być przypisane do urządzeń sieciowych w jednej sieci z prefix-em /64, naraża infrastrukturę sieciową na ataki typu „IPv6 NDP Table Exhaustion Attack”. W których atakujący host wysyła setki zapytań RS Router Solicitation, tworząc nowe adresy a tym samym zbędnie wykorzystując zasoby rutera.
    Referencja RFC 3756 prezentuje techniki obrony przed atakami „IPv6 NDP Table Exhaustion Attack”, natomiast referencja RFC 6164 (Using 127-Bit IPv6 Prefixes on Inter-Router Links) opisuje wykorzystanie prefix-u /127.
    • Aby ograniczyć problem związany  z atakami typu „IPv6 NDP Table Exhaustion Attack”, interfejsy Point-to-Point powinny posiadać ograniczoną ilość dostępnych adresów IPv6, co może być osiągnięte za pomocą prefix-u /127.
    • Przykładowy adres IPv6 prefix-em /127 wygląda następująco:
      • Pierwszy adres sieci /127: 2001:0DB8:CAFE:0001:0000:0000:0000:0000/127.
      • Drugi adres sieci /127: 2001:0DB8:CAFE:0001:0000:0000:0000:0001/127.
      • Global Routing Prefix: 48 Bits.
      • Subnet ID: 79 Bits.
      • Interface ID: 1 Bits.
    • Stosowanie prefix-u /127 dla adresów IPv6 odpowiada wykorzystaniu maski /31 w adresacji IPv4.

    Link-Local Unicast Address (LLA)

    Podstawowe założenia adresów Link-Local

    • Aby urządzenie mogło obsługiwać komunikację IPv6 musi posiadać przynajmniej jeden adres Link-local, natomiast nie musi posiadać żadnego adresu Global Unicast Address, aby prowadzić komunikację z innymi urządzeniami.
    • Adresy Link-local nie są routowalne, a jedynie obsługiwane wewnątrz jednej sieci.
    • Adresy Link-local muszą być unikalne jedynie względem sieci w której się znajdują, co doprowadza do częstych sytuacji w których jedno urządzenie posiada wiele takich samych adresów Link-local na różnych interfejsach sieciowych.
    • Na jednym interfejsie sieciowym może być jedynie jeden adres Link-local.
    • Adresy Link-local mogą być adresami źródłowymi jak i docelowymi.
    • Adresy Link-local jest automatycznie generowany po skonfigurowaniu adresu Global Unicast, Unique Local Unicast adres bądź użyciu komendy [ipv6 enable] z poziomu konfiguracji określonego interfejsu sieciowego.
    jako że adres Link-local nie musi być unikalny względem jednego urządzenia sieciowego, niektóre systemy operacyjne na końcu adresu Link-local dodają po znaku % oznaczenie interfejsu sieciowego do którego należy dany adres Link-local.

    Zalety adresacji Link-Local

    • Urządzenie posiada adres Link-local zaraz po aktywacji, tym samym może go wykorzystać w procesie pobierania adresu GUA.
    • Adres Link-local może być szczególnie przydatny w przypadku urządzeń IoT.

    Adresacja Link-Local

    • Metody adresacji Link-Local:
      • Device Dynamically – Adres Link-Local jest generowany metodą EUI-64.
      • Configuration –  Adres Link-Local został skonfigurowany statycznie za pomocą komendy [ipv6 address prefix link-local].
    • Rodzaje adresacji Link-Local:
      • EUI-64 generated – Adres Link-Local został wygenerowany za pomocą metody EUI-64 (Cisco IOS, Mac OS, Ubuntu).
      • Randomly generated – Adres Link-Local został wygenerowany za pomocą losowo generowanej wartości (Windows).

    Przykłady wykorzystania adresów Link-Local

    • Po aktywowaniu systemu a jeszcze przed uzyskaniem adresu GUA. Urządzenie sieciowe będzie się komunikowało się z innymi urządzeniami za pomocą adresu Link-local.
    • Urządzenie końcowe będzie korzystało z adresu Link-local lokalnego rutera, jako adres bramy domyślnej.
    • Rutery wykorzystują adres Link-local do wymiany informacji dotyczących protokołów routingu dynamicznego (EIGRPv6, OSPFv3, RIPng).
    • W tablicy routingu adresy Link-local stanową adresy następnego przeskoku.

    Ping-owanie adresu Link-Local

    • Jako że adres Link-Local może być taki sam na wielu interfejsach sieciowych jednego urządzenia, komenda ping musi określić o jaki interfejs chodzi. Tym samym wygląda ona następująco [ping ENTER interfejs].

    Pozostałe tematy związane z protokołem IPv6

    Przydzielanie adresów IPv6

    Protokół NAT względem protokołu IPv6