Используйте статические ips для балансировщиков нагрузки приложений AWS - PullRequest
1 голос
/ 09 ноября 2019

Наше требование -

  1. Назначить статический IP-адрес ALB, поскольку многие наши клиенты занесли его в белый список в своих брандмауэрах.
  2. HTTP-заголовок X-Forwarded-For должен содержать IP-адрес клиента, поскольку у нас запущена служба, подобная https://www.whatismyip.com/, которую уже используют тысячи наших устройств IOT.

Попробовал следующее решение, но оно не # 2, мы видим внутренний IP-адрес NLB вместо IP-адреса клиента в X-FF https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/

Есть ли какой-нибудь балансировщик нагрузки, который может сделать # 1и # 2 или AWS может сделать это по запросу? Любая помощь / указатели приветствуются, спасибо!

1 Ответ

0 голосов
/ 09 ноября 2019

AWS Global Accelerator позволяет связывать региональные ресурсы, такие как балансировщики нагрузки и экземпляры EC2, с двумя статическими IP-адресами.

https://aws.amazon.com/global-accelerator/

Изначально GlobalУскоритель не сохранил IP-адрес клиента, но последующее усовершенствование сделало это возможным.

Сохранение IP-адреса клиента

Сегодня мы объявляем о важномновая функция для AWS Global Accelerator. Если вы перенаправляете трафик на Application Load Balancer, IP-адрес клиента пользователя теперь доступен для кода, выполняемого на конечной точке.

https://aws.amazon.com/blogs/aws/new-client-ip-address-preservation-for-aws-global-accelerator/

С этой функциейповедение X-Forwarded-For является правильным, потому что ALB видит IP-адрес клиента.

Это также может повысить сквозную производительность, поскольку статические адреса, назначенные вам из Global Accelerator, перенаправляются из anycastИнтернет к нескольким периферийным точкам в пограничной сети AWS (где живут глобальные службы CloudFront и Route 53, хотя Global Accelerator не использует напрямую ни одну из этих служб; напротив, некоторые другие пограничные службы, такие как S3 Transfer Acceleration и «Edge Optimized»"API Gateway на самом деле использует CloudFront под капотом). От входа на периферию трафик перемещается по волокну AWS в область вашего ALB, а ответы возвращаются обратно на периферию и к зрителю, устраняя некоторые изменчивости и капризы общедоступного Интернета.

Этоописание кажется невозможным и / или волшебным для тех, кто знаком с тем, как сети и NAT обычно работают (и имеют ограничения), но секретным соусом является взаимосвязь с сетью VPC через внутреннюю службу AWS под названием Hyperplane, которая также позволяет балансировщикам сетевой нагрузки иШлюзы NAT работают с использованием преобразования адресов и потоков с отслеживанием состояния.

Это единственный официальный способ иметь статические адреса IPv4 на внешней стороне ALB с правильной обработкой X-Forwarded-For и хорошо подходит для сред, гдесуществует негибкое требование к статическим адресам из-за факторов, находящихся вне вашего контроля.

"Два" статических адреса, упомянутых выше, предназначены для избыточности. Два будут назначены. Вам не обязательно использовать оба из них, но лучше, если вы это сделаете.

...