Passa al contenuto principale

4. Nuove opzioni e messaggi di Neighbor Discovery (New Neighbor Discovery Options and Messages)

4. Nuove opzioni e messaggi di Neighbor Discovery (New Neighbor Discovery Options and Messages)

Questa sezione definisce nuove opzioni di messaggio Neighbor Discovery usate da questa specifica. L’Address Registration Option è usata dagli host, mentre l’Authoritative Border Router Option e la 6LoWPAN Context Option sono usate nell’interazione router-to-router sostituibile. Questa sezione definisce anche i nuovi messaggi router-to-router Duplicate Address Request e Duplicate Address Confirmation.

4.1. Opzione di registrazione dell’indirizzo (Address Registration Option)

I router devono conoscere l’insieme degli indirizzi IP degli host direttamente raggiungibili e i loro corrispondenti indirizzi di livello link. Questo deve essere mantenuto man mano che la raggiungibilità radio cambia. A questo scopo viene introdotta un’Address Registration Option (ARO), che può essere inclusa in messaggi NS unicast inviati dagli host. Pertanto, può essere inclusa nei messaggi NS unicast che un host invia come parte della NUD per determinare che può ancora raggiungere un router di default. L’ARO è usata dal router ricevente per mantenere in modo affidabile la propria Neighbor Cache. La stessa opzione è inclusa nei corrispondenti messaggi NA con un campo Status che indica il successo o il fallimento della registrazione. Questa opzione è sempre iniziata dall’host.

Le informazioni contenute nell’ARO sono anche incluse nei messaggi DAR e DAC multi-hop usati tra 6LR e 6LBR, ma l’opzione stessa non è usata in tali messaggi.

L’ARO è richiesta per affidabilità e risparmio energetico. Il campo lifetime fornisce flessibilità all’host per registrare un indirizzo che dovrebbe essere utilizzabile (continuare a essere annunciato dal 6LR nel protocollo di routing, ecc.) durante il proprio programma di sleep previsto.

Il mittente del NS include anche l’EUI-64 [EUI64] dell’interfaccia da cui sta registrando un indirizzo. Questo è usato come ID unico per la rilevazione di indirizzi duplicati. È usato per distinguere tra lo stesso nodo che registra di nuovo il proprio indirizzo e un nodo diverso (con un EUI-64 diverso) che registra un indirizzo già in uso da qualcun altro. L’EUI-64 è anche usato per consegnare un NA che trasporta un codice Status di errore all’indirizzo IPv6 link-local dell’host basato su EUI-64 (vedere Sezione 6.5.2).

Quando l’ARO è usata dagli host, un SLLAO (Source Link-Layer Address Option) [RFC4861] MUST essere incluso, e l’indirizzo che deve essere registrato MUST essere l’indirizzo IPv6 sorgente del messaggio NS.

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 2 | Status | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EUI-64 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Fields (campi):

Type: 33

Length: 8-bit unsigned integer. La lunghezza dell’opzione in unità di 8 byte. Sempre 2.

Status: 8-bit unsigned integer. Indica lo stato di una registrazione nella risposta NA. MUST essere impostato a 0 nei messaggi NS. Vedere sotto.

Reserved: Questo campo non è usato. MUST essere inizializzato a zero dal mittente e MUST essere ignorato dal ricevente.

Registration Lifetime: 16-bit unsigned integer. La quantità di tempo in unità di 60 secondi per cui il router dovrebbe conservare la NCE per il mittente del NS che include questa opzione.

EUI-64: 64 bits. Questo campo è usato per identificare univocamente l’interfaccia dell’indirizzo registrato includendo l’identificatore EUI-64 [EUI64] assegnato ad essa senza modifiche.

I valori Status usati nei NA sono:

       +--------+--------------------------------------------+
| Status | Description |
+--------+--------------------------------------------+
| 0 | Success |
| 1 | Duplicate Address |
| 2 | Neighbor Cache Full |
| 3-255 | Allocated using Standards Action [RFC5226] |
+--------+--------------------------------------------+

Table 1

4.2. Opzione di contesto 6LoWPAN (6LoWPAN Context Option)

La 6LoWPAN Context Option (6CO) trasporta informazioni di prefisso per la compressione d’intestazione LoWPAN ed è simile alla PIO di [RFC4861]. Tuttavia, i prefissi possono essere remoti così come locali al LoWPAN, poiché la compressione d’intestazione si applica potenzialmente a tutti gli indirizzi IPv6. Questa opzione consente la disseminazione di più contesti identificati da un CID per l’uso come specificato in [RFC6282]. Un contesto può essere un prefisso di qualsiasi lunghezza o un indirizzo (/128), e fino a 16 6CO possono essere trasportate in un messaggio RA.

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length |Context Length | Res |C| CID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. Context Prefix .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 1: 6LoWPAN Context Option Format

Type: 34

Length: 8-bit unsigned integer. La lunghezza dell’opzione (inclusi i campi Type e Length) in unità di 8 byte. Può essere 2 o 3, a seconda della lunghezza del campo Context Prefix.

Context Length: 8-bit unsigned integer. Il numero di bit iniziali nel campo Context Prefix che sono validi. Il valore varia da 0 a 128. Se è maggiore di 64, allora Length MUST essere 3.

C: 1-bit context Compression flag. Questo flag indica se il contesto è valido per l’uso nella compressione. Un contesto che non è valido MUST NOT essere usato per la compressione ma SHOULD essere usato nella decompressione nel caso in cui un altro compressore non abbia ancora ricevuto le informazioni di contesto aggiornate. Questo flag è usato per gestire il ciclo di vita del contesto sulla base delle raccomandazioni nella Sezione 7.2.

