Bonjour,
J’ai tout essayé sans trop de succès, je viens ici en désespoir de cause, je me doute que je n’aurai pas de réponse mais j’aimerai toujours essayer.
Dans le cadre d’une application ayant besoin d’un proxy j’ai réaliser une petite application nodejs capable d’exécuter des requêtes. La spécificité est que le serveur hôte dispose de plusieurs adresses ip publique et que l’application est capable de choisir l’ip de sortie.
Exemple: Le serveur dispose des adresses suivante:
- 51.83.15.2
- 51.83.15.3
- 51.83.15.3
En fonction des besoins, l’application choisi quelle adresse ip effectuera la requête, par exemple 51.83.15.3 -> google.com
Si j’exécute mon application directement sur l’hôte cela fonctionne, pour ce faire j’ai pris soin d’ajouter à mon interface réseau principale les adresses ip alias avec la commande ip a add 51.83.15.3/32 dev ens0
sans quoi cela ne fonctionne pas car nodejs cherche l’interface sur laquelle il doit faire passer la requête.
Le problème est que j’ai développé mon application dans l’objectif de la placer dans docker, hors le container n’a évidemment pas connaissance des interfaces réseau de l’hôte.
Je ne peux pas et je ne souhaite pas dire à docker network_mode: host
car d’une part cela exposerai le container au public et d’autre part cela l’empêche de communiquer avec les autres containers (base de données).
J’ai tenter de créer un réseau avec le driver ipvlan
mais la configuration demande nécessairement de spécifier un gateway sauf que je ne possède que des ip /32 sans gateway ce qui me fait systématiquement terminer sur l’erreur No available addresses on this pool
.
J’ai tenter dans le container d’exécuter la même commande que sur l’host afin de faire connaître l’adresse ip publique, je n’ai pas d’erreur en exécutant mon proxy mais la page charge indéfiniment sans résultat.
Quelqu’un aurait-il une idée ?
Cordialement
La source