2008年第一天,值班,于是研究了下Terminal和会话目录服务器配合F5的负载均衡。这在大量用户利用终端服务工作,并需要每次都能连上自己中断的会话非常有用。也因此可以避免用户在不同的终端服务器上留下自己的孤儿会话,避免资源浪费。
网络结构是:
F5旁挂在核心交换机上,self ip:192.168.162.254
配置一个POOL:172.20.20.100:3389,172.20.20.211:3389,轮询:最小连接数(结点),TCP健康检查
配置一个VS:192.168.162.253:3389,使用标准TCP类型,并且给pool指定ms_ts_profile(这个profile是预先配置的,父profile是msrdp,具体可在F5网站上查阅TS解决方案)
F5旁挂在核心交换机上,self ip:192.168.162.254
配置一个POOL:172.20.20.100:3389,172.20.20.211:3389,轮询:最小连接数(结点),TCP健康检查
配置一个VS:192.168.162.253:3389,使用标准TCP类型,并且给pool指定ms_ts_profile(这个profile是预先配置的,父profile是msrdp,具体可在F5网站上查阅TS解决方案)
pool,VS均为绿色。
172.20.20.100和172.20.20.211都是TS服务器,分别叫TS-A,TS-B,同时172.20.20.100兼做Session directory 服务器。
另有两台客户机:10.7.21.38,10.7.21.39,客户机器只和VS地址通,与TS服务器不直接通。
所有操作系统都是WIN2003 企业版
实际测试结果:
客户机连接192.168.162.253:3389,被定向到TS-A,在上面开个IE。
换个客户机连VS,并定向到TS-B,还用前面相同的用户名密码登录,却没有出现希望的效果:被重定向到TS-A上(按照微软的说法,这个用户应该最终连到之前拥有会话的服务器上)
这个会是什么原因呢。是F5问题还是会话服务器没生效。好郁闷。
经过分析,最后发现问题所在:
登录的帐号必须是统一的域帐号,用本地帐号不行,计算2机器的本地帐号名一样。这个地方在MS手册上却说没有说明,MS手册上说目前与域没有太大关系,将来会增加更多的与域集成(难道是手册太老????我看的是2007.11更新过的官方手册啊,晕死)。
下面总结下配置方法和步骤:
一、MS系统配置
前提:所有服务器都使用2003 企业版以上系统,全部加入域
1.配置一台TSSD服务器 将Terminal session directory service启用,并设置为“自动”。启用该服务后,将在SYSTEM32下创建 tssesdir 目录,该目录就是会话服务器的数据库目录。同时还会创建一个session directory computers组,此时该组没有成员,通过选择计算机将所有TS计算机名加入该组中,否则后面的步骤将无法完成。
2. 配置各个Terminal服务器,注意不是配置成remote desktop哦,然后在终端服务配置里的 会话目录 属性中按如下配置:
图中最后一个选项意义,后面再说。
二、配置F5
按照F5官方部署WTS向导手册配置。
1.profile的配置
2.POOL配置:
将各个TS加入池中,均衡算法自行设置,一般选择按最小连接数
3.配置VS,大部分是缺省设置,我这里由于是旁挂,所以启用了snat.具体实际环境具体对待。
4.VS的资源中调用上述池及配置的profile即可。
按上述都配置完毕后,先使用客户机直接连接单独的172.20.20.100(TS-A)服务器,并在172.20.20.100(TS-A)上开一个应用程序窗口,并直接强行关闭远程连接,以便一会测试效果。
开始测试:
1.使用客户机连接到192.168.162.253:3389上,很巧,F5随机给了我TS-B服务器使用(如果你不巧,正好连到TS-A上,那就换客户端连,直到是给你TS-B服务器用),填入域帐号登录(你之前肯定要配好让这个域帐号有权限远程登录),点确定。你会发现半天没界面出现,是的,确实是这样,因为之前的配置错了(别扔鸡蛋,因为是故意这样的,以便理解其中的奥秘)。此时看netstat:
TCP 10.7.21.38:4023 172.20.20.100:3389 SYN_SENT
客户机IP竟然直接连TS-A了,而且没有SYN+ACK,等待握手中。这是由于在配置TS的终端服务中(第一个张图)我们选择了最后的勾。如果选择了这个,则整个通信过程是这样的:
1).客户机访问虚拟集群地址,这里是192.168.162.253
2).F5随机选择一个实际TS给客户,这里是选择了TS-B
3).用户填入用户名和密码,并点确定后,TS-B向会话服务器查询,看这个用户名是否有断开的会话在。
4).会话服务器告知TS-B,在TS-A上有这个用户的会话
5).TS-B接到通知后,告诉客户机应该连接到TS-A上,于是客户端会重新自动向TS-A连接,而上面的网络环境,客户机是不可以和TS直接通信的,所以就出现了上面的问题。
解决方法就是:在各个TS上,不要选择最后的选框。全部不选后,再重新测试,一切正常,TCP连接过程如下:
输入用户名、密码前:TCP 10.7.21.38:4027 192.168.162.253:3389 ESTABLISHED
输入用户名、密码后,界面显示的是TS-A的内容,而且在整个过程,可以看到瞬间重定向连接的界面效果。此时TCP:
TCP 10.7.21.38:4027 192.168.162.253:3389 ESTABLISHED,看么有变.
为什么此时不变了呢?因为我们启用了路由令牌模式,此时的通信过程如下:
1) 客户机访问虚拟集群地址,这里是192.168.162.253
2)F5随机选择一个实际TS给客户,这里是选择了TS-B
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
文章评论
你好,请问有什么f5的书推荐?