Omówienie protokołu internetowego w wersji 6 (IPv6)
Protokół internetowy w wersji 6 (IPv6) to zestaw standardowych protokołów dla warstwy sieciowej Internetu. Protokół IPv6 został zaprojektowany w celu rozwiązania wielu problemów z bieżącą wersją pakietu protokołu internetowego (znanego jako IPv4) na temat wyczerpania adresów, zabezpieczeń, automatycznej konfiguracji, rozszerzalności itd. Protokół IPv6 rozszerza możliwości Internetu, aby umożliwić nowe rodzaje aplikacji, w tym aplikacje równorzędne i mobilne. Poniżej przedstawiono główne problemy z bieżącym protokołem IPv4:
Szybkie wyczerpanie przestrzeni adresowej.
Doprowadziło to do użycia translatorów adresów sieciowych (NATs), które mapuje wiele prywatnych adresów na jeden publiczny adres IP. Głównymi problemami utworzonymi przez ten mechanizm są obciążenia związane z przetwarzaniem i brakiem kompleksowej łączności.
Brak obsługi hierarchii.
Ze względu na jej nieodłączną wstępnie zdefiniowaną organizację klas protokół IPv4 nie obsługuje prawdziwej hierarchii. Nie można utworzyć struktury adresów IP w sposób, który naprawdę mapuje topologię sieci. Ta kluczowa usterka projektowa stwarza potrzebę dostarczania pakietów IPv4 do dowolnej lokalizacji w Internecie dla dużych tabel routingu.
Złożona konfiguracja sieci.
W przypadku protokołu IPv4 adresy muszą być przypisywane statycznie lub przy użyciu protokołu konfiguracji, takiego jak DHCP. W idealnej sytuacji hosty nie musiałyby polegać na administrowaniu infrastrukturą DHCP. Zamiast tego będą mogli skonfigurować się na podstawie segmentu sieci, w którym się znajdują.
Brak wbudowanego uwierzytelniania i poufności.
Protokół IPv4 nie wymaga obsługi żadnego mechanizmu zapewniającego uwierzytelnianie ani szyfrowanie wymienianych danych. To zmienia się przy użyciu protokołu IPv6. Zabezpieczenia protokołu internetowego (IPSec) to wymaganie obsługi protokołu IPv6.
Nowy zestaw protokołów musi spełniać następujące podstawowe wymagania:
- Routing na dużą skalę i adresowanie z niskim obciążeniem.
- Automatyczna konfiguracja dla różnych sytuacji łączenia.
- Wbudowane uwierzytelnianie i poufność.
Adresowanie IPv6
W przypadku protokołu IPv6 adresy mają długość 128 bitów. Jedną z przyczyn tak dużej przestrzeni adresowej jest podzielenie dostępnych adresów na hierarchię domen routingu, które odzwierciedlają topologię Internetu. Innym powodem jest mapowanie adresów kart sieciowych (lub interfejsów), które łączą urządzenia z siecią. Protokół IPv6 oferuje nieodłączną możliwość rozpoznawania adresów na najniższym poziomie, który jest na poziomie interfejsu sieciowego, a także ma możliwości automatycznej konfiguracji.
Reprezentacja tekstu
Poniżej przedstawiono trzy konwencjonalne formularze używane do reprezentowania adresów IPv6 jako ciągów tekstowych:
Postać szesnastkowa dwukropka:
Jest to preferowany formularz
n:n:n:n:n:n:n:n
. Każdyn
reprezentuje wartość szesnastkową jednego z ośmiu elementów 16-bitowych adresu. Na przykład:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562
.Skompresowany formularz:
Ze względu na długość adresu często mają adresy zawierające długi ciąg zer. Aby uprościć pisanie tych adresów, użyj skompresowanej formy, w której pojedyncza ciągła sekwencja 0 bloków jest reprezentowana przez symbol dwukropka (
::
). Ten symbol może być wyświetlany tylko raz w adresie. Na przykład adresFFED:0:0:0:0:BA98:3210:4562
multiemisji w skompresowanym formularzu toFFED::BA98:3210:4562
. Adres emisji3FFE:FFFF:0:0:8:800:20C4:0
pojedynczej w skompresowanym formularzu to3FFE:FFFF::8:800:20C4:0
. Adres0:0:0:0:0:0:0:1
sprzężenia zwrotnego w postaci skompresowanej to::1
. Nieokreślony adres0:0:0:0:0:0:0:0
w postaci skompresowanej to::
.Formularz mieszany:
Ten formularz łączy adresy IPv4 i IPv6. W tym przypadku format adresu to
n:n:n:n:n:n:d.d.d.d
, gdzie każdy n reprezentuje wartości szesnastkowe sześciu elementów adresów IPv6 o wysokiej kolejności 16-bitowych, a każdy d reprezentuje wartość dziesiętną adresu IPv4.
Typy adresów
Bity wiodące w adresie definiują określony typ adresu IPv6. Pole o zmiennej długości zawierające te bity wiodące jest nazywane prefiksem formatu (FP).
Adres emisji pojedynczej IPv6 jest podzielony na dwie części. Pierwsza część zawiera prefiks adresu, a druga część zawiera identyfikator interfejsu. Zwięzły sposób wyrażania kombinacji adresu IPv6/prefiksu jest następujący: ipv6-address/prefix-length.
Poniżej przedstawiono przykład adresu z prefiksem 64-bitowym.
3FFE:FFFF:0:CD30:0:0:0:0/64
.
Prefiks w tym przykładzie to 3FFE:FFFF:0:CD30
. Adres można również zapisać w postaci skompresowanej jako 3FFE:FFFF:0:CD30::/64
.
Protokół IPv6 definiuje następujące typy adresów:
Adres emisji pojedynczej:
Identyfikator pojedynczego interfejsu. Pakiet wysyłany do tego adresu jest dostarczany do zidentyfikowanego interfejsu. Adresy emisji pojedynczej są rozróżniane od adresów multiemisji według wartości oktetu o wysokiej kolejności. Wieloemisji high-order octet ma wartość szesnastkowa FF. Każda inna wartość dla tego oktetu identyfikuje adres emisji pojedynczej. Poniżej przedstawiono różne typy adresów emisji pojedynczej:
Adresy lokalne linków:
Te adresy są używane w jednym linku i mają następujący format:
FE80::*InterfaceID*
. Adresy lokalne łączy są używane między węzłami w linku do konfiguracji automatycznego adresu, odnajdywania sąsiadów lub gdy nie ma żadnych routerów. Adres lokalny linku jest używany głównie podczas uruchamiania i gdy system nie uzyskał jeszcze adresów o większym zakresie.Adresy lokalne lokacji:
Te adresy są używane w jednej lokacji i mają następujący format:
FEC0::*SubnetID*:*InterfaceID*
. Adresy lokalne lokacji są używane do adresowania wewnątrz lokacji bez potrzeby globalnego prefiksu.- Globalne adresy emisji pojedynczej IPv6:
Te adresy mogą być używane przez Internet i mają następujący format:
*GlobalRoutingPrefix*::*SubnetID*:*InterfaceID*
.Adres multiemisji:
Identyfikator zestawu interfejsów (zazwyczaj należących do różnych węzłów). Pakiet wysyłany do tego adresu jest dostarczany do wszystkich interfejsów zidentyfikowanych przez adres. Typy adresów multiemisji zastępują adresy emisji IPv4.
Dowolny adres emisji:
Identyfikator zestawu interfejsów (zazwyczaj należących do różnych węzłów). Pakiet wysyłany do tego adresu jest dostarczany tylko do jednego interfejsu identyfikowanego przez adres. Jest to najbliższy interfejs zidentyfikowany przez metryki routingu. Wszystkie adresy emisji są pobierane z przestrzeni adresowej emisji pojedynczej i nie są składniowo rozróżnialne. Interfejs adresowany wykonuje rozróżnienie między emisją pojedynczą a dowolnymi adresami emisji jako funkcją jego konfiguracji.
Ogólnie rzecz biorąc, węzeł zawsze ma adres lokalny linku. Może mieć adres lokalny lokacji i co najmniej jeden adres globalny.
Routing IPv6
Elastyczny mechanizm routingu jest zaletą protokołu IPv6. Ze względu na sposób przydzielania i przydzielania identyfikatorów sieci IPv4 duże tabele routingu muszą być obsługiwane przez routery, które znajdują się w sieci szkieletowej Internetu. Te routery muszą znać wszystkie trasy przekazywania pakietów, które są potencjalnie kierowane do dowolnego węzła w Internecie. Dzięki możliwości agregowania adresów protokół IPv6 umożliwia elastyczne adresowanie i drastycznie zmniejsza rozmiar tabel routingu. W tej nowej architekturze adresowania routery pośrednie muszą śledzić tylko lokalną część sieci, aby odpowiednio przekazywać komunikaty.
Odnajdywanie sąsiadów
Niektóre funkcje udostępniane przez odnajdywanie sąsiadów to:
- Odnajdywanie routerów: umożliwia to hostom identyfikowanie routerów lokalnych.
- Rozpoznawanie adresów: umożliwia węzłom rozpoznawanie adresu warstwy łącza dla odpowiedniego adresu następnego przeskoku (zastąpienie protokołu rozpoznawania adresów [ARP]).
- Automatyczna konfiguracja adresów: umożliwia to hostom automatyczne konfigurowanie adresów lokalnych i globalnych lokacji.
Odnajdywanie sąsiadów używa protokołu IPv6 (ICMPv6), które obejmują:
- Anons routera: wysyłane przez router w sposób pseudo-okresowy lub w odpowiedzi na żądanie routera. Routery IPv6 używają anonsów routerów do anonsowania ich dostępności, prefiksów adresów i innych parametrów.
- Żądanie routera: wysłane przez hosta w celu żądania, aby routery na linku wysyłały natychmiast anons routera.
- Żądanie sąsiada: wysyłane przez węzły do rozpoznawania adresów, wykrywania zduplikowanych adresów lub sprawdzania, czy sąsiad jest nadal osiągalny.
- Anons sąsiada: wysyłane przez węzły w celu reagowania na żądanie sąsiada lub powiadamiania sąsiadów o zmianie adresu warstwy łącza.
- Przekierowanie: wysłane przez routery, aby wskazać lepszy adres następnego przeskoku do określonego miejsca docelowego dla węzła wysyłającego.
Automatyczna konfiguracja protokołu IPv6
Jednym z ważnych celów protokołu IPv6 jest obsługa węzła Plug and Play. Oznacza to, że należy podłączyć węzeł do sieci IPv6 i skonfigurować go automatycznie bez żadnej interwencji człowieka.
Typy automatycznej konfiguracji
Protokół IPv6 obsługuje następujące typy automatycznej konfiguracji:
Automatyczna konfiguracja stanowa:
Ten typ konfiguracji wymaga pewnego poziomu interwencji człowieka, ponieważ potrzebuje serwera dynamicznej konfiguracji hosta dla serwera IPv6 (DHCPv6) na potrzeby instalacji i administrowania węzłami. Serwer DHCPv6 przechowuje listę węzłów, do których dostarcza informacje o konfiguracji. Przechowuje również informacje o stanie, dzięki czemu serwer wie, jak długo każdy adres jest używany, i kiedy może być dostępny do ponownego przypisania.
Automatyczna konfiguracja bezstanowa:
Ten typ konfiguracji jest odpowiedni dla małych organizacji i osób indywidualnych. W takim przypadku każdy host określa jego adresy z zawartości odebranych anonsów routera. Używając standardu IEEE EUI-64 do zdefiniowania części identyfikatora sieci adresu, rozsądnie jest przyjąć unikatowość adresu hosta w linku.
Niezależnie od tego, jak jest określany adres, węzeł musi sprawdzić, czy jego potencjalny adres jest unikatowy dla linku lokalnego. Odbywa się to przez wysłanie do potencjalnego adresu komunikatu o żądaniu sąsiada. Jeśli węzeł otrzyma odpowiedź, wie, że adres jest już używany i musi określić inny adres.
Mobilność IPv6
Rozprzestrzenianie urządzeń przenośnych wprowadziło nowe wymaganie: urządzenie musi mieć możliwość arbitralnej zmiany lokalizacji w Internecie IPv6 i nadal utrzymywać istniejące połączenia. Aby zapewnić tę funkcję, węzeł mobilny ma przypisany adres domowy, pod którym zawsze można uzyskać dostęp. Gdy węzeł mobilny znajduje się w domu, łączy się z linkiem głównym i używa adresu macierzystego. Gdy węzeł mobilny jest poza domem, agent domowy, który jest zwykle routerem, przekazuje komunikaty między węzłem mobilnym a węzłami, z którymi się komunikuje.
Wyłączanie lub włączanie protokołu IPv6
Aby użyć protokołu IPv6, upewnij się, że używasz wersji systemu operacyjnego obsługującego protokół IPv6 i upewnij się, że system operacyjny i klasy sieciowe są prawidłowo skonfigurowane.
Etapy konfiguracji
W poniższej tabeli wymieniono różne konfiguracje
Włączono protokół IPv6 systemu operacyjnego? | Włączono kod IPv6? | opis |
---|---|---|
❌ Nie | ❌ Nie | Może analizować adresy IPv6. |
❌ Nie | ✔️ Tak | Może analizować adresy IPv6. |
✔️ Tak | ❌ Nie | Można analizować adresy IPv6 i rozpoznawać adresy IPv6 przy użyciu metod rozpoznawania nazw, które nie są oznaczone jako przestarzałe. |
✔️ Tak | ✔️ Tak | Może analizować i rozpoznawać adresy IPv6 przy użyciu wszystkich metod, w tym tych oznaczonych jako przestarzałe. |
Protokół IPv6 jest domyślnie włączony. Aby skonfigurować ten przełącznik w zmiennej środowiskowej, użyj zmiennej środowiskowej DOTNET_SYSTEM_NET_DISABLEIPV6
. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe platformy .NET: DOTNET_SYSTEM_NET_DISABLEIPV6.