Citrix ADC

配置直径负载平衡

直径协议是下一代身份验证,授权和会计(AAA)信令协议,主要用于笔记本电脑和手机等移动设备。它是一种对等协议,而不是大多数其他协议使用的传统客户端-服务器模型。但是,在大多数直径部署中,客户端会发出请求,服务器会响应请求。

当直径消息交换时,直径服务器通常比直径客户端执行更多的处理。随着控制平面信号量的增加,直径服务器成为瓶颈。因此,直径消息必须负载平衡到多个服务器。执行直径消息负载平衡的虚拟服务器具有以下优势:

  • 直径服务器上的负载更轻,这意味着对最终用户的响应时间更快。
  • 服务器运行状况监视和更好的故障转移功能。
  • 在服务器添加方面更好的可扩展性,而无需更改客户端配置。
  • 高可用性。
  • SSL-Diameter卸载。

下图显示了Citrix ADC部署中的直径系统:

diameter-system

直径系统具有以下组件:

  • 直径客户端。除了基本协议外,还支持直径客户端应用程序。直径客户端通常在网络边缘的设备中实现,并为该网络提供访问控制服务。直径客户端的典型示例是网络访问服务器(NAS)和移动IP外部代理(FA)。
  • 直径代理。提供中继、代理、重定向或转换服务。Citrix ADC设备(配置了 Diameter 负载平衡虚拟服务器)扮演 Diameter 代理的角色。
  • 直径服务器。处理特定领域的身份验证、授权和记帐请求。除了基本协议之外,直径服务器还必须支持直径服务器应用程序。

在典型的直径拓扑中,当最终用户设备(如移动电话)需要服务时,它会向直径客户端发送请求。每个直径客户端与直径基本协议RFC 6733指定直径的服务器建立单个连接(TCP连接sctp不受支持)。连接寿命长,两个直径节点(客户端和服务器)之间的所有消息都通过此连接进行交换。Citrix ADC使用基于消息的负载平衡。

示例:

移动服务提供商使用直径进行计费系统。当订阅者使用预付数字时,直径客户端会反复向服务器发送请求以检查可用余额。直径协议在客户端和服务器之间建立连接,并通过该连接交换所有请求。基于连接的负载平衡是毫无意义的,因为只有一个连接。但是,随着连接上有大量消息,基于消息的负载平衡加快了对预付费移动用户计费的过程。

直径负载均衡的工作原理

断开对等请求(dpr)表示对等方关闭连接的意图以及关闭连接的原因。同行回复dpa (tcp始终提供成功的dpa)。

  • 当设备从客户端接收DPR时,它将DPR广播到所有服务器,并立即用dpa回复客户端。服务器使用dppa进行回复,但设备忽略它们。客户端发送fin,设备将其广播到所有服务器。
  • 当设备从服务器接收DPR时,它将单独使用DPA回复该服务器,并且不会从重用池中删除该服务器。当服务器发送fin时,设备会使用fin / ack进行回复,并从重用池中删除连接。
  • 如果设备从客户端收到翅片,它会向客户端发送鳍/ ACK,广播鳍,并立即从重用池中删除服务器连接。
  • 如果设备从服务器接收fin,则会发送fin / ack并将其从重用池中删除。此服务器的任何新消息都会在新连接上发送。

负载平衡直径流量

当客户端向Citrix ADC设备发送请求时,设备会解析该请求,然后根据持久avon将其负载平衡到直径服务器。设备已将客户端标识公告到服务器,因此它不添加路由条目,因为服务器直接从客户端收到消息。

服务器启动的请求不像客户端请求那么频繁。服务器启动的请求与客户端启动的请求类似,但以下情况除外:

  • 由于消息是从多个服务器接收的,因此设备通过向每个转发的请求消息添加一个唯一的跳跃(HBYH)编号来维护事务状态。当消息响应到达时(具有相同的HBYH号码),设备会将此HBYH号码转换为请求到达时在服务器上收到的HBYH号码。
  • Citrix ADC设备通过放置其标识来添加路由条目,因为客户端将该设备视为中继代理。

