微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

centos7 编译加载toa模块

slb aide_941 9℃
lvs中4层tcp中DR模式把请求数据包的ip封装了到了tcp的头中,这时候在7层nginx无法获取用户真实ip,需要安装toa模块解析出来tcp头中的用户真实ip,toa模块是为了让后端的realserver能够看到真实的clientip而不是lvs的dip。,安装如下:

1.安装kernel-devel包,需要与当前kernel版本一致
yum install kernel-devel
yum update kernel
2.由于update内核后,需要重启系统使其生效
3.获取toa源码
cd /usr/local/src/
git clone https://github.com/huaweicloud/elb-toa.git
cd elb-toa/src
make
4.正常的话应该会生成toa.ko,加载测试下
insmod toa.ko
lsmod |grep toa

  1. 部署个nginx测试下
  2. 添加开机自加载
    cd /lib/modules/uname -r/kernel/net/
    cp /usr/local/src/elb-toa/src/toa.ko .
    把下面这句加入rc.local
    insmod /lib/modules/3.10.0-957.21.3.el7.x86_64/kernel/net/toa.ko
    确保/etc/rc.d/rc.local 有执行权限,否则rc.local不生效

参考:https://support.huaweicloud.com/eu-west-0-usermanual-elb/zh_cn_elb_06_0001.html

 

toa模块是为了让后端的realserver能够看到真实的clientip而不是lvs的dip。
1、下载http://kb.linuxvirtualserver.org … 86_64.rs.src.tar.gz
2、解压
3、编辑.config,将CONFIG_IPV6=M改成CONFIG_IPV6=y
测试的时候发现如果不改会遇到报错,可以看下这个帖子:http://bbs.linuxtone.org/forum.p … 1631&pid=111599
4、编辑Makefile,可以在EXTRAVERSION =处加上自定义的一些说明,将会在uname -r中显示。比如-shanks.e11.x86_64
5、make -jn
6、make modules_install
7、make install
8、修改/boot/grub/grub.conf     用第一个内核启动
9、reboot
10、装个nginx,试试看能不能看见真实的clientip。
参考:http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY

转载请注明:SuperIT » centos7 编译加载toa模块

喜欢 (1)or分享 (0)