4. Adresses source candidates
L'algorithme de sélection d'adresse source utilise le concept d'un "ensemble candidat" d'adresses source potentielles pour une adresse de destination donnée. L'ensemble candidat est l'ensemble de toutes les adresses qui pourraient être utilisées comme adresse source; l'algorithme de sélection d'adresse source choisira une adresse parmi cet ensemble. Nous écrivons CandidateSource(A) pour dénoter l'ensemble candidat pour l'adresse A.
Il est RECOMMANDÉ que les adresses source candidates soient l'ensemble des adresses unicast assignées à l'interface qui sera utilisée pour envoyer vers la destination (l'interface "sortante"). Sur les routeurs, l'ensemble candidat PEUT inclure les adresses unicast assignées à n'importe quelle interface qui transfère des paquets, sous réserve des restrictions décrites ci-dessous. Les implémentations qui souhaitent supporter l'utilisation d'adresses source globales assignées à une interface de bouclage DOIVENT se comporter comme si l'interface de bouclage originait et transférait le paquet.
Discussion: Le mécanisme de redirection de découverte de voisins [RFC4861] exige que les routeurs vérifient que l'adresse source d'un paquet identifie un voisin avant de générer une redirection, il est donc avantageux pour les hôtes de choisir des adresses source assignées à l'interface sortante.
Dans certains cas, l'adresse de destination pourrait être qualifiée avec un index de zone ou d'autres informations qui contraindront l'ensemble candidat.
Pour toutes les adresses de destination multicast et link-local, l'ensemble d'adresses source candidates DOIT inclure uniquement les adresses assignées aux interfaces appartenant au même lien que l'interface sortante.
Discussion: La restriction pour les adresses de destination multicast est nécessaire car les algorithmes de transfert multicast actuellement déployés utilisent des vérifications de transfert de chemin inverse (RPF).
Pour les adresses de destination unicast site-local, l'ensemble d'adresses source candidates DOIT inclure uniquement les adresses assignées aux interfaces appartenant au même site que l'interface sortante.
Dans tous les cas, les adresses multicast et l'adresse non spécifiée NE DOIVENT PAS être incluses dans un ensemble candidat.
Sur les nœuds IPv6-seulement qui supportent la traduction IP/ICMP sans état (SIIT) [RFC6145], si l'adresse de destination est une adresse convertie IPv4, alors l'ensemble candidat DOIT contenir uniquement des adresses traduisibles IPv4.
Si une application ou couche supérieure spécifie une adresse source, cela peut affecter le choix d'interface sortante. Quoi qu'il en soit, si l'application ou couche supérieure spécifie une adresse source qui n'est pas dans l'ensemble candidat pour la destination, alors la couche réseau DOIT traiter cela comme une erreur. Si l'application ou couche supérieure spécifie une adresse source qui est dans l'ensemble candidat pour la destination, alors la couche réseau DOIT respecter ce choix. Si l'application ou couche supérieure ne spécifie pas d'adresse source, alors la couche réseau utilise l'algorithme de sélection d'adresse source spécifié dans la section suivante.