tencent cloud

负载均衡

动态与公告
产品动态
产品公告
产品简介
产品概述
产品优势
使用场景
技术原理
产品对比
使用约束
Service Regions and Service Providers
购买指南
计费概述
计费项
CLB 资源包
购买方式
欠费说明
产品属性选择
快速入门
域名化负载均衡快速入门
负载均衡快速入门
IPv6 负载均衡快速入门
CentOS 下部署 Nginx
CentOS 下部署 Java Web
操作指南
负载均衡实例
负载均衡监听器
后端服务器
健康检查
证书管理
日志管理
监控告警
访问管理
传统型负载均衡
实践教程
部署证书到负载均衡(双向认证)
负载均衡开启 Gzip 配置及检测方法说明
HTTPS 转发配置入门指南
如何获取客户端真实 IP
负载均衡配置监控告警最佳实践
产品高可用说明
均衡算法选择与权重配置示例
配置 WAF 对负载均衡的监听域名进行 Web 安全防护
配置 IAP 对负载均衡的域名和路径的web访问进行身份验证
配置 IAP 对负载均衡的域名和路径的程序化访问进行身份验证
运维指南
客户端 timewait 过多解决方案
负载均衡HTTPS服务性能测试
压力测试常见问题
CLB 证书操作权限问题
故障处理
UDP 健康检查出现异常
API 文档
History
Introduction
API Category
Instance APIs
Listener APIs
Backend Service APIs
Target Group APIs
Redirection APIs
Other APIs
Classic CLB APIs
Load Balancing APIs
Making API Requests
Data Types
Error Codes
CLB API 2017
常见问题
计费相关
负载均衡配置相关
健康检查异常排查
HTTPS 相关
WS/WSS 协议支持相关
HTTP/2 协议支持相关
默认域名阻断提示
服务等级协议
联系我们
词汇表
文档负载均衡实践教程如何获取客户端真实 IP混合云部署场景下通过 TOA 获取客户端真实 IP

混合云部署场景下通过 TOA 获取客户端真实 IP

PDF
聚焦模式
字号
最后更新时间: 2025-11-13 10:56:33
本文介绍混合云部署场景和 NAT64 CLB 场景下的 CLB 的四层(仅 TCP)服务如何通过 TOA 获取客户端真实源 IP。
说明:
仅北京、上海、广州地域的 NAT64 CLB 支持通过 TOA 获取客户端真实源 IP。
仅四层 TCP 支持通过 TOA 获取客户端真实源 IP,UDP 和七层(HTTP/HTTPS)不支持获取。
该功能目前处于内测中,如需使用,请提交 工单申请

应用场景

混合云部署场景

混合云部署 中,IDC 的 IP 和云上 VPC 的 IP 可能会有地址重叠,因此需要配置 SNAT IP,进行 SNAT 转换源 IP。对于服务端而言,无法获得真实源 IP,因此需要通过 TOA 进行获取。

NAT64 CLB 场景

在 NAT64 CLB 场景中,客户端真实的 IPv6 源 IP 会被转换成 IPv4 的公网 IP,因此对于真实的服务端的服务而言,无法获得真实的客户端 IPv6 IP。 腾讯云 NAT64 CLB 提供获取客户端真实 IP 的功能,即将客户端真实的源 IP 放入 TCP 协议的自定义 option 中,当被嵌入真实源 IP 的 TCP 数据包发往服务端时,服务端插入的 TOA 内核模块可提取 TCP 数据包中的真实客户端源 IP,此时客户端应用只需要调用 TOA 内核模块提供的接口即可获取真实客户端源 IP。

限制说明

控制台开启 TOA

1. 已创建 NAT64 版本的 CLB 实例,详情请参见 创建 IPv6 NAT64 负载均衡实例
2. 登录 负载均衡控制台,创建 TCP 监听器,详情请参见 配置 TCP 监听器
3. 在“创建监听器”对话框中,开启 TOA 开关。

加载 TOA 模块

1. 根据腾讯云上 Linux 的版本,下载对应的 TOA 包解压。
2. 
解压
完成后,执行 cd 命令进入到刚解压的文件夹里,执行以下命令加载模块:
insmod toa.ko
3. 执行以下命令确认 TOA 模块是否加载成功。若提示“toa load success”,则说明已加载成功。
dmesg -T | grep TOA
4. 加载成功以后,在启动脚本中加载 toa.ko 文件(重启机器 ko 文件需要重新加载)。
5. (可选)若不再需要使用 TOA 模块,执行以下命令进行卸载。
rmmod toa
6. (可选)执行以下命令确认 TOA 模块是否卸载成功。若提示“TOA unloaded”,则说明卸载成功。
dmesg -T
若上述下载文件中没有您的操作系统版本对应的安装包,则可以下载 Linux 通用版的源码包,编译后获取对应的 ko,该版本支持 Centos8、Centos7、Ubuntu18.04、Ubuntu16.04 等绝大多数具有代表性的 Linux 发行版。
说明
由于 Linux 内核版本众多,且 Linux 发行版操作系统市场庞大,版本繁多,因此考虑到内核模块的兼容性问题,建议在使用的系统上对 TOA 源码包进行编译后使用。
1. 下载源码包
注意
Linux 与 腾讯 TLinux 的 TOA 模块不能混用,请根据对应系统选择对应的 TOA 模块源码包。
Linux
wget "https://clb-toa-1255852779.file.myqcloud.com/tgw_toa_linux_ver.tar.gz"
腾讯 TLinux
wget "https://clb-toa-1255852779.file.myqcloud.com/tgw_toa_tlinux_ver.tar.gz"
2. 编译 TOA 内核模块的 Linux 环境需先安装 GCC 编译器、Make 工具和内核模块开发包。
3. 修改 PATH 环境变量为PATH=/opt/rh/devtoolset-8/root/bin:$PATH。编译前请确认内核 gcc 编译版本,gcc 版本需与编译版本保持一致,可使用dmesg | grep 'Linux version'命令查看内核 gcc 编译版本信息。
4. 编译源码,生成 toa.ko 文件。编译过程中未提示 warningerror,则说明编译成功。以 Linux 系统对应的源码包为例:
tar zxvf tgw_toa_linux_ver.tar.gz
cd tgw_toa_linux_ver//进入解压后的tgw_toa目录
make
5. 编译 toa.ko 成功后,执行上文 步骤2 中的加载 TOA 模块的操作。

适配后端服务

(可选)监控 TOA 模块状态

为保障 TOA 内核模块运行的稳定性,TOA 内核模块还提供了监控功能。在插入 toa.ko 内核模块后,可以在容器所在的宿主机通过以下两种方式监控 TOA 模块的工作状态。

FAQ



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