GSLB全局负载均衡技术介绍

GSLB理论知识梳理


GSLB算法介绍

Citrix NetScaler的全局负载均衡(GSLB)功能可以把客户对一个网站的访问请求引导到分布在Internet上多个站点中性能最佳的一个站点。从而实现用户的就近访问,站点之间的负载均衡和远程容灾。

NetScaler支持的全局负载均衡算法(量度方法)如下

1. ROUNDROBIN——轮询

2. SOURCEIPHASH——源IP地址散列

3. LEASTCONNECTION——站点服务器连接数最少

4. LEASTRESPONSETIME——站点服务器响应最快

5. LEASTBANDWIDTH——站点带宽最低

6. LEASTPACKETS——站点数据包最少

7. CUSTOMLOAD——自定义的基于SNMP的判断

8. STATICPROXIMITY——静态的就近性

9. RTT——动态的就近性

上述算法中的第1、2种算法的作用主要是将客户端的访问均匀的分散到各个站点,实现站点之间的负载均衡和远程容灾;

第3-7种算法可以将用户端的请求引导到服务器性能最好或服务器最空闲的站点,主要用在服务器运算密集型的应用场景;

第8-9种算法可以将用户端的请求引导到距离用户最近的站点,实现用户的就近访问。

NetScaler可以根据用户所在的地理位置和用户使用的ISP链路,选择用户访问Web站点接入的ISP链路(电信,或网通)。Citrix NetScaler的全局负载均衡功能是基于DNS实现的,并由NetScaler系统自动智能判断。

当NetScaler收到一个DNS请求后,

1. 如果该请求是来自网通或电信的IP地址段,则根据静态就近性算法,判断此用户是网通还是电信用户,并返回响应的解析结果给用户,即网通用户使其通过网通链路访问站点,电信用户使其通过电信链路访问站点。

其中,静态就近性算法是指NetScaler依靠一个预先手工配置好的”IP地址与地理位置的映射列表”选择就近的站点,例如,我们可以在NetScaler中配置以下信息

100.100.100.0/24 中国.网通.北京

100.100.101.0/24 中国.网通.河北.石家庄

100.100.102.0/24 中国.网通.河北.保定

100.100.103.0/24 中国.网通.河北.唐山

100.100.111.0/24 中国.网通.山东.济南

100.100.112.0/24 中国.网通.山东.青岛

200.100.100.0/24 中国.电信.北京

200.100.100.0/24 中国.电信.上海

… …

当一个客户端访问NetScaler时,NetScaler根据用户端的源IP地址在列表中查询出其所处的地理位置或运营商信息,并与各个站点的地址位置和运营商信息进行匹配,匹配长度最长的站点一定是距离客户端最近的站点或相同的运营商,NetScaler就使用该站点或运营商的IP地址响应DNS请求。

2. 如果用户请求是来自非电信或网通的IP地址段,我们不确定该用户通过网通还是电信的链路访问那个站点效果更好,则可以让两台NetScaler分别通过动态的就近性算法探测用户的本地DNS服务器,测量由客户端网络分别通过网通和电信链路到达本站的速度,并依据这个量度,选择速度最快的链路,解析域名到该运营商对应的IP地址,从而将用户引导到该链路。

3. 如果通过动态就近性算法探测发现用户通过网通链路和电信链路访问站点的速度相同,NetScaler则采用轮询算法(ROUND ROBIN)将用户访问平均分配到网通和电信两条链路上,确保入站流量的负载均衡。

4. 当电信或网通链路中的一条发生故障,无法正常工作时,NetScaler会自动发现,并把用户访问全部集中到正常工作的另一条链路上,从而确保电信与网通链路的高可用性。

动态域名解析工作模式

NetScaler设备本身支持三种工作模式,即:权威DNS(ADNS)模式,DNS代理模式以及GSLB子域模式。

权威DNS(ADNS)模式

NetScaler作为一个权威DNS服务器, NetScaler保存各种类型的DNS记录,并且全部由NetScaler解析用户的DNS请求。我们可以通过在NetScaler上配置ADNS服务并且添加NS记录和A记录,确保NetScaler成为本域的权威DNS服务器。

DNS代理模式

NetScaler作为一个DNS代理,NetScaler作为用户现有DNS服务器的代理。当有用户请求发送到NetScaler,NetScaler查询后端现有的DNS服务器,并且把结果返回给用户,并且缓存解析结果。当有其他用户请求解析相同的域名时,NetScaler首先查询自己的缓存,如果有记录则返回给用户,如果缓存中没有记录,则向后端的DNS服务器发起查询。

GSLB子域模式

例如abcd.com网站希望对www.abcd.com服务进行全局负载均衡,就可以在abcd.com域的权威DNS上设置一个子域名gslb.abcd.com,并将这个子域名的ns记录指向NetScaler。同时,使用CNAME将www.abcd.com指向www.gslb.abcd.com。NetScaler只作为gslb.abcd.com域的权威DNS,使用全局负载均衡的算法动态解析www.gslb.abcd.com。通过上述部署,就可以实现对www.abcd.com的全局负载均衡,同时,不影响现有abcd.com域权威DNS上的其他设置。