注意:如果”直径”消息跨越多个数据包,设备将这些数据包累积在不完整的头队列中,并在积累完整消息时将它们转发到服务器。同样,如果单个数据包包含多条直径消息,则设备将分割数据包并将消息转发到由负载平衡虚拟服务器确定的服务器。

与会话断开连接

断开对等请求(dpr)表示对等方关闭连接的意图以及关闭连接的原因。同行回复dpa (tcp始终提供成功的dpa)。

  • Citrix ADC设备从客户端接收DPR时,它会将DPR广播到所有服务器,并立即使用DPA回复客户端。服务器使用dppa进行回复,但设备忽略它们。客户端发送fin,设备将其广播到所有服务器。
  • 当设备从服务器接收DPR时,它将单独使用DPA回复该服务器,并且不会从重用池中删除该服务器。当服务器发送fin时,设备会使用fin / ack进行回复,并从重用池中删除连接。
  • 如果设备从客户端收到翅片,它会向客户端发送鳍/ ACK,广播鳍,并立即从重用池中删除服务器连接。
  • 如果设备从服务器接收fin,则会发送fin / ack并将其从重用池中删除。此服务器的任何新消息都会在新连接上发送。

为直径流量配置负载平衡

要将Citrix ADC设备配置为负载平衡直径流量,必须先在设备上设置直径参数,然后添加直径监视器,添加直径服务,将服务绑定到监视器,添加直径负载平衡虚拟服务器以及将服务绑定到虚拟服务器。

使用命令行界面为直径流量配置负载平衡

配置直径参数。

set ns diameter -identity  -realm  -serverClosePropagation  

示例:

设置mydomain.org - domain org -serverClosePropagation YES 

添加直径监视器。

add lb monitor  DIAMETER -originHost  -originRealm  

示例:

添加lb monitor DIAMETER - mondiameter -originHost mydomain.org——NeedCopy >

创建直径服务。

add service   DIAMETER  

示例:

add service DIAMETER ter_svc0 10.102.82.86 DIAMETER 3868 add service DIAMETER ter_svc1 10.102.82.87 DIAMETER 3868 add service DIAMETER ter_svc2 10.102.82.88 DIAMETER 3868 add service DIAMETER _svc3 10.102.82.89 DIAMETER 3868 

将直径服务绑定到直径监视器。

绑定服务@ monitorName  

示例:

bind service diameter ter_svc0 -monitorName diameter ter_mon绑定服务直径svc1 -monitorName diameter ter_mon绑定服务直径svc2 -monitorName diameter ter_mon绑定服务直径svc3 -monitorName diameter ter_mon 

添加具有直径持久性的直径负载平衡虚拟服务器。

add lb vserver  DIAMETER   -persistenceType DIAMETER -persistAVPno  

示例:

增加lb vserver的DIAMETER值:——NeedCopy >

将直径服务绑定到直径负载平衡虚拟服务器。

绑定lb vserver   

示例:

Bind lb vserver diameter ter_vs diameter ter_svc1 Bind lb vserver diameter ter_vs diameter ter_svc2 Bind lb vserver diameter ter_vs diameter ter_svc3 

保存配置。

保存ns配置

注意:您还可以使用Ssl_dexe服务类型配置通过SSL对直径流量的负载平衡。

使用配置实用程序为直径流量配置负载均衡

  1. 导航到”系统“>”设置“>”更改直径参数并设置直径参数。
  2. 导航到”流量管理“>”负载平衡“>”虚拟服务器,然后创建“直径”类型的负载平衡虚拟服务器。
  3. 创建直径类型的服务。
  4. 创建直径类型的显示器。在“特殊参数”中,设置源主机和源领域。
  5. 将监视器绑定到服务,并将服务绑定到直径虚拟服务器。
  6. 在高级设置中,单击持久性,指定直径,然后输入持久性avp编号。
  7. 点击保存,然后点击完成
配置直径负载平衡