Solicited-node multicast

En solicited-node multicast IPv6 adress definieras av IANA (RFC 4291, section 2.7.1) som FF02:0:0:0:0:1:FF00::/104 vilket ger intervallet:

  • FF02:0:0:0:0:1:FF00:0000 – FF02:0:0:0:0:1:FFFF:FFFF
  • Förkortat FF02::1:FFFF:FFFF

Observera att prefixet är /104 vilket inkluderar inte resterande 24 bitar i en IPv6 adress.

Solicited-node IPv6 multicast-adresser skapas automatiskt genom att associera IPv6 adresser med ett visst interface. IPv6 adresser som global unicast, unik lokal, och link-lokal tilldelas en solicited-node multicast adress var och en. Dessa adresser associeras till en solicited-node multicast MAC-adress. Det görs med hjälp av en särskild kartläggning av nätverksenheternas unicast-adresser och den solicited-node multicast prefix. De 24 sista eller minst signifikanta bitar i en IPv6 adress, vare sig GUA eller LLA, ska läggas till IPv6 multicast-adressen FF02:0:0:0:0:1:FF00::/104 (FF02::1:FF00:0000/104)

Till exempel:

  • 2001:DB8:CAFE:1:1:800:200E:8C6C/64 inkluderas i multicast-adressen: FF02::1:FF0E:8C6C
  • 2001:DB8::AB:1/64 ska bli medlen i IPv6 solicited-node adressen FF02::1:FFAB:1
  • 2001:DB8::AB:2/64 ska bli medlen i IPv6 solicited-node adressen FF02::1:FFAB:2

De hexadecimala talen markerade med rosa liknande färg betonar de minst signifikanta 24 bitar i en IPv6 adress. Som du ser inkluderas dessa bitar i Multicast IPv6 solicited-node adresser. Men dessa multicast adresser behöver också associeras till en multicast MAC-adresser, frågan är hur?

Multicast MAC-adress

I IPv4 används följande klass D multicast-adresser:

  •  224.0.0.0 – 224.0.0.255 Reserverade för Well-Known multicast adresser
  • 224.0.1.0 – 238.255.255.255 Globala
  • 239.0.0.0 – 239.255.255.255 Lokala

I IPv4 kan man associera en broadcast IPv4-adress med en broadcast MAC-adress: FF-FF-FF-FF-FF-FF. Liknande kan vi associera Multicast IPv4 adresser och dess multicast MAC-adresser. Här nedan ett exempel på hur multicast IPv4 adress associeras till en multicast MAC-adress. Som standard börjar IPv4 multicast MAC-adresser med 010005:

MAC-adress IPv4 adress 1st oktett 2a oktett 3e oktett 4e oktett
230.1.2.3 230 0000 0001 0000 0010 0000 0011
230.129.2.3 230 0000 0001 0000 0010 0000 0011
239.1.2.3 230 0000 0001 0000 0010 0000 0011
0000 0001 0000 0010 0000 0011
01 00 5E 01 02 03
  • I exemplet ser vi att fler adresser kan associeras till en MAC-adress, vilket kan leda till problem. När ett paket tas emot konverteras signaler till ettor och nollor, och dessa till ramar. Det är nu son kan läsas av destination MAC-adress. IANA definierarade 01-00-5E säger till att detta är en multicast paket som ska skickas det till nätverksskiktet för vidare hantering.
  • Flera host ingår i multicast gruppen: 230.1.2.3, 230.129.2.3, 239.1.2.3
  • Den första biten av 24 mins signifikanta bitar sätts till noll, till exempel 230.129.2.3 som efter konvertering är 1110 0110.1000 0001.0000 0001.0000 0011. I den andra oktett nollställs den mest signifikant bit till noll därmed resulterar som följande: 0000 0001, vilket är i decimalt format 1 och hexadecimalt 01
  • De 24 sista eller minst signifikanta bitar i adressen associeras till MAC-adressen som börjar alltid med 01-00-5E

