4. Candidate Source Addresses (Indirizzi Sorgente Candidati)
L'algoritmo di selezione dell'indirizzo sorgente utilizza il concetto di un "insieme di candidati" di potenziali indirizzi sorgente per un dato indirizzo di destinazione. L'insieme di candidati è l'insieme di tutti gli indirizzi che potrebbero essere utilizzati come indirizzo sorgente; l'algoritmo di selezione dell'indirizzo sorgente sceglierà un indirizzo da tale insieme. Scriviamo CandidateSource(A) per denotare l'insieme di candidati per l'indirizzo A.
È RACCOMANDATO che gli indirizzi sorgente candidati siano l'insieme di indirizzi unicast assegnati all'interfaccia che verrà utilizzata per inviare alla destinazione (l'interfaccia "in uscita"). Sui router, l'insieme di candidati PUÒ includere indirizzi unicast assegnati a qualsiasi interfaccia che inoltra pacchetti, soggetto alle restrizioni descritte di seguito. Le implementazioni che desiderano supportare l'uso di indirizzi sorgente globali assegnati a un'interfaccia di loopback DEVONO comportarsi come se l'interfaccia di loopback originasse e inoltrasse il pacchetto.
Discussione: Il meccanismo Redirect di Neighbor Discovery [RFC4861] richiede che i router verifichino che l'indirizzo sorgente di un pacchetto identifichi un vicino prima di generare un Redirect, quindi è vantaggioso per gli host scegliere indirizzi sorgente assegnati all'interfaccia in uscita.
In alcuni casi, l'indirizzo di destinazione potrebbe essere qualificato con un indice di zona o altre informazioni che vincolano l'insieme di candidati.
Per tutti gli indirizzi di destinazione multicast e link-local, l'insieme di indirizzi sorgente candidati DEVE includere solo indirizzi assegnati a interfacce appartenenti allo stesso collegamento dell'interfaccia in uscita.
Discussione: La restrizione per gli indirizzi di destinazione multicast è necessaria perché gli algoritmi di inoltro multicast attualmente implementati utilizzano controlli Reverse Path Forwarding (RPF).
Per gli indirizzi di destinazione unicast site-local, l'insieme di indirizzi sorgente candidati DEVE includere solo indirizzi assegnati a interfacce appartenenti allo stesso sito dell'interfaccia in uscita.
In ogni caso, gli indirizzi multicast e l'indirizzo non specificato NON DEVONO essere inclusi in un insieme di candidati.
Sui nodi solo IPv6 che supportano Stateless IP/ICMP Translation (SIIT) [RFC6145], se l'indirizzo di destinazione è un indirizzo IPv4-converted, allora l'insieme di candidati DEVE contenere solo indirizzi IPv4-translatable.
Se un'applicazione o un livello superiore specifica un indirizzo sorgente, può influenzare la scelta dell'interfaccia in uscita. Indipendentemente da ciò, se l'applicazione o il livello superiore specifica un indirizzo sorgente che non è nell'insieme di candidati per la destinazione, allora il livello di rete DEVE trattare questo come un errore. Se l'applicazione o il livello superiore specifica un indirizzo sorgente che è nell'insieme di candidati per la destinazione, allora il livello di rete DEVE rispettare tale scelta. Se l'applicazione o il livello superiore non specifica un indirizzo sorgente, allora il livello di rete utilizza l'algoritmo di selezione dell'indirizzo sorgente specificato nella sezione successiva.