GSLB通通信协议MEP

  • UDP端口3003用于交换心跳的通信UP或DOWN状态
  • TCP端口3008是用于安全的高可用性配置同步
  • TCP端口3009用于安全命令传播和Metric Exchange Protocol(MEP)
  • TCP端口3010是用于高可用性配置同步
  • TCP端口3011是用于命令传输和MEP

 

GSLB实验


实验拓扑


重要概念

1、GSLB 全局负载均衡

2、LB 负载均衡

GSLB是存在于LB之前的应用,它负责将流量引导到LB上再由LB将流量引导至相应的服务器。

Client>>DNS>>GSLB>>LB>>SERVER

1、client向dns server发送请求解析相应主机的ip地址。

2、dns server将请求转发至GSLB。

3、GSLB根据策略返回相应的LB上的VIP给Client。

4、Client向LB的VIP发起请求建立连接。

5、LB将请求转发至对应server。

架构介绍

1、DC1为模拟数据中心1的架构,内网网段为192.168.1.0/24,真实web server为192.168.1.100/24,LB上的VIP为12.1.1.200/24,GSLB通信IP为12.1.1.10,12.1.1.0/24模拟Internet网段。

2、DC2为模拟数据中心2的架构,内网网段为192.168.2.0/24,真实web server为192.168.2.100/24,LB上的VIP为13.1.1.200/24,GSLB通信IP为13.1.1.10,13.1.1.0/24模拟Internet网段。

DC1 Netscaler配置介绍

本章节介绍DC1 Netsacler 的配置,同理DC2 Netsacler 的配置相反配置即可。

Setup 1 配置IP

配置LB使用的VIP:12.1.1.200


在弹出页面填写信息,并点击create。



确认信息如下


配置LB使用的与WEB1通信的subnet IP:192.168.1.200

点击Add按钮


在弹出页面填写信息,并点击create。



确认信息如下


配置GSLP通信使用的GSLB IP:12.1.1.10


在弹出页面填写信息,并点击create。



确认信息如下


Setup 2 配置LB

配置Servers


在弹出页面填写信息,并点击create。


确认信息如下


配置Services


在弹出页面填写信息,并点击create。


继续下一步


下一步


下一步


下一步


下一步


确认信息如下


创建 Virtual Servers


在弹出页面填写信息,并点击OK。


下一步


下一步


下一步


下一步


确认信息如下


Setup 3 配置GSLB

与DC2 GSLB建立关系


在弹出页面新增本地服务


在弹出页面新增DC2服务


新增 DC1 GSLB Services


在弹出页面填写信息


下一步


确认信息如下


3、新增 DC2 GSLB Services


在弹出页面填写信息


下一步


确认信息如下


新增 DC1 GSLB Virtual Servers


弹出页面填写信息


下一步


下一步


下一步


下一步


确认如下信息



Setup 4 配置STATICPROXIMITY——静态的就近性

设备本身内置了一张全球IP分布的表。

/var/netscaler/inbuilt_db/Citrix_Netscaler_InBuilt_GeoIP_DB.csv

设备会根据GSLB Virtual Servers填写的IP来匹配与客户端DNS的IP所在的位置进行就近分配。

自定义就近分配策略。

可以新增文件按照如下格式填写,前面4行不变。

NSGEO1.0

Context=custom

Qualifier1=sitename

Start

“10.1.2.0”,”10.1.2.255″,”DC1″

“12.1.1.0”,”12.1.1.255″,”DC1″

“10.1.3.0”,”10.1.3.255″,”DC2″

“13.1.1.0”,”13.1.1.255″,”DC2″

起始IP 结束IP 站点名称(就是在GSLB Sites )

加入12.1.1.0 是为了让设备知道12.1.1.0就是和10.1.2.0是同一个地点。

达到的效果就是10.1.2.0的用户访问www.gslb.rtest.com的时候优先访问到DC1,当DC1故障的时候访问到DC2。

“10.1.2.0”,”10.1.2.255″,”DC1″

“12.1.1.0”,”12.1.1.255″,”DC1″


填写好后将文件通过SSH SFTP的方式上传至设备/var/netscaler/locdb



在设备中调用该策略


下一步


确认信息


也可以在策略中填写


弹出页面填写信息


添加所有需要自定义的网段


Setup 5 配置DNS 用于客户端的解析(同理公网DNS服务器需要将NS记录指向该IP)


下一步


确认信息


下一步


下一步

参考文档

NetScaler GSLB配置指南

Work Blog » GSLB全局负载均衡技术介绍
分享到:
赞(0) 打赏

评论抢沙发

评论前必须登录!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