Microsoft Lync 2013 是面向企业的统一通信平台。Lync 提供即时通信、在线状态服务、桌面共享、企业语音和 A/V 会议服务。在本文档中,我们重点介绍内部部署 Lync 以及使用 NSX Advanced Load Balancer 实现负载均衡、高可用性和分析的 Lync 核心功能。

Lync 解决方案优势

NSX Advanced Load Balancer 解决方案为 Lync 2013 部署提供以下优势:

  • 单一管理和控制点

    NSX Advanced Load Balancer 控制器 提供单一管理和控制点,同时根据 Lync 的要求提供流量和资源隔离以提高安全性。典型的 Lync 部署需要 4 个单独的负载均衡单元。当需要高可用性时,此数量需翻倍为 8 个单元。与其他 ADC 解决方案不同,IT 组织可以部署单个 NSX Advanced Load Balancer 控制器 或单个控制器集群,而不是 4 个或 8 个 ADC 单元。

  • 内置 TCP 安全性

    NSX Advanced Load Balancer 系统将检查 TCP 连接并丢弃恶意连接尝试,例如 TCP SYN 泛洪或具有无效序列号的 TCP 分段。

  • Lync 反向代理服务

    NSX Advanced Load Balancer 通过易于使用的安全性和 HTTP 策略来支持 HTTPS 代理。此外,还提供了 HTTPS 事务的完整可见性和端到端计时信息,使 IT 部门能够快速检测和分析问题。

  • 云优化部署和高可用性

    控制器会自动发现可用资源,例如虚拟基础架构中的网络和服务器。这样,IT 管理员不太容易出现人为错误。此外,NSX Advanced Load Balancer 控制器 还会检测其服务引擎或 Hypervisor 何时发生问题。它会自动查找最佳的可用 Hypervisor,并启动服务引擎以进行恢复。与其他 ADC 解决方案不同,此方法不需要冗余设备。

部署架构

Lync 部署的核心有三个 Lync 服务器角色,即前端服务器、Edge 服务器和反向代理。

  • 前端服务器

    提供 Lync 服务的所有核心功能,如身份验证、即时通信、Web 会议、A/V 会议、地址簿服务等。请注意,建议使用前端角色服务器在 Lync 2013 中托管 Director 池,并且可以选择容纳其他服务,例如持久聊天、监控和媒体调解。在本文档中,假定 Director 池存在于前端池上。

  • Edge 服务器

    使内部部署用户能够与外部部署用户通信和协作。请注意,Edge 池不会提供任何基于 Web 的服务或 Lync 发现机制。对于这两个功能,需要使用反向代理。Edge 池服务器未加入组织的 Active Directory 域。

  • 反向代理

    发布到前端池提供的 Internet Web 服务。换句话说,反向代理将来自 Internet 的 HTTP 请求中继到前端池 VS IP 地址。反向代理不得加入组织的 Active Directory 域。

注:

Lync Standard 版本池支持单个活动 Lync 服务器,因此不需要进行负载均衡。它是支持多个活动 Lync 服务器的 Lync 企业池,并且需要外部负载均衡器。Microsoft 建议至少使用三个前端服务器,因为必须根据投票形成仲裁以实现高可用性。

下面的图 1 显示了我们将在本文档的其余部分中使用的 Lync 架构。

图 1. 图 1

负载均衡策略

出于安全原因,Lync 需要四个单独的负载均衡器,一个用作反向代理,另一个用于对 Edge 池的外部端、Edge 池的内部端和前端池进行负载均衡。表 1 显示了进行负载均衡所需的所有 Lync 端口和服务。在此 Lync 部署示例中,前端服务器采用 Director 和 Mediation 服务。请根据该表设置 Active Directory 和 DNS 服务器。

表 1. 表 1

Lync 角色

VS 的 FQDN

VS 上的端口

服务器的 FQDN

服务器上的端口

前端

fe-pool.test.local

80、135、443、444、448、4443、5061、5070、5071、5072、5073、5075、5076、5080、8080

fe-1.test.local fe-2.test.local f3-3.test.local

与 VS 相同

外部访问 Edge

access.test.com

443、5061

access-1.test.com access-2.test.com access-3.test.com

与 VS 相同

外部 Web Conf Edge

webconf.test.com

443

webconf-1.test.com webconf-2.test.com

与 VS 相同

外部 A/V Edge

av.test.com

443、34789/UDP

av-1.test.com av-2.test.com

与 VS 相同

内部 Edge

edge-pool.test.local

443、5061、5062、3478/UDP