CID: 4-bit Context Identifier per queste informazioni di prefisso. Il CID è usato dalla compressione d’intestazione basata su contesto come specificato in [RFC6282]. L’elenco dei CID per un LoWPAN è configurato sul 6LBR che origina le informazioni di contesto per il 6LoWPAN.

Res, Reserved: Questo campo non è usato. MUST essere inizializzato a zero dal mittente e MUST essere ignorato dal ricevente.

Valid Lifetime: 16-bit unsigned integer. La durata, in unità di 60 secondi (relativa al momento in cui il pacchetto è ricevuto), per cui il contesto è valido ai fini della compressione o decompressione dell’intestazione. Un valore di tutti bit a zero (0x0) indica che questa entry di contesto MUST essere rimossa immediatamente.

Context Prefix: Il prefisso o indirizzo IPv6 corrispondente al campo CID. La lunghezza valida di questo campo è inclusa nel campo Context Length. Questo campo è riempito con zeri per rendere l’opzione un multiplo di 8 byte.

4.3. Authoritative Border Router Option (Opzione di border router autorevole)

L’Authoritative Border Router Option (ABRO) è necessaria quando i messaggi RA sono usati per disseminare prefissi e informazioni di contesto attraverso una topologia route-over. In questo caso, i 6LR ricevono PIO da altri 6LR. Questo implica che un 6LR non può semplicemente lasciare che vinca il RA ricevuto più recentemente. Per poter aggiungere e rimuovere in modo affidabile prefissi dal 6LoWPAN, dobbiamo trasportare informazioni dal 6LBR autorevole. Questo si fa introducendo un numero di versione che il 6LBR imposta e che i 6LR propagano mentre propagano le informazioni di prefisso e contesto con questa ABRO. Quando ci sono più 6LBR, essi avrebbero spazi di numero di versione separati. Pertanto, questa opzione deve trasportare l’indirizzo IP del 6LBR che ha originato quell’insieme di informazioni.

L’ABRO MUST essere inclusa in tutti i messaggi RA nel caso in cui i RA siano usati per propagare informazioni tra router (come descritto nella Sezione 8.2).

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 3 | Version Low |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version High | Valid Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ 6LBR Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Fields (campi):

Type: 35

Length: 8-bit unsigned integer. La lunghezza dell’opzione in unità di 8 byte. Sempre 3.

Version Low, Version High: Insieme, Version Low e Version High costituiscono il campo Version Number, un 32-bit unsigned integer dove Version Low sono i 16 bit meno significativi e Version High sono i 16 bit più significativi. Il numero di versione corrispondente a questo insieme di informazioni contenuto nel messaggio RA. Il 6LBR autorevole che origina il prefisso incrementa questo numero di versione ogni volta che il suo insieme di informazioni di prefisso o contesto cambia.

Valid Lifetime: 16-bit unsigned integer. La durata, in unità di 60 secondi (relativa al momento in cui il pacchetto è ricevuto), per cui questo insieme di informazioni di border router è valido. Un valore di tutti bit a zero (0x0) assume un valore di default di 10.000 (~una settimana).

Reserved: Questo campo non è usato. MUST essere inizializzato a zero dal mittente e MUST essere ignorato dal ricevente.

6LBR Address: Indirizzo IPv6 del 6LBR che è l’origine del numero di versione incluso.

4.4. Messaggi di indirizzo duplicato (Duplicate Address Messages)

Per gli scambi DAD multi-hop tra un 6LR e un 6LBR come specificato nella Sezione 8.2, esistono due nuovi tipi di messaggio ICMPv6 chiamati Duplicate Address Request (DAR) e Duplicate Address Confirmation (DAC). Evitiamo di riutilizzare i messaggi NS e NA a questo scopo, poiché questi messaggi non sono soggetti alla verifica hop limit=255 in quanto vengono inoltrati da 6LR intermedi. Le informazioni contenute nei messaggi sono altrimenti le stesse che sarebbero in un NS che trasporta un’ARO, con il formato del messaggio che integra i campi che sono nell’ARO.

Il DAR e il DAC usano lo stesso formato di messaggio con valori Type ICMPv6 diversi, e il campo Status è significativo solo nel messaggio DAC.

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status | Reserved | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ EUI-64 +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Registered Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IP fields:

IPv6 Source: Un indirizzo non link-local del router mittente.

IPv6 Destination: In un DAR, un indirizzo non link-local di un 6LBR. In un DAC, è semplicemente la sorgente del DAR.

Hop Limit: Impostato a MULTIHOP_HOPLIMIT in trasmissione. MUST essere ignorato in ricezione.

ICMP Fields:

Type: 157 per il DAR e 158 per il DAC.

Code: Impostato a zero in trasmissione. MUST essere ignorato in ricezione.

Checksum: Il checksum ICMP. Vedere [RFC4443].

Status: 8-bit unsigned integer. Indica lo stato di una registrazione nel DAC. MUST essere impostato a 0 nel DAR. Vedere Table 1.

Reserved: Questo campo non è usato. MUST essere inizializzato a zero dal mittente e MUST essere ignorato dal ricevente.

Registration Lifetime: 16-bit unsigned integer. La quantità di tempo in unità di 60 secondi per cui il 6LBR dovrebbe conservare la DAD table entry (Sezione 8.2.2) per l’indirizzo registrato. Un valore di 0 indica in un DAR che la DAD table entry dovrebbe essere rimossa.

EUI-64: 64 bits. Questo campo è usato per identificare univocamente l’interfaccia dell’indirizzo registrato includendo l’identificatore EUI-64 [EUI64] assegnato ad essa senza modifiche.

Registered Address: 128-bit field. Trasporta l’indirizzo dell’host che era contenuto nel campo IPv6 Source nel NS che conteneva l’ARO inviata dall’host.