7 votes

L'équilibreur de charge réseau AWS ne parvient pas à obtenir l'IP du client

Je suis passé de Équilibreur de charge d'application a Équilibreur de charge du réseau pour mon application fonctionnant sur ECS Fargate parce que mon application avait besoin d'une adresse IP statique.

Je ne parviens pas à obtenir l'adresse IP de la source/du client à partir de X-Forwarded-For ou X-Real-Ip En-têtes HTTP. Dans ces deux en-têtes, je reçois une IP privée. Alors que sur Équilibreur de charge d'application J'ai pu obtenir l'IP du client à partir de X-Forwarded-For l'en-tête.

Documentation ici indique que NLB préserve l'adresse IP source.

Je n'ai pas encore pu résoudre le problème. Qu'est-ce que je pourrais faire de mal ?

Si cela n'est pas possible avec le Network Load Balancer, comment puis-je atteindre les objectifs suivants, étant donné que mon application fonctionne sur AWS ECS-Fargate :

  1. Avoir une IP statique (par exemple pour un enregistrement A, une liste blanche d'IP, etc.)

  2. Peut extraire l'adresse IP du client (par exemple, pour les logiques commerciales régionales utilisant GeoIP, etc.)

12voto

Alfred E. Noobman Points 177

Le LB réseau ne prend pas en charge les en-têtes X-Forwarded-For comme le fait le LB application.

Application LB :

Équilibrage de la charge de la couche 7 Vous pouvez équilibrer la charge des applications HTTP/HTTPS et utiliser des fonctionnalités spécifiques à la couche 7, telles que les en-têtes X-Forwarded-For.

Ce n'est pas le cas de Network LB, qui est une méthode d'équilibrage de charge de niveau 4 et qui, en tant que telle, n'est pas compatible avec le protocole HTTP.

Le Network LB conservera l'adresse IP source "Preserve Source IP address" alors que l'Application LB ne le fera pas. Comme l'adresse IP est conservée, la méthode Network LB n'a pas besoin de l'en-tête X-Forwarded-For qui insère l'IP d'origine lorsque la NAT est utilisée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X