实验拓扑如下,实验环境搭建参考https://www.cnblogs.com/romin/p/17825779.html 实验前提条件: 1、拥有类似拓扑一样的实验环境; 2、搭建简单的web服务器,比如上图的172.16.128.0、172.16.128.1、172.16.128.2三台服务器可以对外提供http和https服务 实验初始配置: 1、新建如下的pool和VS
tcpdump -nni 0.0 -s0 host 10.1.10.129 -vvv -w /var/tmp/romin-vs.pcap
可以发现,能打开服务器的对外服务页面
抓包发现,数据是被加密了;因为数据被加密了,所以也无法使用irules根据http request进行分发
修改vs_https_10.1.10.129使用http profile
抓包再次访问,发现访问失败,这说明在F5不对https流量进行解密的情况下,是不可以调用http profile的
抓包可以发现,https的TLS协商都未完成,去掉http profile,恢复实验环境
实验二、服务器对外提供https服务,F5对外提供http服务是否可行(可行,但是要添加server ssl profile)
将vs_http_10.1.10.129改成调用pool_https_10.1.10.129,然后访问http://10.1.10.129.,同时抓包
结果发现请求失败
抓包发现服务器返回了400状态码,所以这样子是行不通的
在F5上调用系统默认的server ssl profile,刷新页面,发现可以正常打开页面
抓包的数据前端是http流量,后端是https流量
实验三、验证服务器使用http服务,F5对外提供https业务是否可行(可行,但是要添加client ssl profile),添加了client ssl profile后,还可以添加http profile
新建一个https_vs_test,地址为10.1.10.132,对外提供443服务,但是调用pool_http_10.1.10.129
访问发现报错
可以看到tls握手是失败的
添加client ssl profile后,发现可以打得开登录页面了
抓包的数据前端是https流量,后端是http流量
恢复原本的配置,恢复实验环境
实验四、验证同时使用clent ssl profile和server ssl profile
访问vs_https_10.1.10.129,https://10.1.10.129发现前后端数据都是经过tls加密的
给vs_https_10.1.10.129同时添加上client ssl profile和server ssl profile,再次访问并抓包;虽然都是加密的,但是实际上F5以及对数据包进行解密,并重新加密,这样的话,F5就可以配置irules和cookie profile;同时也可以看到,和之前的tls协商的算法也有变化,没挂client ssl profile的时候,是不能使用http profile的,挂了后才能使用
实验五、在实验四的基础上,添加cookie persistence,并挂上http profile
添加一个cookie persistence
重置当前的pool 统计信息
再次访问https://10.1.10.129,只访问一次同时抓包,可以看到数据分到了172.16.128.0这台服务器上,只要cookie相同,流量就会一直发到该设备上;这在一些购物网站上非常有用
然后也可以看到,cookie是F5插入的
标签:profile,10.1,http,F5,SSL,https,172.16,10.129
From: https://www.cnblogs.com/romin/p/17834997.html