Neighbor Discovery Protocol

IPv6 Neighbor Discovery Protocol (NDP) är ett nätverksprotokoll inom IPv6 som har flera viktiga funktioner för att hantera nätverksenheter (noder) i ett lokalt nätverk. NDP underlättar adressuppslagning, hantering av routrar, och upptäckten av dessa routrar. NDP fungerar som en ersättning för Address Resolution Protocol (ARP) och andra protokoll som används i IPv4 för liknande ändamål.

Här är några av de viktigaste funktionerna i IPv6 Neighbor Discovery Protocol:

  • Address Resolution – Adressuppslagning är en process som möjliggörs av Neighbor Discovery Protocol (NDP) för att identifiera den fysiska MAC-adressen kopplad till en känd IPv6-adress hos en nod på det lokala nätverket. Denna process utförs genom utbyte av meddelanden som kallas Neighbor Solicitation (NS) och Neighbor Advertisement (NA). När en nod behöver skicka datapaket till en annan nod på samma nätverkslänk, utnyttjar avsändaren NDP för att upptäcka mottagarens MAC-adress. Detta uppnås genom att avsändaren skickar en NS-förfrågan som inkluderar den sökta IPv6-adressen. Mottagaren svarar med ett NA-meddelande som innehåller sin MAC-adress. På detta sätt kan kommunikationen på nätverket effektivt riktas till rätt destination.
  • Router Discovery – Routerupptäckt görs med hjälp av NDP. Noder skickar Router Solicitation (RS) meddelanden för att fråga efter routrar. Routrarna svarar sedan med Router Advertisement (RA) meddelanden som innehåller nätverkskonfigurationsinformation som tillåter noderna att konfigurera sina IPv6-adresser och andra nätverksparametrar.
  • Redirect (Omdirigering): Om en nod skickar datapaket till en annan nod och en närliggande router anser att datapaketet kan skickas mer effektivt via en annan nod, kan routern skicka ett Redirect-meddelande för att instruera den ursprungliga noden att skicka datapaketet till den bättre noden direkt.
  • Neighbor Unreachability Detection (NUD): NDP hjälper till att upptäcka om en närliggande nod inte längre är nåbar. Om en nod inte får svar på sina NS-frågor, kan den försöka igen eller betrakta noden som oåtkomlig och vidta åtgärder därefter.
  • Stateless Address Autoconfiguration (SLAAC): NDP används också för att stödja Stateless Address Autoconfiguration, vilket möjliggör att noder konfigurerar sina IPv6-adresser själva utan att behöva använda en DHCP-server.

Meddelandetyper

IPv6 Neighbour Discovery Protocol definierar 5 typer av meddelanden som använder ICMPv6-inkapsling:

  • Router Solicitation – RS (ICMPv6 typ 133)
  • Router Advertisement – RA (ICMPv6 typ 134)
  • Neighbor Solicitation – NS (ICMPv6 typ 135)
  • Neighbor Advertisement – NA (ICMPv6 typ 136)
  • Redirect Message – RM (ICMPv6 typ 137)

Hur fungerar dessa meddelanden? Låt oss ta ett exempel hämtad från Network Academy.

PC A vill identifiera den fysiska adressen för PC C – FE80::20C:CFF:FECC:CCCC. För att uppnå detta, måste PC A sända ett Neighbor Solicitation-meddelande som resulterar i ett nytt ICMPv6-paket med typ 135. Typ 135 markerar tydligt att det här är ett NS-paket. I destinations fältet för detta ICMPv6-paket inkluderar PC A den IPv6-adress som den försöker upplösa – i detta fall, PC C – FE80::20C:CFF:FECC:CCCC.

Detta ICMPv6-meddelande paketeras sedan in i ett IPv6-paket. Som avsändarens IPv6 adress använder PC A sin egen Link-local adress, t.ex. FE80:20A:AFF:FEAA:AAAA. För destinationsadressen i IPv6-paketet använder PC A en speciell typ av multicast-adress kallad Solicited-Node Multicast (börjar med FE02::1 ).

För varje konfigurerad IPv6-adress ansluter varje nod till en multicast-grupp som identifieras av adressen FF02::1:FFXX:XXXX, där XX:XXXX representerar de sista sex hexadecimala tecknen i den specifika IPv6 unicast-adressen. Med detta i åtanke adresserar PC A NS-meddelandet till noden med IP-adressen FE80::20C:CFF:FECC:CCCC.