某公司AD应用负载 SANGFRO AD,负载均衡设备。 AD能分别对两个方向的数据流量进行负载: 入站链路负载——外网用户访问内网资源; 出站链路负载——内网用户访问外网资源。 出站链路负载和基础DNS知识请参考: 入站方向的数量流量又包括:入站链路负载(智能DNS)和虚拟服务(应用负载)。智能DNS请参考文档:
一.应用负载
在外网多线路内网有服务器的时候,我们一般把智能DNS和应用负载结合起来达到双优化的目的。 经过了智能DNS之后,链路的接入已经做了一次优化。能保证来访问内网服务器的这个接入线路对客户端来说是最优的。 相同的一个服务,多数情况下都是由多台服务器同时提供,达到一个负载均衡和避免单点故障的目的。 例如: 1.IP组
浏览器输入www.abc.com,客户端的LDNS就会去把这个域名解析成一个IP地址,这就跟前面说到的智能DNS关联起来了。这个时候,我拿到的这个IP地址,就是真实从外网来接入我们网络的地址。在AD里,我们叫它IP组。外网多IP的时候,IP组添加多个IP地址,外网只有1个IP的时候,就添加1个IP地址,本例中是2个外网线路的网关模式部署,旁路部署也支持应用负载。
【应用负载】-【IP组】-[新建]
2.服务
提供的服务,在AD策略中,也叫服务。 【应用负载】-【服务】-[新建] 可以看到,设备内置了一些常见的服务。如果默认的服务不是客户所对外发布的,那可以自己新建。
可以看到,新建的类型也很多。 例如,我建立一个http 的80端口的服务,名字叫abc。
3.节点池
本例中,实际提供www.abc.com这个http服务的其实是两个服务器,在AD中,我们把这两个服务器叫做“节点”。提供相同服务的服务器我们把它们放在一起,形成一个集合,就叫“节点池”。 不管外网IP是多少,最终的用户请求都是调度到真实提供服务的服务器上,跟服务器进行数据交互。
【应用负载】-【节点池】-[新建]
这时候我们看到一些很陌生又很眼熟的东西:节点选择策略、会话保持、节点状态监视器。这些是什么? 暂时先不管它,我们来看看节点池里面怎么把节点放进去。 这样,我们就在一个池子里面把节点都放进去了。
点击[完成]之后,就能在节点池里看到我新建的abc节点池。
节点选择策略 类比之前的DNS选择策略,那就是一个节点池里面有多个节点,该选择哪个节点给客户端提供服务,怎么选择? 可供选择的策略有很多。
4.会话保持 从节点池里面我们可以看到会话保持是被引用在节点池里面的。 会话保持的作用:当某个客户端第一次请求调度到了A服务器上时,保证一段时间之内,A服务器为这个客户端提供服务。 看看会话保持都有些什么方式: 【应付负载】-【会话保持】-[新建] (1)Source IP-源IP会话保持①超时时间 超时时间之内,同一个客户端的请求都是调度到同一个服务器上。超时时间根据最后一次数据交互时间实时刷新。
②子网掩码 子网掩码匹配源IP地址。当子网掩码设置成24的时候,只要是X.X.X.0这个网段的地址,都认为是同一个IP地址,都调度到一个服务器上。慎用! 另外,当客户端环境存在SNAT的情况下,也不要用源IP的会话保持方式。 (2)cookie Cookie是由服务器端生成,发送给用户终端(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,这样的话用cookie就能唯一标识一个终端。 5.节点监视器
之前说过节点了,那节点监视器就是对节点的一个监视机制。实时去检测该节点是否正常,是否能为客户端提供完整的服务。一旦某个节点故障了,能够及时发现并且停止对该节点的调度。 由上图可以看到,AD内置了很多种节点监视器,对节点的检测方式多种多样,应有尽有。点击[新建]
(1)ICMP 基于ICMP的检测方式,也就是常用的ping命令。设备会模拟成客户端定时去ping节点池内的节点地址,从网络层面检测节点是否网络可到。 ①间隔时间 每次ping的间隔时间。
②超时时间 节点在多长时间内没有给我回包,就认为ping请求超时。例如设置成2秒,那就是过了2秒没有ping通,暂且认为该节点故障,还会再次尝试去ping以确认是否故障。
③尝试次数 过了超时时间没有ping通,尝试再去ping的次数。设置成3就是再去ping 3次。都没有在2秒内回包,则认为节点故障,标记成不可用节点。
④监视地址 “*”表示监视节点池内的所有地址,也可以指定单个IP地址。 注意:如果节点标记为失效,节点监视器还是会依照间隔时间去监视节点状态,一旦节点恢复,就会启用该节点。
(2)HTTP 如果节点提供的是HTTP的服务,AD就会模拟客户端发起HTTP的请求,测试应用层面的节点是否能正常提供服务。 ①请求URL 对哪个URL进行HTTP的请求
②响应状态码 发起请求,如果状态码是200,或者302则认为应用正常。可以自己定义。
更多节点监视器的使用方式按照客户实际情况选择。
了解了会话保持和节点监视器的功能和使用方法,我们再回到节点池。 从abc这个节点池里面选择节点的时候,采用“轮询”方式交替是选择,第一个请求调度到A服务器上,那第二个请求就调度到B服务器上。 调度到服务器上之后,采用abc(参考前面的截图-源IP方式)的会话保持方式。 节点监视器采用了ping和http两种方式,能ping通或者能http访问到,就认为节点正常。
6.虚拟服务
节点池将“节点”、“会话保持”、“节点监视器”关联在一起。那虚拟服务就是将“IP组”、“服务”、“节点池”关联在一起的策略。
【应用负载】-【虚拟服务】-[新建] 四层是基于传输层的端口转发,类似于端口映射的原理,只是可以做到负载的效果,七层是基于应用层的应用识别,可以针对具体的应用,做一些改写策略等。
这样,一个完整的服务器负载就建立完成了。 注意:当AD设备单臂部署只做应用负载的时候,一定要启用SNAT。 |