我们的要求是
尝试以下解决方案,但它没有做#2,我们在X-FF中看到内部NLB ip而不是客户端IP https://aws.amazon.com/blogs/networking-and-content-delivery/using-static-ip-addresses-for-application-load-balancers/
那里是否有可以执行#1和#2的负载均衡器,或者AWS可以应要求实现此目的?任何帮助/指针,谢谢!
答案 0 :(得分:0)
AWS Global Accelerator可让您将区域资源(例如负载均衡器和EC2实例)关联到两个静态IP地址。
最初,Global Accelerator不会保留客户端的IP地址,但是随后的增强使其成为可能。
客户端IP地址保留
今天,我们宣布了AWS Global Accelerator的一项重要新功能。如果您将流量路由到应用程序负载平衡器,则用户客户端的IP地址现在可用于在端点上运行的代码。
https://aws.amazon.com/blogs/aws/new-client-ip-address-preservation-for-aws-global-accelerator/
使用此功能,X-Forwarded-For
的行为是正确的,因为ALB看到了客户端IP。
这也有可能提高端到端性能,因为从Global Accelerator分配给您的静态地址是从Internet任意广播到Internet的AWS Edge Network上的许多边缘位置(全球服务CloudFront和尽管Global Accelerator并未直接使用其中任何一项服务,但Route 53仍处于活动状态;相比之下,其他一些边缘服务(例如S3 Transfer Acceleration和“ Edge Optimized” API Gateway实际上实际上是在使用CloudFront)。从边缘的入口开始,流量将AWS光纤带到ALB的区域,然后响应将返回边缘并返回到查看器,从而消除了公共Internet的某些可变性和可变性。
对于熟悉网络和NAT通常如何工作(并且受到限制)的那些人来说,此描述似乎是不可能和/或不可思议的,但秘诀在于通过称为Hyperplane的内部AWS服务与VPC网络的互连,这也允许网络负载平衡器和NAT网关通过地址转换和状态流来发挥其神奇作用。
这是通过正确的X-Forwarded-For
处理在ALB外部具有静态IPv4地址的唯一官方方法,并且非常适合对静态地址有固定要求的环境,由于您外部的因素控制。
上面提到的“两个”静态地址用于冗余。将分配两个。您不一定要同时使用它们,但这是最好的选择。