Istio中的客户端IP地址

问题描述 投票:0回答:1

所以我有这样的设置:

AWS NLB(向前)-> Istio-> Nginx窗格

现在,我正在尝试在Istio层实施速率限制。我点击了this链接。但是,我仍然可以请求比配置更多的API。查看更多内容,我在Nginx中记录了X-Forwarded-For标头,它为空。

因此,当我使用NLB时如何在Istio中获得客户端IP? NLB转发客户端IP,但是如何?在标题中?

编辑:

Istio版本:1.2.5

istio-ingressgateway被配置为NodePort类型。

amazon-web-services kubernetes istio
1个回答
0
投票

根据有关网络负载平衡器的AWS documentation

网络负载平衡器在开放系统互连(OSI)模型的第四层起作用。它每秒可以处理数百万个请求。负载均衡器收到连接请求后,它将从目标组中选择一个目标作为默认规则。它尝试在侦听器配置中指定的端口上打开到所选目标的TCP连接。

...

创建目标组时,请指定其目标类型,该类型决定是通过实例ID还是IP地址注册目标。如果按实例ID注册目标,则客户端的源IP地址将保留并提供给您的应用程序。如果通过IP地址注册目标,则源IP地址是负载均衡器节点的专用IP地址。


使用NLB时,有两种保留客户端IP地址的方法:

1 .: NLB将客户端IP地址保留在源地址中通过实例ID注册目标时。

因此,客户端IP地址仅在特定的NLB配置中可用。您可以在aws documentation中阅读有关目标组的更多信息。


2 .:代理协议标头。

可以用来发送其他数据,例如标头中的源IP地址。即使您通过IP地址指定目标。

您可以按照aws documentation的指南和示例来配置代理协议。

要使用控制台启用代理协议

  1. https://console.aws.amazon.com/ec2/打开Amazon EC2控制台。

  2. 在导航窗格的LOAD BALANCING下,选择Target Groups

  3. 选择目标组。

  4. 选择描述编辑属性

  5. 选择启用代理协议v2,然后选择保存

© www.soinside.com 2019 - 2024. All rights reserved.