TCP optinos 插入真实客户端源地址

在做项目的时候经常遇到客户端访问F5上的虚服务后到达服务器,中间真实的源地址被替换为F5自身的地址,但是如果在服务器和F5之前有安全审计类设备,或者服务器本身也需要看到源地址,在面对C/S架构的业务(类似手机APP)时,就需要F5采用tcp options方式透传源地址。

配置步骤:

 1.创建profile

create ltm profile tcp tcp-option-28 tcp-options "{28 first }"

2.加载irules

when LB_SELECTED { set src_cli_addr [IP::client_addr]} when SERVER_CONNECTED { scan $src_cli_addr {%d.%d.%d.%d} e b c d TCP::option set 28 [binary format cccc $e $b $c $d] all set tcp_option_content [binary format cccc $e $b $c $d] log local0. "insert tcp option is $tcp_option_content" binary scan $tcp_option_content H* cli_addr_H log local0. "source_ip is $cli_addr_H" }

3. VS加载profile TCP Standard类型

----------------------------------------------------测试效果:
日志输出:

抓包验证:在tcp三次握手后的http请求 F5out方向,发给服务器。

Author: 小胖东

发表评论