更新时间:2024-09-20 GMT+08:00

共享型ELB获取客户端真实IP

操作场景

一般情况下,共享型ELB会使用100.125网段的IP和后端服务器进行通信。如果您想要获取客户端的真实IP,您可以开启“获取客户端IP”功能,此时,ELB和后端服务器之间直接使用真实的IP进行通信。

目前,共享型负载均衡对“获取客户端IP”功能的支持情况如表1

表1 共享型负载均衡“获取客户端IP”功能说明

监听器类型

开启“获取客户端IP”

关闭“获取客户端IP”

四层(TCP/UDP)监听器

七层(HTTP/HTTPS)监听器

默认开启

×

约束与限制

  • 开启/关闭“获取客户端IP”的过程中,如果监听器已经添加了后端服务器,则访问监听器的流量会中断,中断时间为10秒(后端服务器组配置的健康检查间隔*2)。
  • 开启“获取客户端IP”之后,不支持同一台服务器既作为后端服务器又作为客户端的场景。如果后端服务器和客户端使用同一台服务器,且开启“获取客户端IP”,则后端服务器会根据报文源IP为本地IP判定该报文为本机发出的报文,无法将应答报文返回给ELB,最终导致回程流量不通。
  • 如果监听器之前已经添加了后端服务器、并且开启了健康检查功能,开启“获取客户端IP”功能会重新上线后端服务器,新建流量会有1-2个健康检查间隔的中断。
  • 开启此功能后,执行后端服务器迁移任务时,可能出现流量中断(例如单向下载、推送类型的流量)。所以后端服务器迁移完成后,需要通过报文重传来恢复流量。

开启“获取客户端IP”

  1. 进入弹性负载均衡列表页面
  2. 在弹性负载均衡列表页面,单击需要修改监听器的负载均衡名称,进入监听器列表页。
  3. 您可以通过以下两种操作入口,开启监听器的“获取客户端IP”功能。
    • 在目标监听器所在行的“操作”列,单击“编辑”。
    • 单击目标监听器名称,进入监听器的基本信息页面,单击“编辑监听器”。
  4. 在“编辑监听器”弹窗页面,开启“获取客户端IP”开关。
  5. 确认相关信息,单击“确定”。

开启“获取客户端IP”功能后,您还需设置后端服务器的安全组、网络ACL、操作系统和软件的安全规则,使客户端的IP地址能够访问后端服务器。

关闭“获取客户端IP”

  1. 进入弹性负载均衡列表页面
  2. 在弹性负载均衡列表页面,单击需要修改监听器的负载均衡名称,进入监听器列表页。
  3. 您可以通过以下两种操作入口,关闭监听器的“获取客户端IP”功能。
    • 在目标监听器所在行的“操作”列,单击“编辑”。
    • 单击目标监听器名称,进入监听器的基本信息页面,单击“编辑监听器”。
  4. 在“编辑监听器”弹窗页面,关闭“获取客户端IP”开关。
  5. 确认相关信息,单击“确定”。

其他获取客户端真实IP方法

负载均衡的监听器还可通过如下补充方法获取客户端的真实IP,详情见表2

表2 共享型负载均衡获取客户端真实IP补充方法

监听器类型

获取客户端真实IP补充方法

四层(TCP)监听器

配置TOA插件获取。

七层(HTTP/HTTPS)监听器

七层服务获取客户端IP