I IPv6 associeras solicited-node multicast-adresser till specifika MAC-adresser som tilldelas från intervallet 3333000000 till 3333FFFFFFFF. Som bekant består MAC-adresser av 48 bitar som delas upp i två grupper av 24 bitar eller 6 hexadecimala tal per grupp. Den andra gruppen av 24 bitar i en MAC-adress läggs till Multicast MAC-adresser i den definierade intervallet exempelvis 33-33-FF.  Till exempel:

  • 2001:DB8::AA:1/64 ska bli medlen i IPv6 solicited-node multicast-adressen FF02::1:FFAA:0001
  • IPv6 MAC-adress: 3333FFAA0001
  • Node 2001:DB8::BB:2/64 ska bli medlen i IPv6 solicited-node multicast-adressen FF02::1:FFBB:0002
  • IPv6 MAC-adress: 3333FFBB0002

Exemplet nedan illustrerar vad som händer när Router A skickar ping-paket till Router B eftersom dess GUA är känd av Router A.

Bild 5: Solicited-node Multicast adress

Men Router A känner inte Router B MAC-adress och då använder den en IPv6 multicast-adress som byggs upp med Solicited-node funktionen. En sådan funktion är en del av protokollet Network Discovery Protocol eller NDP. Multicast MAC-adresser byggs upp enligt standard där 33-33-FF samt de 24 minst signifikanta bitar i en IPv6 adress sätts ihop:

  • Router A adressering:
  • Source IPv6 GUA: 2001:DB8::AA:1
  • Source MAC-address: c557.180C.C302
  • Destination IPv6 GUA: 2001:DB8::BB:2
  • Destination IPv6 MAC: 3333.FFBB.0002
  • Router B svar och adressering
  • Source IPv6 GUA: 2001:DB8::BB:2
  • Source MAC-address: C464.130A.A280
  • Destination IPv6 GUA: 2001:DB8::AA:1
  • Destination IPv6 MAC: c557.180C.C302

Neighbor Discovery Protocol – NDP

Bild 6: NDP Neighbor Solicitation Message

IPv6 solicited-node multicast adresser används av två grundläggande IPv6 mekanismer som är en del av Neighbor Discovery Protocol eller NDP:

  • Address Resolution – IPv6 nätverksenheter skickar ut ett Neighbor Solicitation meddelande till en närliggande router som lyssnar NDP och som kan nås via IPv6 multicast adressen ff02::2 (Link-local scope, alla routrar). IPv6 nätverksenheter behöver information för att bygga upp en egen IPv6-adress. Det har händer oftast vid start och det är standard beteende på de flesta IPv6 nätverksenheter.
  • Duplicate Address Detection – DAD tillåter verifikation av link-local adresser som unika inom en länk (delnät). Ett Neighbor Solicitation meddelande skickas till sig själv så att det kan verifieras om tilldelad link-local adressen är unik.

Solicited-Node associerad till MAC adresser

I tidigare laborationer har vi konfigurerat manuellt IPv6 GUA och LLA, självkonfiguration och med eui-64 samt routing. Nu ska vi analysera vilka multicast adresser har associerats till varje ipv6 adress.

Bild 7: Router R1 Multicast adresser

Observationer:

  • Router R1 har LLA FE80::1
  • Router R1 har GUA 2001:DB8:CAFE:1::1
  • FF02::1 Multicast adress som når alla IPv6 nätverksenheter i länken (delnät).
  • FF02::2 Multicast adress som når alla IPv6 routrar.
  • FF02::1:FF00:1 Multicast solicited-node associerad till GUA

Den globala unicast adressen har associerats till en solicited-node adress genom att kopiera de sista 24 bitar i adressen för att generera en Solicited-node adress:

Bild 8: Solicited-node Multicast IPv6 adresser
  • R1 har GUA 2001:DB8:CAFE:1::1
  • GUA 2001:0db8:cafe:0001:0000:0000:0000:0001
  • De sista 6 hexadecimala siffror motsvarar 24 bitar används för att skapa en Solicited-node multicast adress:
  • ff02:0000:0000:0000:0000:0001:ff00:0001
  • ff02::1:ff00:1

Laboration: Solicited-node multicast adress

Bild 9: Solicited-node multicast ipv6 adress

För att förklara en sådan ipv6 adress använder jag en material från CBT nuggets gjort av Keith Barker. Bilden illustrerar topologin där en 1941 router kopplas till en 2960 switch och till switch en dator. Syfte är att upptäcka multicast ipv6 solicited-node adressen. Vi kommer också att verifiera de som förklaras om hur en sådan adress byggs upp. De sista 24 bitar ska klistras in i den solicited-node multicast ipv6 adress.

