非阿里云ECS服务器主机配置了DDoS高防后,由于业务请求流量先经过DDoS高防清洗过滤再转发到源站服务器,源站无法直接获取真实的请求来源IP。这种情况下建议您使用本文介绍的方法,在源站上配置toa模块来获取真实的请求来源IP。

背景信息

本文介绍的方法支持以下操作系统:
  • Redhat Linux
  • CentOS 6.x
  • CentOS 7.x

使用须知

  • 建议您先在测试环境中执行本文描述的操作,观察环境稳定后再在正式环境中进行配置。
  • 建议您保留原有的内核,如果出现重启失败,可以切换到原有内核执行系统恢复。

操作步骤

  1. 根据您的服务器系统类型,下载相应的内核安装文件。
  2. 安装内核。
    • CentOS 7.x系统

      定位到安装文件目录,执行以下命令:

      sudo yum localinstall kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm
      说明 建议您使用yum localinstall命令安装内核,避免出现依赖问题。您也可以执行sudo rpm -ivh kernel-3.10.0-957.21.3.el7.toa.x86_64.rpm命令进行安装。
    • CentOS 6.x或Redhat Linux系统

      定位到安装文件目录,执行以下命令:

      sudo rpm -ivh kernel-2.6.32-220.23.2.ali_github.el6.x86_64.rpm
      sudo rpm -ivh kernel-firmware-2.6.32-220.23.2.ali_github.el6.x86_64.rpm
      说明 CentOS 6.2以上版本系统不需要安装kernel-firmware,即只需要执行上述第一行命令。
  3. 设置toa模块,开启系统启动时自动加载功能。
    1. 创建文件/etc/sysconfig/modules/toa.modules,并在文件中添加以下内容:
      !/bin/bash
      if [ -e /lib/modules/uname -r/kernel/net/toa/toa.ko ] ;
      then 
      modprobe toa > /dev/null 2>&1
      fi                            
    2. 执行以下命令,授予toa.modules文件可执行权限。
      sudo chmod +x /etc/sysconfig/modules/toa.modules
  4. 执行reboot命令,重启系统。
    安装完成后,主机能够正常获取真实访问源IP。

    如果仍无法获取真实访问源IP,建议您执行lsmod|grep toa命令检测toa模块的加载情况。如果toa模块未加载,您可以执行modprobe toa命令手动加载。加载成功后,重新测试主机能否获取真实访问源IP。

相关问题

  • 网络连接通过toa模块转换,对性能有多大影响?

    toa模块是部署在旁路的,因此对网络性能几乎没有影响。

  • 如果担心加载新的内核模块可能出现稳定性问题怎么办?

    建议您保留原有的内核,如果出现重启失败,可以切换到原有内核执行系统恢复。