TOA(tcp option adress)安裝

1.說明

1.1.場景說明

TOA 屬於 4層轉發系統的一個功能模塊,缺省情況下服務經過 4層轉發系統,服務源站查看到的請求IP爲NAT的回源地址,這對於一些特殊業務來說(比如遊戲),是無法滿足的,TOA的功能就是讓真實源服務源站獲取訪問者真實IP地址,該模塊安裝在源站服務器上。以下爲 TOA 的侷限性:

  • 僅支持 TCP 協議
  • 僅支持 IPv4
  • 僅支持 Linux 操作系統

1.2.前提條件

  • 編譯TOA 內核模塊時,當前的內核版本與需與內核開發包版本保持一致

  • 需要 root 權限

  • 在代理節點開啓對應轉發規則

  • 使用任意客戶端訪問代理節點業務IP,源站正常可以看到客戶端IP,而代理節點業務IP

2.安裝

2.1.共通

sudo yum -y install gcc
sudo yum -y install make
sudo yum -y install kernel-devel-`uname -r`
sudo yum -y install kernel-headers-`uname -r`

進入toa內核目錄:cd /lib/modules/uname -r/kernel/net/toa/
卸載toa,執行:rmmod toa
重新掛載本目錄下的新的toa,執行:modprobe toa (或 insmod ./toa.ko) 若無任何報錯,即爲安裝成功,
通過命令:lsmod | grep toa ,將會顯示出已安裝的toa模塊

2.2.Centos6

2.6.32-754.9.1.el6.x86_64

2.3.Centos7

3.10.0-327.el7.x86_64
系統源碼包下載地址

2.3.0.原理

TOA的kind(即代碼字段opcode)採用的是254 tcp options
ipv4時佔用Options 8字節,ipv6時將佔用20字節
在這裏插入圖片描述在這裏插入圖片描述

2.3.1.源碼編譯

git clone https://github.com/Huawei/TCP_option_address.git
cd src
make

2.3.2.加載內核

執行如下命令,加載內核模塊。
sudo insmod toa.ko
執行如下命令,驗證模塊加載情況,查看內核輸出信息。
dmesg | grep TOA
若提示信息包含“TOA: toa loaded”,說明內核模塊加載成功。
可執行lsmod|grep toa命令檢測 toa 模塊加載情況
通過執行 modprobe toa 命令手動加載

2.3.3.開機啓動自動加載

vi /etc/sysconfig/modules/toa.modules
#!/bin/sh
toapath=/root/toa/toa.ko
/sbin/modinfo -F filename $toapath > /dev/null 2>&1

if [ $? -eq 0 ]; then

/sbin/insmod $toapath

fi

chmod +x /etc/sysconfig/modules/toa.modules

或者

echo “modprobe toa” >> /etc/rc.d/rc.local

3.參考

toa模塊-編譯centos5/6版本
toa協議源碼解析
騰訊雲toa.pdf
TOA 實現原理
TOA與Proxy Protocol

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章