# huaweicloud-tool-aad-toa **Repository Path**: mirrors_huaweicloud/huaweicloud-tool-aad-toa ## Basic Information - **Project Name**: huaweicloud-tool-aad-toa - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-08 - **Last Updated**: 2025-10-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README huaweicloud-tool-aad-toa ------------------------ 华为高防(https://www.huaweicloud.com/product/aad.html) 专用toa模块,在开源toa的基础上做了优化,用于在服务端解析真实源ip,可直接在Linux服务器上编译安装。 ## 版本选择 ## 当前git仓库有4套toa代码: centos6.5————对应Linux内核2.6.x centos7————对应Linux内核3.10.x toa_common————通用版本toa,一般针对Linux内核3.0及其以上的系统,如Ubuntu 14/16 、Suse 11/42等 toa_linux-2.6.32-220.23.1.el6.x86_64.rs————对应指定的版本:linux-2.6.32-220.23.1.el6.x86_64.rs 选择时根据最匹配用户系统版本的那一套代码即可。 ## 编译安装 ## 下载代码并进入对应版本目录下,执行: ```shell 1、 make ``` > 根据自己的服务器版本而定,有gcc即可; 如果报错显示找不到指定/lib/modules/xxxx/build/目录,表示系统缺少相关的头文件,无法编译,此时需要在系统上安装缺少的头文件 执行: ``` yum install kernel-devel yum install kernel-headers ``` >>以上表示从默认的repo源下载内核相关扩展文件,安装之后一般情况在:/lib/modules/`uname -r`/build/目录下就会有正确的源码文件,若此目录报红,表示路径不正确,有可能此种方法安装的扩展源码版本与系统源码版本还是不对应,结果仍然无法编译。此时, 可以考虑替换内核版本,执行: ``` yum install kernel yum install kernel-firmware yum install kernel-devel yum install kernel-headers ``` >>>安装内核源码,默认以上的四个命令安装的版本都是一样的(安装的时候可以看到,如果不一样,那就不能达到预计效果),安装完成之后 在"/lib/modules/xxx"目录下就可以看到新的内核,对应的build目录下是有正常内容的,此时需要将已有的系统内核切换到新的: 此处提供centos7的切换方法,首先查询新的内核版本的具体名称,执行: ``` cat /boot/grub2/grub.cfg | grep menuentry ``` >>>>执行结果: 'menuentry 'CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.2.2.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {menuentry 'CentOS Linux (3.10.0-693.2.2.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.2.2.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {menuentry 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-693.el7.x86_64-advanced-eb448abb-3012-4d8d-bcde-94434d586a31' {......' >>>'CentOS Linux (3.10.0-862.11.6.el7.x86_64) 7 (Core)'此版本即为我新install的版本。 设置切换默认内核,执行: ``` grub2-set-default "CentOS Linux (3.10.0-862.11.6.el7.x86_64)" ``` >>>不报错即为成功 >>重启生效,执行: ``` reboot ``` >>重启之后查看当前内核是否替换成功,执行: ``` uname -r ``` >>结果显示:“3.10.0-862.11.6.el7.x86_64” ,即为成功,之后在回到toa的源码目录,make即可。 >>注意:内核的替换是有风险的,可能造成某些依赖底层的功能失效,甚至造成不可估量的结果。建议是在不需要太过依赖指定内核版本的情况下替换,替换之后,为保证原有进程的可靠性,建议充分测试。 ``` 2、rmmod toa #卸载以前的toa版本 3、insmod toa.ko #挂载编译好的toa 4、lsmod | grep toa #查看是否成功,有显示即为成功 ``` ## 常见问题 ## 以下解决重启自动加载toa的问题: >make成功之后在本目录下会生成toa.ko,可将此toa.ko复制到: >/lib/modules/3.10.0-862.11.6.el7.x86_64/kernel/net/netfilter/ipvs/ 目录下: ``` cp toa.ko /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/ #不一定存放在此目录,只是为了重启之后被加载 ``` >>此处提供centos重启挂载toa的方式: >>在/etc/sysconfig/modules/目录下加入脚本文件,方便重启加载toa ``` cd /etc/sysconfig/modules/ echo "insmod /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko" > toa.modules # 创建toa.modules文件用于重启默认加载 chmod 755 toa.modules #增加权限,重启即可生效 ``` >>此处还提供ubuntu14重启挂载toa的方式: >>修改/etc/rc.local 配置文件,在文件初始行加入:"insmod /lib/modules/`uname -r`/kernel/net/netfilter/ipvs/toa.ko",即可。 ## 其他 ## 有任何建议请与我们留言