edge-1.test.local edge-2.test.local

与 VS 相同

反向代理

lyncdiscover.test.com

80 4443

fe-pool.test.local

8080 4443

常用策略

Lync 2013 建议为所有负载均衡虚拟服务器使用以下常用配置。

  • 基于源 IP 的持久性

  • TCP 空闲超时值为 1800 秒。此值在模板 > TCP/UDP 配置文件 > 自定义 > 空闲持续时间中进行配置。

前端池

在所有端口之间共享一个 VS IP。在 Lync 拓扑设置中,必须将前端 VS IP 配置为 Lync 前端池 IP。

  • 使用 TCP 代理为除端口 80 和 8080 以外的所有端口配置 L4 负载均衡。对端口 80 和 8080 使用 HTTP 负载均衡。

  • 如果客户端身份验证需要 NTLM,请在模板 > 配置文件 > HTTP 应用程序配置文件中停用连接多路复用。

  • 使用 TCP 运行状况监控器监控所有端口。

    注:

    Lync 前端服务器可以选择允许外部负载均衡器对未加密的 SIP 端口 5060 执行 SIP 运行状况检查。

外部和内部 Edge 池

外部端需要三个公共 VS IP 地址,Edge 池的内部端需要一个 VS IP 地址。必须在 Lync 拓扑构建器中将三个公共 IP 地址注册为访问、Web 会议和 A/V Edge 服务点。必须在 Lync 拓扑生成器中将内部 VS IP 地址配置为 Lync Edge 池 IP 地址。

  • 使用 TCP 代理为除 3478/UDP 以外的所有端口配置 L4 负载均衡。

  • 使用 System-UDP-Fast-Path 配置文件进行 UDP 负载均衡。请注意,虽然 Microsoft 建议使用半 NAT 为此 UDP 负载均衡保留客户端 IP 地址以允许点对点通信,但这不是必需的。使用“半 NAT”选项部署时,需要使用服务引擎作为服务器的默认网关,这可能需要在 NSX Advanced Load Balancer 和服务器上进行其他配置。

  • 对端口 3478 使用 UDP 运行状况监控器,并对其他端口使用 TCP 运行状况监控器。UDP 运行状况监控器将验证应用程序是否正在侦听给定的 UDP 端口。如果收到 ICMP 端口无法访问消息,则会将应用程序标记为关闭。  否则,会将 UDP 服务器标记为启动。

反向代理

反向代理需要一个 VS IP 地址。建议将此 VS IP 放在公共网络上,在图 1 中显示为外部 DMZ。此 VS 配置了 HTTPS 负载均衡。从客户端到 VS 以及从 VS 到服务器的连接必须完全安全且加密。此外,与其他 Lync 虚拟服务器不同,反向代理必须在客户端与服务器之间转换入站端口号,如图 2 所示。

在典型的部署场景中,反向代理没有到前端池的直接 L2 连接。这需要其他配置,因为 NSX Advanced Load Balancer 控制器 假定服务器默认情况下可以直接访问。

  • 在虚拟服务和池上配置 SSL 配置文件,并选择 HTTP 配置文件。使用此配置,将在从客户端收到 HTTPS 流量时对其进行解密,然后在发送到服务器之前对其重新加密。这样就可以按照您的 IT 组织要求配置 HTTP 安全策略。请注意,与 VS 关联的 SSL 证书必须与前端服务器使用的证书相同。这意味着反向代理 FQDN 必须列在证书的主体备用名称上。

  • 将 Lync 前端池 VS IP 配置为池的成员。

  • 在应用程序配置文件中使用 X-Forwarded 保留来自客户端的原始 URL。

  • 使用 HTTP 运行状况监控器,并预计使用 HTTP 状态代码 403 来响应成功的运行状况检查。在模板 > 分析配置文件 > 从错误分类中排除 HTTP 状态代码中,从错误列表中排除 403。

虚拟服务放置

图 1 显示了四个区域中服务引擎的逻辑分离。  这些 SE 可能只是单个整合对,但就安全最佳做法而言,这很可能是一对 SE 用于外部 Edge 和反向代理负载均衡,另一对 SE 用于内部 Edge 和前端负载均衡。

在创建任何 VS 之前,请根据上一段落中确定的隔离级别创建所需的服务引擎组数。在创建 VS 时,使用高级创建选项,而不是基本选项,以便在创建结束时可以在高级选项卡中指定 SE 组。这将确保 SE 不会托管具有不同 Lync 角色或跨安全区域的虚拟服务器。