9. Forwarding (Inoltro)
9. Forwarding (Inoltro)
Quando un router riceve un pacchetto indirizzato a un nodo diverso da se stesso, DEVE tenere conto della zona degli indirizzi di destinazione e di origine come segue:
-
La zona dell'indirizzo di destinazione è determinata dall'ambito dell'indirizzo e dall'interfaccia di arrivo del pacchetto. L'interfaccia next-hop è scelta cercando l'indirizzo di destinazione in una tabella di instradamento (concettuale) specifica per quella zona (vedi Sezione 10). Tale tabella di instradamento è limitata a fare riferimento alle interfacce appartenenti a quella zona.
-
Dopo la scelta dell'interfaccia next-hop, la zona dell'indirizzo di origine è considerata. Come con l'indirizzo di destinazione, la zona dell'indirizzo di origine è determinata dall'ambito dell'indirizzo e dall'interfaccia di arrivo del pacchetto. Se la trasmissione del pacchetto sull'interfaccia next-hop scelta comporterebbe che il pacchetto lasci la zona dell'indirizzo di origine, cioè attraversi un confine di zona dell'ambito dell'indirizzo di origine, il pacchetto viene scartato. Inoltre, se l'indirizzo di destinazione del pacchetto è un indirizzo unicast, viene inviato un messaggio ICMP Destination Unreachable [4] con Codice 2 ("beyond scope of source address") all'origine del pacchetto originale. Si noti che il Codice 2 è attualmente lasciato non assegnato in [4], ma l'IANA riassegnerà il valore per il nuovo scopo, e [4] sarà rivisto con questa modifica.
Si noti che anche se gli indirizzi unicast site-local sono deprecati, la procedura precedente si applica comunque agli indirizzi link-local. Pertanto, se un router riceve un pacchetto con un indirizzo di destinazione link-local che non è uno degli indirizzi link-local del router sul link di arrivo, il router dovrebbe tentare di inoltrare il pacchetto alla destinazione su quel link (soggetto al successo della determinazione dell'indirizzo di livello link della destinazione tramite il protocollo Neighbor Discovery [9]). Il pacchetto inoltrato può essere trasmesso attraverso l'interfaccia di arrivo, o attraverso qualsiasi altra interfaccia collegata allo stesso link.
Un nodo che riceve un pacchetto indirizzato a se stesso e contenente un Routing Header con più di zero Segments Left (Sezione 4.4 di [3]) prima verifica l'ambito del prossimo indirizzo nel Routing Header. Se l'ambito del prossimo indirizzo è più piccolo dell'ambito dell'indirizzo di destinazione originale, il nodo DEVE scartare il pacchetto. Altrimenti, scambia l'indirizzo di destinazione originale con il prossimo indirizzo nel Routing Header. Quindi le regole di inoltro precedenti si applicano come segue:
-
La zona del nuovo indirizzo di destinazione è determinata dall'ambito del prossimo indirizzo e dall'interfaccia di arrivo del pacchetto. L'interfaccia next-hop è scelta secondo il primo punto delle regole precedenti.
-
Dopo la scelta dell'interfaccia next-hop, la zona dell'indirizzo di origine è considerata secondo il secondo punto delle regole precedenti.
Questo controllo sull'ambito del prossimo indirizzo assicura che quando un pacchetto arriva alla sua destinazione finale, se quella destinazione è link-local, allora il nodo ricevente può sapere che il pacchetto ha avuto origine on-link. Questo aiuterà il nodo ricevente a inviare un pacchetto di "risposta" con la destinazione finale del pacchetto ricevuto come indirizzo di origine senza rompere la sua zona di origine.
Si noti che è possibile, sebbene generalmente sconsigliabile, utilizzare un Routing Header per trasmettere un indirizzo non globale oltre il confine della sua zona associata nel campo next address precedentemente utilizzato. Ad esempio, considerare il caso in cui un nodo al bordo del link (ad es., un router) riceve un pacchetto con la destinazione che è un indirizzo link-local, e l'indirizzo di origine un indirizzo globale. Se il pacchetto contiene un Routing Header dove il prossimo indirizzo è un indirizzo globale, l'interfaccia next-hop all'indirizzo globale può appartenere a un link diverso da quello della destinazione originale. Questo è consentito perché l'ambito del prossimo indirizzo non è più piccolo dell'ambito della destinazione originale.