TOA功能(四层转发)
TOA
令闻云端国内cdn产品可开票
-
+
首页
TOA
## TOA 在TCP负载均衡时,TCP源站读取到的客户端IP信息皆为负载均衡服务器的IP;为了解决这个问题,很多云服务厂商推出了TOA模块,让我们可以在TCP通讯时传递客户端真实IP。 ## 原理 老的网络传输过程如下:  此时源站只只知道负载均衡服务器的IP,而无法知道客户端真实IP。 增加TOA模块之后:  其中: edge-toa进程 - 负责将回源的TCP数据包中增加TCP选项,此选项中包含了客户端的真实IP和端口 edge-toa模块 - 负责解析回源的TCP数据包中的TCP选项,并替换数据包中的源地址部分,这样源站的相关进程读取到的地址就是客户端的IP地址 使用TOA后,由于每个回源的数据包都需要二次处理后才能发出,所以会导致一定性能的下降。 ## 启用TOA功能 注意:请在你确保完全了解TOA原理后再使用本功能,不然会带来难以预料的后果! 以下步骤均使用 root 用户或者使用 su 运行。 ### 步骤1:检查源站服务器是否已安装TOA模块 注意:这里说的是 源站服务器,即源站所在的服务器,不是边缘节点服务器。 在源站服务器上执行命令: ``` lsmod|grep toa ``` 如果为空,则表示尚未安装TOA模块。 ### 步骤2:为源站服务器安装TOA模块 下载内核头文件: #### # CentOS、RockyLinux等 ``` yum install kernel-devel ``` 在此处可以下载可以编译的TOA模块源码: ``` wget "https://img-img.lwgzs.cn/admin/1/web/toa/main.zip" ``` 下载成功后解压并进入目录: ``` unzip main.zip cd toa-main/ ``` 编译: ``` make ``` 这个过程中如果找不到文件的错误提示,请把 /usr/src/kernels/3.xx.x-...x86_64 目录软链到编译时提示查找的目录,然后重新执行 make。 如果仍然编译不成功,建议查看以下几个参考链接(查看编译方法或者下载已经编译好的TOA模块,但是要注意选项类型是200(IPv4)和253(IPv6),这两个数值在集群中需要填入,客户不需要操作): [腾讯云加载TOA模块1](https://www.tencentcloud.com/zh/document/product/608/18945 "腾讯云TOA模块") [腾讯云加载TOA模块2](https://cloud.tencent.com/document/product/214/68105 "腾讯云加载TOA模块2") 编译成功后,当前目录会出现 toa.ko 文件,然后可以通过以下命令加载模块: ``` insmod toa.ko ``` 这时候再使用 lsmod 检查就会发现模块已加载: ``` root@ubuntu: lsmod|grep toa toa 282624 0 ``` 如果你的服务器需要重启,你可能需要重复编译和加载模块的过程,所以建议安装TOA模块后,不要轻易重启服务器。 ### 常见问题 启动节点时提示libnetfilter_queue.so.1: cannot open shared object file 完整提示类似于: ``` edge-toa/edge-toa: error while loading shared libraries: libnetfilter_queue.so.1: cannot open shared object file: No such file or directory ``` 这是因为系统没有安装libnetfilter_queue,可以使用以下命令安装(注意区分不同的操作系统): ``` # Ubuntu sudo apt install -y libnetfilter-queue-dev # RHEL、CentOS、Fedora、RockyLinux等 sudo yum -y -q install libnetfilter_queue ```
lwjsgzs
2024年12月7日 19:34
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码