J'ai un scénario où notre boîte de lancement Linux doit recevoir des paquets destinés à des adresses non-locales. par exemple. Je n'ai configuré 1 :: 1 sur aucune des interfaces de ma boîte, mais je veux recevoir les paquets qui lui sont destinés. J'ai les paquets atteignant ip6_rcv_finish()
.Comment obtenir Linux accepter des paquets destinés à des adresses non-locales?
Ici, ip6_input_route()
renvoie une entrée dst_entry pointant sur la fonction de suppression. Si j'ajoute 1 :: 1 à l'une des interfaces, je vois ip6_input_route()
retourne dst_entry avec ip6_input()
et le paquet est reçu par l'application via le socket. Existe-t-il un moyen d'y parvenir sans avoir à ajouter l'adresse explicitement? J'utilise les options IP_BINDTODEVICE et IP_TRANSPARENT. Ces options me permettent de lier le socket à 1 :: 1 même si l'adresse n'est configurée sur aucune interface.
Mise à jour avec une autre question connexe. IP_TRANSPARENT ne devrait-il pas aider ici? Si vous avez une option pour lier à l'adresse non-locale, devrait-elle également ne pas prévoir de recevoir des paquets pour cette adresse? Sinon, à quoi sert de simplement se lier à une adresse non-locale et de ne pas recevoir de paquets pour la même chose? – user7420724
Pour ceux d'entre vous qui ne sont pas familiers avec le "format IP comprimé" utilisé ici, voir http://www.gestioip.net/docu/ipv6_address_examples.html –