Skype for Business/Lync 的服务质量 - 配置和最佳做法指南
本文由 Microsoft MVP 系统管理员 Balu Ilag 撰写
概述
如你所知,Microsoft Skype for Business 是一款出色的产品,它具有多种功能,可帮助企业用户随时随地进行有效通信和协作。 让Skype for Business为内部和外部用户正常工作是一项复杂的任务,因为我们正在处理一个庞大的产品。 提高服务质量非常重要。 本管理指南介绍了为何需要服务质量以及如何对其进行端到端配置。
为什么需要 QoS?
服务质量 (QoS) 是网络技术的组合,使公司能够优化实时音频、视频和应用程序共享通信的最终用户体验。
当网络带宽有限且网络拥堵时,通常使用 QoS。 由于带宽限制和网络拥塞是始终存在于网络中的因素,因此我们必须正确配置 QoS 以优化最终用户体验。
由于可以端到端配置 QoS,因此媒体流量通过广域网 (WAN) 遍历更有用,因为局域网可能没有相同的网络拥塞和带宽问题。 当我们谈论 WAN 时,大多数使用 WAN 的组织使用多协议标签交换 (MPLS) 网络。 这是一个 L3 WAN,由服务提供商构建,用于将其带宽出售给多个客户,并允许 QoS 得到 QoS 保证。 话已如此,始终需要 QoS。 ☺
QoS 的工作原理是什么?
基本上,所有端口范围都通过带内预配提供给 Skype for Business/Lync 客户端。 这意味着,Skype for Business/Lync 客户端登录后,他们将开始使用这些锁定的端口范围,这些端口范围在 Skype for Business/Lync 服务器上配置,并向下推送到 Skype for Business/Lync 客户端。 当客户端使用 lync.exe、communicator.exe 或 attendeeconsole.exe 等应用程序启动媒体流量时,所有利用音频/视频、应用共享或文件传输端口的应用程序都将获得区分服务代码点 (DSCP) 标记,这些标记由操作系统通过 组策略 对象 (GPO) 。
Windows 10、Windows 8、Windows 8.1、Windows 7 或 Windows Vista 等操作系统利用基于策略的 QoS,其优势是在应用程序级别限制 QoS。 这意味着,所有使用音频、视频和应用共享文件传输端口的客户端应用(为音频、视频、应用共享或文件传输配置)都将标记 DSCP 标记。
换句话说,Windows 或 Windows Server 操作系统可以标识流量类型,并根据所使用的端口将相应的 DSCP 应用于每个数据包。
下面是客户端应用程序及其可执行文件名称:
- Office Communicator 2007/R2 和 Lync 2010 - communicator.exe
- Lync 2010 和 Lync 助理控制台 - attendantconsole.exe
- Lync 2013、Skype for Business 2015 和 Skype for Business 2016 – lync.exe
下表列出了与其媒体类型关联的端口范围和 DSCP 值:
媒体类型 | 通信 | 端口范围 | 端口计数 | DSCP 值 |
---|---|---|---|---|
音频 | 会议服务器 | 49152-57500 | 8348 | 46 |
音频 | 中介服务器 | 49152-57500 | 8348 | |
音频 | 客户端 | 50020-50059 | 40 | 46 |
视频 | 会议服务器 | 57501-65535 | 8034 | 34 |
视频 | 客户端 | 58000-58019 | 20 | 34 |
应用共享 | 会议服务器 | 40803-49151 | 8348 | 24 |
应用共享 | 客户端 | 42000-42019 | 20 | 24 |
文件传输 | 客户端 | 40783-40802 | 20 | 14 |
信号 | 客户端和服务器 | 5060-5061 | 2 | 46 |
注意
适用于 iOS 版本 6.17 及更高版本的Skype for Business客户端现在支持 QoS。 此 QoS 功能仅适用于直接注册到托管网络上的内部Skype for Business或 Lync 池服务器的Skype for Business客户端和 IP 电话设备。 QoS 不适用于通过 Internet 路由的流量。
让我们从 QoS 配置开始:
-
为所有客户端启用 QoS,这些客户端在默认情况下处于禁用状态:
默认情况下,不会在 Skype for Business/Lync 服务器上启用 QoS。
可以从 PowerShell 运行 Get-CsMediaConfiguration 命令,查看“EnableQoS”是否显示“True”或“False”。 默认情况下,它显示为 False。
若要全局启用 QoS,请运行以下 PowerShell 命令:
Set-CsMediaConfiguration -EnableQoS $True
如果要在站点范围内启用 QoS,请运行以下命令let:
Set-CsMediaConfiguration -Identity Site:<sitename> -EnableQoS $True
-
为会议和对等媒体流量配置端口范围:
若要使 QoS 正常工作,请在会议、应用程序和中介服务器上为音频、视频、文件传输和应用共享配置相同的端口范围。 这些端口范围不得以任何方式重叠。 (例如,如果将端口 57501 到 65535 用于会议服务器上的视频,则还必须将端口 57501 到 65535 保留为应用程序服务器上的视频。否则,QoS 将无法按预期工作。)
必须使用 PowerShell 配置端口范围。 可以通过运行 PowerShell 命令来验证会议、应用程序和中介服务器的现有端口范围。
Get-CsService -ConferencingServer | Select-Object Identity, AudioPortStart,
AudioPortCount, VideoPortStart, VideoPortCount, AppSharingPortStart,
AppSharingPortCount
Get-CsService -ApplicationServer | Select-Object Identity, AudioPortStart, AudioPortCount
Get-CsService -MediationServer | Select-Object Identity, AudioPortStart,
AudioPortCount
注意
应用程序服务器和中介服务器仅支持音频的 QoS。 无需更改应用程序服务器或中介服务器中的视频或应用程序共享端口。
每个端口类型(音频、视频和应用程序共享)都分配有两个单独的属性值:端口开始和端口计数。 端口启动指示用于该模式的第一个端口,端口计数专用端口数。 (例如,如果音频端口启动等于 49152,则表示用于音频流量的第一个端口是端口 49152。如果音频端口计数为 8348,则表示为音频分配了 8,348 个端口,最后一个端口应为 57500 端口范围应是连续的]。因此,音频的端口范围为端口 49152 到 57500.)
若要在所有池服务器中进行更改,请执行以下操作:
Get-CsService -ConferencingServer | ForEach-Object {Set-CsConferenceServer -Identity $_.identity -AppSharingPortStart "40803" -AppSharingPortCount "4348" -AudioPortStart "49152" -AudioPortCount "4348" -VideoPortStart "57501" -VideoPortCount "8034"}
若要修改所有池服务器中的即时消息 SIP 端口, (可选) :
Get-CsService -ConferencingServer | ForEach-Object {Set-CsConferenceServer -Identity $_.Identity -ImSipPort 5062}
可以更改中介和应用程序服务器音频端口范围。
设置边缘服务器:
使用边缘服务器,无需为音频、视频和应用共享配置单独的端口范围;同样,用于边缘服务器的端口范围不必与会议、应用程序和中介服务器使用的端口范围相匹配。
Get-CsService -EdgeServer | ForEach-Object {Set-CsEdgeServer -Identity
$_.Identity -MediaCommunicationPortStart 50000 -MediaCommunicationPortCount 10000}
为对等媒体配置客户端端口范围:
运行以下命令以查找现有媒体客户端端口:
Get-CsConferencingConfiguration | fl Client*
若要在客户端端口范围中进行更改,请:
Set-CsConferencingConfiguration -ClientMediaPortRangeEnabled $True -ClientAudioPort "50020" -ClientAudioPortRange "40" -ClientVideoPort "58000" -ClientVideoPortRange "20" -ClientAppSharingPort "42000" -ClientAppSharingPortRange "20" -ClientFileTransferPort "40783" -ClientFileTransferPortRange "20"
为客户端和服务器配置单独的组策略对象:
定义端口范围后,还必须创建 QoS 策略,以指定要与每个端口范围关联的 DSCP 代码。 将一组端口限制为特定类型的流量不会导致通过这些端口的数据包使用相应的 DSCP 代码进行标记。 除了定义端口范围外,还必须创建 QoS 策略,以指定要与每个端口范围关联的 DSCP 代码。可以通过 GPO(具有基于策略的 QoS)将这些 DSCP 值与端口范围相关联。
如果已有与通信类型关联的所有端口范围和 DSCP 值,请继续执行以下过程。 如果不是,则确定端口范围,并按照步骤 2 配置端口范围。
Microsoft 在此处概述了完整步骤:
在 Lync Server 2013 中为会议、应用程序和中介服务器配置服务质量策略
- 必须将所有计算机对象合并到单个组织单位 (OU) 。 例如, (computer.)
- 登录到安装了 组策略 Management 的域控制器或计算机。
- 打开组策略管理工具 (运行>gpmc.msc) ,然后右键单击 OU (计算机) 。 选择“ 在此域中创建 GPO”,并将其链接到此处 以创建新的 GPO。 (例如,SfBLyncClient-QoS.) 必须具有 (域管理员) 所需的权限才能创建和链接策略对象。
- 右键单击新的 GPO,然后选择“编辑”以打开“组策略管理编辑器”。 然后展开 “计算机配置>策略>”“Windows 设置”。 右键单击“ 基于策略的 QoS ”,然后选择“ 创建新策略”。
- 在基于策略的 QoS 页中,为策略指定名称,例如“Lync2013-Audio”。 然后将 “指定 DSCP 值:”设置为 46,然后选择“ 下一步”。
- 在下一页上,在 字段中输入 lync.exe。 仅具有此可执行文件名称的应用程序**,然后选择“ 确定”。
注意
此选项可确保 Lync.exe 应用程序将使用指定的 DSCP 代码匹配来自指定端口范围的数据包。
- 在下一个屏幕上,确保同时选择了 “任何源 IP 地址”和“任何目标 IP 地址 ”,然后选择“ 下一步”。
注意
这两个设置确保将管理这些数据包,与哪台计算机(IP 地址)发送这些数据包及哪台计算机(IP 地址)将接收这些数据包无关。
- 在下一个屏幕上,选择“ TCP 和 UDP ”,然后选择“ 从此源端口或范围”。 在 字段中,键入为音频传输保留的端口范围。
注意
传输控制协议 (TCP) 和用户数据报协议 (UDP) 是 Skype for Business/Lync 服务器及其客户端应用程序最常使用的两种网络协议。
- 按照步骤 e 到 h 创建新的策略对象,并使用上述端口范围和 DSCP 值将其标记为“Lync2013-Signaling”、“Lync2013-AppShare”、“Lync2013-File Transfer”和 Lync2013-Video。
- 配置所有策略对象后,如下图所示:
- 打开“组策略管理”,然后右键单击“OU (Server) ”。 选择“ 在此域中创建 GPO”,并将其链接到此处 以创建新的 GPO。 (例如,SfBLync-Server-QoS.) 然后必须添加Skype for Business/Lync Server 到服务器 OU。 重复步骤 d 到 i ,为服务器创建策略对象。 为服务器配置所有策略对象后,如下图所示:
最后测试 QoS。
注意
最佳做法是按季度验证 QoS 配置和 DSCP 标记。
如何为Skype for Business/Lync 电话设备启用 QoS
Skype for Business/Lync Phone 版本主要支持音频,因此只需为音频流量定义 DSCP 值。
若要在 Skype for Business/Lync Phone Edition 设备上启用 QoS,请编辑设备上的 VoiceDiffServTag 和 Voice8021p 设置。 默认情况下,VoiceDiffServTag 设置为 40,Voice8021p 设置为 0。
设置屏幕是通过从 Lync/Skype Server 控制面板中选择“ 客户端>设备配置 ”找到的。
也可以使用 PowerShell 启用 QoS。 打开 Skype for Business/Lync 命令行管理程序并键入以下命令:
Set-CsUcPhoneConfiguration -VoiceDiffServTag <value> -Voice8021p <value>
例如:
Set-CsUcPhoneConfiguration -VoiceDiffServTag 46 -Voice8021p 0
重启设备,使更改生效。
Test1:
- 首先,在应用新创建的 GPO 并将其链接到计算机和服务器对象存储在 OU 之后,我们需要测试 GPO 策略是否正确应用, (单独的 OU) 。 在测试之前,可以通过在测试计算机和服务器上运行“gpupdate.exe /force”来强制策略,这将刷新策略。
- 在客户端计算机上刷新策略后,转到 “开始>运行>cmd ”, (以管理员) 身份打开。 然后键入 Gpresult /h result.htm。
- 策略将以 HTML 格式输出,名称为“result.htm”。 打开此文件以查看 QoS 策略。
Test2:
启用 Skype for Business/Lync 客户端日志。 登录到 Skype for Business/Lync 客户端,然后在记事本或 Snooper 中打开 Skype/Lync (UCCAPILOG) 日志。 确保 qosenabled 显示 true 并验证所有客户端端口号。 日志文件位置可在此处找到:
- Skype for Business 2015/Lync2013 客户端:%userprofile%\appdata\local\Microsoft\Office\15.0\Lync\Tracing\
- Skype for Business 2015 客户端:%userprofile%\appdata\local\Microsoft\Office\16.0\Lync\Tracing\
下面的屏幕截图显示了正确的客户端端口。
测试 3:
与另一个内部用户进行音频呼叫并捕获网络流量,以验证 QoS 标记是否正确显示。 验证双向数据包和检查 DSCP 值是否正确显示。 下面的屏幕截图显示了 UDP 流量 DSCP:FE (快速转发 (46) ) ,这是正确的标记。
Test4:
- 在 Windows 计算机上,打开“regedit”,然后浏览到文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\QoS
在这里,可以看到应用于此计算机的所有 QoS 策略: - 在 FE 服务器上,无需定义应用程序名称,因为在此服务器上,所有应用程序都与 Skype 和 Lync 相关。
- 打开“regedit”,然后浏览到:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\QoS
Front-End 服务器应如下图所示:
最佳做法
- 每季度审核 QoS 策略,并观察标记。
- 请与 WAN 提供商联系, (QoS 平面的 MPLS) 。
- 我们建议你对 QoS 进行端到端验证,因为有时错误配置网络设备 ((例如路由器、无线接入点或交换机),) 可能会设置 DSCP 标记,或者将 DSCP 标记更改为你不打算的标记,甚至将 DSCP 标记去除设置为 0。
更多信息
仍然需要帮助? 请转到 Microsoft 社区。