Azure应用网关客户端IP未保留,F5防火墙仅显示网关IP求助
解决方案:让F5防火墙获取Azure应用网关转发的真实客户端IP
1. 修正Azure应用网关的基础配置
- 确保应用网关后端使用HTTP/HTTPS协议:若采用TCP协议,应用网关不会自动生成
X-Forwarded-For头,必须切换为HTTP/HTTPS协议栈。 - 启用
Preserve client IP选项:在应用网关的Backend Settings中开启该功能,它会让应用网关向后端(即F5)传递真实客户端IP的相关元数据,同时避免手动重写X-Forwarded-For头——应用网关默认会自动添加该头,值为终端用户的真实IP,手动重写可能导致头格式混乱或覆盖。
2. 配置F5识别X-Forwarded-For头
由于F5接收到的流量源IP是应用网关的公网IP,需通过解析请求头获取真实客户端IP:
- 在F5的
HTTP Profile中,关闭Insert X-Forwarded-For(避免F5重复添加该头造成冲突),同时开启X-Forwarded-For的解析功能。 - 调整F5的日志输出规则,将
X-Forwarded-For字段纳入日志内容,确保日志能记录真实客户端IP。
3. 排查中间链路与路由
- 确认应用网关到F5的路径中,没有其他网络设备修改或移除
X-Forwarded-For头。 - 检查F5虚拟服务器配置:确保允许来自应用网关IP段的流量,且正确将请求转发至后端应用服务器。
4. 验证配置有效性
- 用
curl模拟带指定客户端IP的请求:curl -H "X-Forwarded-For: 192.168.1.100" https://<应用网关公网IP>,查看F5日志是否捕获到192.168.1.100。 - 查看Azure Monitor中的应用网关日志,确认发往后端的请求已正确携带
X-Forwarded-For头。
内容的提问来源于stack exchange,提问作者Sreekanth M
相关产品推荐
相关产品推荐

