NDP i funkcje lokalnej sieci IPv6
W IPv4 protokół ARP mapuje znany adres IP na adres warstwy łącza, na przykład MAC, w sieci lokalnej. Żądanie ARP jest rozgłoszeniem kierowanym do wszystkich urządzeń w segmencie. Każde urządzenie otrzymuje ramkę i sprawdza, czy dotyczy ona jego adresu, co generuje dodatkowy ruch i obciążenie.
W IPv6 funkcje lokalnej konfiguracji i rozpoznawania sąsiadów zdefiniowano w ramach Neighbor Discovery. Protokół wykorzystuje multicast IPv6 oraz komunikaty ICMPv6.
Jest to . NDP obejmuje rozpoznawanie adresów warstwy łącza, wykrywanie routerów i prefiksów, przekierowania, wykrywanie osiągalności sąsiadów oraz współpracę z autokonfiguracją adresów. DHCPv6 pozostaje osobnym protokołem używanym do przydziału adresów lub innych parametrów. NDP jest zbudowany na określonych komunikatach ICMPv6.
Komunikaty NDP mają określone typy ICMPv6 i korzystają z adresów o zasięgu lokalnego, dlatego ich obsługa zależy od konkretnego interfejsu oraz łącza. NDP nie przenosi danych aplikacji. Przekazuje informacje potrzebne do wyboru sąsiada, routera i lokalnej ścieżki. Router nie przekazuje tych komunikatów poza łącze, którego dotyczą.
Multicast zamiast broadcastu w rozpoznawaniu sąsiadów
NDP używa adresów multicast do kierowania zapytań do grupy powiązanej z adresem docelowym. Broadcast ARP i multicast NDP mają inne właściwości na poziomie łącza. Odbiorca NDP analizuje komunikat ICMPv6 i odpowiednie opcje, a następnie aktualizuje stan lokalnej pamięci sąsiadów.
- Broadcast ARP: Żądanie ARP jest rozgłoszeniem warstwy 2 wysyłanym na adres MAC
FF:FF:FF:FF:FF:FF. Ramkę otrzymują interfejsy wszystkich urządzeń w segmencie i filtrują ją według adresu docelowego, co może zwiększać obciążenie urządzeń i łącza. Interfejs odbiorczy może przekazać ramkę procesorowi hosta nawet wtedy, gdy żądanie dotyczy innego urządzenia. - NDP - multicast solicited-node: Dla każdego posiadanego adresu unicast lub anycast IPv6 interfejs dołącza do odpowiadającej mu , czyli adresu multemisji solicited-node. Adres jest tworzony przez dołączenie ostatnich 24 bitów adresu IPv6 do prefiksu
FF02::1:FF00:0/104. Kilka interfejsów może należeć do tej samej grupy, jeśli ich adresy kończą się takim samym ciągiem 24 bitów.
Gdy Host A chce znaleźć adres warstwy łącza Hosta B, wysyła Neighbor Solicitation na adres solicited-node Hosta B. Na Ethernet adres IPv6 multicast mapuje się na adres MAC z zakresem 33:33. Przełącznik może ograniczyć zasięg takiej ramki przy włączonym MLD snooping. Bez tej funkcji multicast może zostać rozesłany do większej liczby portów. Ograniczenie dotyczy przekazywania na poziomie łącza, więc nie zmienia zasad tworzenia grupy IPv6.
Przykład: Host A wysyła zapytanie do grupy powiązanej z ostatnimi 24 bitami adresu Hosta B. Host B odpowiada komunikatem Neighbor Advertisement, a pozostałe hosty nie muszą odpowiadać na zapytanie.
Pięć podstawowych typów komunikatów NDP
NDP definiuje pięć typów komunikatów ICMPv6. Są to RS typu 133, RA typu 134, NS typu 135, NA typu 136 i Redirect typu 137. RS i RA korzystają z grup routerów lub z odpowiedzi kierowanej do hosta, NS i NA wskazują cel sąsiedztwa, a Redirect jest zwykle komunikatem unicastowym. Każdy z nich ma odrębne zastosowanie w lokalnej komunikacji IPv6.
1. Żądanie routera (RS) - ICMPv6 typ 133
Cel: Host wysyła RS, aby poprosić routery na łączu o odpowiedź.
Przykład: Po włączeniu interfejsu host wysyła RS do grupy wszystkich routerów (ff02::2).
Jeżeli host ma już adres link-local, używa go jako źródła RS. Router może odpowiedzieć komunikatem RA. Host otrzymuje wtedy parametry sieci przed kolejnym ogłoszeniem okresowym. RS i RA pozostają na lokalnym łączu i są komunikatami sterującymi ICMPv6.
2. Ogłoszenie routera (RA) - ICMPv6 typ 134
Cel: Router wysyła RA okresowo lub w odpowiedzi na RS, aby przekazać parametry konfiguracji.
Przykład: RA może zawierać prefiks 2001:db8:acad:1::/64, czasy życia oraz informacje o DHCPv6.
Źródłowy adres link-local routera i pole Router Lifetime wskazują router domyślny. Opcje Prefix Information określają zastosowanie prefiksu w SLAAC oraz jego czasy preferred i valid. RA może być wysłane okresowo bez wcześniejszego RS, aby hosty odświeżyły te informacje.
3. Żądanie sąsiada (NS) - ICMPv6 typ 135
Cel: NS służy przede wszystkim do rozpoznawania adresu warstwy łącza, czyli funkcji realizowanej przez żądanie ARP w IPv4.
Przykład: Host wysyła NS na adres solicited-node celu, aby uzyskać jego adres warstwy łącza.
NS służy także do sprawdzania osiągalności sąsiada (NUD) i wykrywania, czy adres jest już używany (DAD). W NUD może być wysłany unicastowo do znanego sąsiada, a w DAD używa adresu źródłowego nieokreślonego. Reguły pola Target Address i adresu źródłowego odróżniają rozpoznawanie adresu od testu duplikacji.
4. Ogłoszenie sąsiada (NA) - ICMPv6 typ 136
Cel: NA jest odpowiedzią na NS i odpowiednikiem odpowiedzi ARP.
Przykład: Host docelowy umieszcza swój adres warstwy łącza w opcji Target Link-Layer Address.
NA może również ogłosić zmianę adresu warstwy łącza. Komunikat może być odpowiedzią unicastową lub ogłoszeniem wysłanym do grupy. Flagi Router, Solicited i Override wpływają na aktualizację pamięci podręcznej. Po wymianie karty interfejs może wysłać nieproszony NA, aby sąsiedzi zaktualizowali pamięć podręczną.
5. Przekierowanie (Redirect) - ICMPv6 typ 137
Cel: Router informuje host o lepszym pierwszym routerze dla określonego celu lub o tym, że cel jest osiągalny bezpośrednio na łączu.
Przykład: Host używa bramy domyślnej, a router wskazuje inny router na tym samym łączu jako właściwy następny przeskok.
Router przekazuje bieżący pakiet i wysyła Redirect, aby host zaktualizował trasę dla kolejnych pakietów. Komunikat wskazuje adres docelowy i zalecany następny przeskok na tym samym łączu. Przetwarzanie Redirect optymalizuje istniejącą trasę lokalną i nie zastępuje odkrywania routera domyślnego.
NDP w praktyce: podstawowe funkcje
Pięć typów komunikatów realizuje kilka funkcji w lokalnej sieci IPv6. Nie przenoszą danych aplikacji. Typowane opcje, takie jak adresy warstwy łącza, prefiksy i czasy życia, pozwalają aktualizować odrębne elementy stanu lokalnego.
- Rozpoznawanie adresów (NS i NA): Jest to funkcja odpowiadająca ARP. Host wysyła Neighbor Solicitation na adres solicited-node celu. Cel odpowiada unicastowym Neighbor Advertisement zawierającym adres warstwy łącza w opcji Target Link-Layer Address. Host zapisuje dane w pamięci podręcznej sąsiadów i może później wysłać pakiet bez kolejnego zapytania.
- Odkrywanie routerów i prefiksów (RS i RA): Host wysyła Router Solicitation, a router odpowiada Router Advertisement. RA zawiera prefiksy, czasy życia, flagi autokonfiguracji i inne parametry. Adres źródłowy link-local oraz Router Lifetime identyfikują router domyślny. Flagi M i O mogą wskazać użycie DHCPv6 dla adresów lub dodatkowych danych.
- Wykrywanie zduplikowanych adresów - DAD (NS i NA): Przed przypisaniem adresu, na przykład utworzonego przez SLAAC, host wykonuje DAD. Wysyła NS na adres solicited-node odpowiadający adresowi, którego chce użyć, ze źródłowym adresem nieokreślonym (
::). Odpowiedź NA lub NS wskazująca konflikt powoduje odrzucenie adresu. Brak odpowiedzi pozwala go przypisać zgodnie z procedurą DAD, lecz nie jest absolutnym dowodem unikalności. W IPv4 podobną funkcję mogą pełnić mechanizmy gratuitous ARP. DAD sprawdza konflikt na danym łączu i nie uwierzytelnia nadawców komunikatów. - Wykrywanie nieosiągalności sąsiada - NUD (NS i NA): NDP śledzi osiągalność sąsiadów. Wpis w pamięci podręcznej przechodzi ze stanu „REACHABLE” do „STALE”. Przed użyciem nieaktualnego wpisu host inicjuje potwierdzenie osiągalności za pomocą unicastowego Neighbor Solicitation. Otrzymany Neighbor Advertisement potwierdza ścieżkę w obu kierunkach. W zależności od odpowiedzi wpis może przejść przez stany DELAY i PROBE. Wartość REACHABLE wynika z pomyślnego potwierdzenia, nie wyłącznie z obecności adresu w pamięci podręcznej. Brak odpowiedzi po kolejnych próbach powoduje usunięcie wpisu z pamięci podręcznej.
ARP i NDP: porównanie funkcji
| Cecha | ARP (w IPv4) | Wykrywanie Sąsiadów (NDP) (w IPv6) |
|---|---|---|
| Protokół bazowy | Odrębny protokół. | Zbudowany na ICMPv6. |
| Metoda adresacji | Warstwa 2: broadcast. | Multicast solicited-node do rozpoznawania sąsiadów; grupy routerów przy RS i RA; unicast w odpowiedziach i NUD. |
| Główne funkcje | Tylko rozpoznawanie adresów. | Rozpoznawanie adresów, odkrywanie routerów, odkrywanie prefiksów, przekierowanie, śledzenie osiągalności. |
| Wykrywanie konfliktów | Możliwe opcjonalne mechanizmy, na przykład gratuitous ARP. | Procedura Wykrywania Zduplikowanych Adresów (DAD). |
| Bezpieczeństwo | Brak wbudowanego uwierzytelniania, dlatego możliwy jest ARP spoofing. | SEND, filtrowanie RA i zabezpieczenia warstwy IP mogą ograniczać ataki; DAD nie jest mechanizmem uwierzytelniania. Fragmentowane komunikaty NDP są odrzucane. |