Amazon web services Istio中的客户端IP地址

Amazon web services Istio中的客户端IP地址,amazon-web-services,kubernetes,istio,Amazon Web Services,Kubernetes,Istio,所以我有一个这样的设置: AWS NLB(正向)-->Istio-->Nginx吊舱 现在,我试图在Istio层实现速率限制。我跟着林克。但是,我仍然可以请求比我配置的更多的API。进一步研究,我在nginx中记录了X-Forwarded-For头,它是空的 那么,当我使用NLB时,如何在Istio中获取客户端IP?NLB转发客户端IP,但如何转发?头球 编辑: Istio版本:1.2.5 istio入口网关配置为节点端口类型 根据AWS关于网络负载均衡器的规定: 网络负载平衡器在开放系统互连(

所以我有一个这样的设置:

AWS NLB(正向)-->Istio-->Nginx吊舱

现在,我试图在Istio层实现速率限制。我跟着林克。但是,我仍然可以请求比我配置的更多的API。进一步研究,我在nginx中记录了X-Forwarded-For头,它是空的

那么,当我使用NLB时,如何在Istio中获取客户端IP?NLB转发客户端IP,但如何转发?头球

编辑:

Istio版本:1.2.5

istio入口网关配置为节点端口类型

根据AWS关于网络负载均衡器的规定:

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

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


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

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

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


2.:代理协议头。

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

您可以按照aws获取如何配置代理协议的指南和示例

使用控制台启用代理协议

  • 打开位于的Amazon EC2控制台

  • 在导航窗格中的负载平衡下,选择目标组

  • 选择目标组

  • 选择说明编辑属性

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

  • 根据AWS关于网络负载均衡器的信息:

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

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


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

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

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


    2.:代理协议头。

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

    您可以按照aws获取如何配置代理协议的指南和示例

    使用控制台启用代理协议

  • 打开位于的Amazon EC2控制台

  • 在导航窗格中的负载平衡下,选择目标组

  • 选择目标组

  • 选择说明编辑属性

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


  • 我跟随这个链接。。。。哪个链接?更新了链接。嗨,你的istio版本是什么?当调用
    kubectl get svc istio ingresgateway-n istio system
    时,您的AWS NLB ip地址是否在
    EXTERNAL-ip
    下?@PiotrMalec更新了这个问题。如果运行
    kubectl-n istio system get cm istio-o jsonpath=“{@.data.mesh}”| grep disablePolicyChecks
    ,您会得到什么?我遵循了这个链接。。。。哪个链接?更新了链接。嗨,你的istio版本是什么?调用
    kubectl get svc istio ingresgateway-n istio system
    时,您的AWS NLB ip地址是否在
    EXTERNAL-ip
    下?@PiotrMalec更新了问题。如果运行
    kubectl-n istio system get cm istio-o jsonpath=“{@.data.mesh}”| grep disablePolicyChecks
    ,您会得到什么?