发新话题
打印

[分享] 【原创】F5+MS TS+TS Session directory 服务器部署

【原创】F5+MS TS+TS Session directory 服务器部署

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解决方案)

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)上开一个应用程序窗口,并直接强行关闭远程连接,以便一会测试效果。

www.myf5.cn


开始测试:
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
      3)用户填入用户名和密码,并点确定后,TS-B向会话服务器查询,看这个用户名是否有断开的会话在。
      4)会话服务器告知TS-B,在TS-A上有这个用户的会话
      5)TS-B接到通知后,告诉客户机:重新连接集群虚拟IP(这里是VS地址),并向负载均衡设备出示令牌
      6)客户机开始重新连接集群虚拟IP,并出示令牌
      7)F5发现令牌,并从中得知客户机需要连接令牌中告知的TS服务器IP,于是F5连接新TS服务器(这里是TS-A)

附加测试:找一个可以和TS能直接通信的客户端,此时勾上第一张图上的复选框,效果是客户机直接被重定向到TS-A:
TCP    172.20.20.86:2546      172.20.20.100:3389     ESTABLISHED




整个配置测试结束,如果没有F5-LTM设备,则也可以利用windows本身NLB功能来实现,不过windows的NLB必须要求客户端和TS是可以直接通的。
小漏,把你裤子脱了,快点!检查!
欢迎订阅我的博客:
http://www.mycisco.cn/post/302.html

TOP

TOP

搞笑 铃声

提示: 作者被禁止或删除 内容自动屏蔽

TOP

TOP

发新话题