Konfigurationer

  • R1(config)# ipv6 unicast-routing
  • R1(config)# interface g0/1
  • R1(config-if)# no ip address
  • R1(config-if)# ipv6 address fe80::12:3456 link-local
  • R1(config-if)# ipv6 address 2001:db8:6783:1:a:b:cc12:3456/64
  • R1(config-if)# no shutdown
  • R1(config-if)# end
  • R1# show ipv6 int g0/1
Bild 10: show ipv6 interface g0/0

Observationer:

  1. När link-local adressen konfigurerades med kommandot ipv6 address fe80::12:3456 link-local aktiverades IPv6. Observera att de sista sex hexadecimala siffror motsvarar 24 bitar.
  2. Den globala unik adressen innehåller också samma sista sex siffror som link-local adressen: 2001:db8:6783:1a:b:cc12:3456
  3. Tre multicast adresser har associerats till de olika IPv6 adresser:
    1. FF02::1 – Link-local scope, alla nätverksenheter i samma länk
    2. FF02::2 – Link-local scope, alla routrar
    3. FF02::1:ff12:3456 – Solicited-node adress. Alla solicited node multicast ipv6 adress startar med FF02::1:FF/104 d.v.s. FF02:0000:0000:0000:0000:0001:FF12:3456. Här visas endast en solicited-node ipv6 adress på grund av att i laborationer använder vi samma sista sex siffror i GUA och LLA adresser, annars hade skapats två solicited-node ipv6 adresser.
  4. ND och DAD är igång. ND står för Neighbor Discovery Protocol som ersätter ARP protokollet. ND används tillsammans med ICMP för att upptäcka närliggande routrar via deras Link-local adresser. ND är avskedad mest för hosts som behöver information för att konstruera själva sina Link-local adresser. Routrarna använder istället olika meddelandetyper  för att hantera dynamiskt ipv6 adresser. DAD ser till att inte samma link-local adress konstrueras flera gånger av olika nätverksenheter.
  5. Routrar skickar ut meddelande relaterade till IPv6 adresser varje 200 sekunder.

Några frågor om Multicast adresser

  1. Vilket är prefixet av en IPv6 multicast adress?
    1. ff00::/8
  2. Vilken scope/räckvidd har följande multicast adresser?
    1. ff02::/16 – Link-local scope
    2. ff05::/16 – Site local scope
  3. Vilken Well-known multicast adress tilldelas till alla nätverksenheter i den link-local scope/räckvidd?
    1. ff02::1 – All nodes
  4. Vilken Well-known multicast adress tilldelas till alla IPv6 routrar?
    1. ff02::2 – All-routers
  5. För vilka adresstyper genereras Solicited-node multicast adresser?
    1. Global unicast, unique local unicast och Link-local adresser
  6. Kan två nätverksenheter i samma länk (delnät) ha samma Solicited-node multicast adress?
    1. Ja, det kan hända när man konfigurerar ipv6 adresser som slutar på samma sista sex hexadecimala siffror.
  7. Kan en nätverksenhet ha en och samma Solicited-node multicast adress till ens global unicast och link-local adresser?
    1. Ja, det är precis det som hände i laborationen där vi utforskade solicited-node adresser.
  8. Associera varje IPv6 adress till Solicited-node multicast adress och deras MAC-adresser:
    1. 2001:db8:bee:47:0201:41ff:fea1:1067
      1. Solicited-node: ff02::1:ffa1:1067
      2. MAC: 33-33-ff-a11067 (33-33-00-00-00 till 33-33-ff-ff-ff-ff reserverad för multicast)
    2. fe80::0201:41ff:fea1:1067
      1. Solicited-node: ff02::1:ffa1:1067
      2. MAC: 33-33-ff-a11067 (notera att det är samma för GUA)
    3. 2001:db8:deed:30:feaf:d899:10bc:7
      1. Solicited node: ff02::1:ffbc:7
      2. MAC: 33-33-ff-bc0007
    4. 2001:db8:feed:1:a:1ab::7000
      1. Solicited-node: ff02::1:ff00:7000
      2. MAC: 33-33-ff-007000
    5. 2001:db8:feed:1:a:2ab::7000
      1. Solicited-node: ff02::1:ff00:7000
      2. MAC: 33-33-ff-007000