2 votes

Kubernetes : Préserver l'IP source / Passer l'IP externe comme source

Désolé si le titre et les tags sont un peu vagues, je n'ai pas encore trouvé les termes corrects pour cela. Merci de me conseiller, et je le modifierai.

Je mets en œuvre un serveur STUN, enfermé dans un conteneur Docker, qui est hébergé sur Kubernetes de Google Container Engine. Le projet utilise des équilibreurs de charge (règles de transfert sur GCE) pour acheminer les demandes externes vers les ports appropriés dans le pod/conteneur,

J'ai routé tout le trafic entrant dans eth0 vers 2 interfaces virtuelles (eth0:1, eth0:2) :

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 61214  -j DNAT --to-destination 172.26.0.6

(par souci d'exhaustivité, la deuxième destination est 172.26.0.7)

Une application client l'atteint sans problème, et la détermination du NAT se poursuit donc. Cependant, cela s'arrête brusquement lorsque le serveur STUN doit créer un socket et se relier à l'application cliente, car l'IP source qu'il a obtenue est l'IP interne de l'instance de la VM hôte sur Kubernetes (par exemple, 10.128.0.4). Comme aucune connexion n'a été établie, les sockets du client et du serveur s'arrêtent.

Existe-t-il un moyen de préserver l'adresse source réelle jusqu'à ce qu'elle atteigne mon application serveur ? Je suis prêt à abandonner la configuration actuelle, tant que ma demande atteint le serveur et que le serveur peut établir la connexion de retour avec le client.

Nous vous remercions.

2voto

Adam Law Points 121

Je suis heureux d'apprendre qu'il s'agit d'un de ces cas peu fréquents dans notre secteur d'activité où la solution existe L'information a été fournie en temps utile (c'est-à-dire qu'elle vient juste d'atteindre le stade du bêta).

Malheureusement, elle n'est spécifique qu'à notre contexte, c'est-à-dire Kubernetes sur GCE/GKE. Les utilisateurs d'autres plateformes (par exemple AWS) devront recourir à d'autres solutions, à l'heure où nous écrivons ces lignes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X