QoS mit Skype for Busines

Diese Seite befasst sich mit den Einstellungen von QoS in einem Lync Umfeld.

Enabling Quality of Service with Microsoft Lync Server 2010
http://www.microsoft.com/en-us/download/details.aspx?id=12633

Achtung beim Portzählen !
Lync verwendet als Konfiguration einen "Startport" und eine "Range".  Startport 40.000 mit einer Range von 40 ergibt aber nicht 40.000-40.040 sondern nur bis 40039. In vielen Dokumentationen wird hier aber falsch gerechnet.

Für QoS sind primär natürlich Audio und Video interessant. Allerdings können Sie auch andere Ports festlegen um z.B. Firewalls entsprechend zu konfigurieren oder die Datenmengen numerisch zu erfassen. Denken Sie aber immer daran, dass die Ports auch im Normalbetrieb von anderen Anwendungen genutzt werden können. Sie sind also nicht für Lync exklusiv reserviert. Lync nutzt aber nur diese Ports.

QoS mit Microsoft 365 und Teams - Welche Bedeutung hat QoS bei der Nutzung von Cloud-Diensten?

Interessant ist primär die Kommunikation per Audio/Video, auch wenn SIP-Traffic oder Applicationsharing auch eine Verkehrslast darstellt, die QoS unterworfen werden könnte. Folgende Ports sind per "Default" in Lync 2010/2013 definiert.

Ports, SDP und Kandidaten

Ehe Sie an den Stellschrauben etwas drehen, sollten Sie die Grundlagen von VoIP verstanden haben, die da sind:

  • Die Medienports werden im SDP übertragen und per ICE ausgehandelt
  • Jeder Endpunkt bietet dem Gegenüber "Kandidaten" an, die eine IP-Adresse + Port-Kombinationen sind.
  • QoS ist nur sinnvoll für die ausgehenden Pakete
    Eingehende Pakete sind ja schon empfangen worden.
  • Remote Port Range ist nicht sicher
    Daher sollte der Client mit einer vordefinierten Source Range arbeiten auf die man dann QoS taggen kann
  • "Vertrauenswürdige Geräte" sollten selbst DSCP-Tags vergeben
    Und der Switch sollte diese Daten dann nicht mehr verändern.
  • QoS ist wichtig auf "dünnen" Abschnitten
    In der Regel ist QoS nicht wichtig, wenn die Gegenstellen im lokalen LAN sind.
  • Taggen so früh wie möglich
    Vertrauen Sie nicht darauf, dass ein Router vor dem "Endpass" anhand von Ports die Priorisierung vornimmt. Besser ist möglichst nahe an der Quelle zu taggen.
  • QoS ist kein Ersatz für CAC
    Vielmehr sind CAC und QoS die zwei Bestandteile einer Lösung.

Wenn Sie mehr darüber wissen wollen, dann machen Sie einen Abstecher auf ICE und Kandidaten. Weiterhin gibt es eine Menge an Endgeräten.

Wer mit Wem ?

Audio und Video ist immer eine 1:1 Verbindung zwischen zwei Endpunkten. Folgende Verbindungen gibt es in einer Lync Welt:

Das Bild zeigt die möglichen RTP-Teilstecken und deren Bedeutung für Lync. Gelbe Verbindungen sind wichtig. blaue Links sind weniger wichtig und die eine rote Verbindung kann kein QoS.

TLN-A TLN-B QoS-Relevant Beschreibung

Firmen Client

Firmen Client

Ja

Auch wenn dies immer nur eine P2P-Verbindung ist, so können die beiden Clients in unterschiedlichen Standorten stehen und damit natürlich unter Endpässen auf dem WAN leiden.

Firmen Client

Edge

Ja

Insbesondere wenn ein Client in einer "remote Site" ist, kommt wieder die Priorisierung im WAN zum tragen.

Firmen Client

MCU

Ja

Als Teilnehmer in einer Konferenz ist QoS wichtig, speziell bei Teilnehmern in anderen Standorten über eine WAN-Leitung

Firmen Client

Mediation

Ja

Auch mit Media Bypass nutzt ein Client weiterhin den Mediation Server, wenn er einer "remote Site" ist.

Firmen Client

Gateway

Weniger

Der direkte Weg bei Mediabypass findet bei korrekter Konfiguration nur im LAN statt und hier ist QoS meist kein Problem.

Edge

MCU

Weniger

Wenn die MCU und der Edge "nahe beieinander" stehen, ist Bandbreite kein Problem. Knifflig kann es werden, wenn Pool und Edge an unterschiedlichen Standorten sind.

Edge

Internet Client

Nicht möglich

Sie können gerne QoS-Markierungen auf dem Edge und dem Client setzen aber niemand im Internet wird diese respektieren. In der Regel werden Sie beim Provider ersetzt.

Edge

Mediation

Weniger

In der Regel stehen Edge und Mediation nahe bei einander, so dass QoS hier nichts relevant ist.

Mediation

MCU

Weniger

Diese Verbindung kommt beim Konferenz DialIn/DialOut zum tragen und hier sollten Sie schon vom Design darauf achten, dass die beiden Server nahe zusammen stehen.

Gateway

Mediation

Weniger

Auch diese Teilstecker mit G711-Codec ist in der Regel ein LAN ohne QoS-bedarf

Gateway

Carrier

Ja

Wenn die externe Anbindung per SIP-Trunk erfolgt, dann sollte hier auf jeden Fall QoS

Gateway

PBX

Weniger

Diese beiden System sind meist "nahe" beieinander

Für jeden Endpunkt ist nun zu überlegen, ob man die Port-Range anpasst und /oder die DSCP-Tags setzt.

Default Ports

Wenn Sie Lync "einfach so installieren, dann sind einige Ports vorkonfiguriert aber nur teilweise aktiv. Es ist sinnvoll die drei großen Dienste Audio, Video, AppData zu separieren, um diese im Netzwerk unterscheiden zu können. Hier die Standard Daten und die Commandlets um diese Daten zu erhalten. Ich beschränke mich auf Audio/Video

Endpunkt Service Start Range Aktiv

Lync Client

Get-CsConferencingConfiguration | `
fl client*

Audio
Video
AppSharing
Filetransfer
Media

5350
5350
5350
5350
5350

40
40
40
40
40

NEIN

Lync Client (Office 365 Policy

http://blogs.technet.com/b/nexthop/archive/2013/07/03/lync-online-media-port-changes-offer-better-bandwidth-management.aspx

Audio
Video
AppSharing
Filetransfer

50000
50020
50040
50040

20
20
20
20

Ja

Lync Konferenz Dienst (Audio Video MCU)

Get-CsService -ConferencingServer `
   | fl *port*

Audio
Video
AppSharing

49152
57501
49152

8348
8034
16383

Ja

Lync Server Applications

Get-CsService -ApplicationServer `
   | fl Identity, AudioPortStart, AudioPortCount

Audio

49152

8348

Ja

Lync Mediation Server

Get-CsService -mediationserver `
   | fl audioport*

AudioPortStart   : 49152
AudioPortCount   : 8348

Audio

49152

8348

Ja

Lync Edge Server

get-csservice -EdgeServer | fl  *port*

AccessEdgeInternalSipPort     : 5061
AccessEdgeExternalSipPort     : 5061
AccessEdgeClientSipPort       : 443
DataPsomServerPort            : 8057
DataPsomClientPort            : 443
MediaRelayAuthEdgePort        : 5062
MediaRelayInternalTurnTcpPort : 443
MediaRelayExternalTurnTcpPort : 443
MediaRelayInternalTurnUdpPort : 3478
MediaRelayExternalTurnUdpPort : 3478
MediaCommunicationPortStart   : 50000
MediaCommunicationPortCount   : 10000
XmppInternalPort              :
XmppListeningPort             :

Audio/Video
TURN

50000
3478

10000

Ja

Optimierte Portranges und DSCP nach Microsoft (alt)

Ich würde diese Empfehlungen so nicht mehr umsetzen sondern die gleichen Einstellungen wie Office 365 nutzen, da dann auch Gruppenrichtlinien und Einstellungen auf Routern und Switches identisch sind. Ich habe aber diese Quellen und Daten noch dokumentiert, damit Sie diese finden und ale Quelle nutzen können.

Sie haben sicher gesehen, dass die Default-Einstellungen nicht optimal sind. So nutzen Audio/Video/Data beim Lync Client die gleiche Range, was eine Unterscheidung der Lasten erschwert. Microsoft beschreibt auf folgenden Seiten alternative Ports:

System Funktion Start Anzahl

Client

Audio

50000

20

Client

Video

58000

20

Client

AppSharing

42000

20

Client

Filetransfer

42020

20

Server (Conf/Med/App)

Audio

49152

8348

Server (Conf/Med/App)

Video

57501

8034

Server (Conf/Med/App)

AppSharing

40803

8348

Edge

Media

40803

24730

Edge

TURN

3478

1

Über das Band verteilt sieht das wie folgt aus.

Office 365 Portrange und QoS

Wer Skype for Business Online nutzt, bekommt die Port-Range von Microsoft vorgegeben. Diese unterscheiden sich sowohl von den Default Einstellungen als auch von den vorher genannten Empfehlungen. Wenn Sie einen Skype for Business Online-Client anmelden und in der UCCAPILOG (Keyhole-Debugging) nachschauen, dann finden Sie folgende Provisionierung als Folge auf den SUBSCRIBE an der Cloud in der Antwort:

<provisionGroupList xmlns="http://schemas.microsoft.com/2006/09/sip/provisiongrouplist-notification">
   <provisionGroup name="ServerConfiguration" >
      <ucPortRangeEnabled>true</ucPortRangeEnabled>
      <ucMinMediaPort>50000</ucMinMediaPort>
      <ucMaxMediaPort>50059</ucMaxMediaPort>
      <ucMinSipDynamicPort>7100</ucMinSipDynamicPort>
      <ucMaxSipDynamicPort>7102</ucMaxSipDynamicPort>
      <ucMinAudioPort>50000</ucMinAudioPort>
      <ucMaxAudioPort>50019</ucMaxAudioPort>
      <ucMinVideoPort>50020</ucMinVideoPort>
      <ucMaxVideoPort>50039</ucMaxVideoPort>
      <ucMinAppSharingPort>50040</ucMinAppSharingPort>
      <ucMaxAppSharingPort>50059</ucMaxAppSharingPort>
      <ucMinFileTransferPort>50040</ucMinFileTransferPort>
      <ucMaxFileTransferPort>50059</ucMaxFileTransferPort>
      <ucPC2PCAVEncryption>SupportEncryption</ucPC2PCAVEncryption>
      <ucMaxVideoRateAllowed>VGA-600K</ucMaxVideoRateAllowed>
      <qosEnabled>false</qosEnabled>
      <enableInCallQoS>false</enableInCallQoS>
      <inCallQoSIntervalSeconds>35</inCallQoSIntervalSeconds>
      <ucDiffServVoice>40</ucDiffServVoice>
   </provisionGroup>
<provisionGroupList>

Sie sehen hier, dass folgende Ports auf den Clients genutzt werden:

System Funktion Start Anzahl

Client

Audio

50000

20

Client

Video

50020

20

Client

AppSharing

50040

20

Client

Filetransfer

50040

20

Da liegt es natürlich nahe die gleichen Einstellungen auch On-Prem umzusetzen. Das geht durch folgende Befehle:

# Einstellungen fuer Lync Clients
Set-CsConferencingConfiguration `
   -Identity global `
   -ClientMediaPortRangeEnabled $True `
   -ClientAudioPort 50000 `
   -ClientAudioPortRange 20 `
   -ClientVideoPort 50020 `
   -ClientVideoPortRange 20 `
   -ClientMediaPort 50040 `
   -ClientMediaPortRange 20 `
   -ClientAppSharingPort 50040 `
   -ClientAppSharingPortRange 20 `
   -ClientFileTransferPort 50040 `
   -ClientFileTransferPortRange 20

On-Prem sollte man natürlich noch weitere Einstellungen aktivieren, damit QoS greifen kann.

# Einstellungen fuer Lync Aries Telefone
Set-CsUCPhoneConfiguration `
   -VoiceDiffServTag 46

# Einstellungen für nicht windows Clients.
Set-CsMediaConfiguration `
-EnableQoS $True

Auch für die Serverdienste ist es ratsam, die Port vorzugeben, wenn Sie später eimal pro Dienst eigene Policies auf dem Server ansetzen wollen. Viele Firmen darauf aber zu verzichten und taggen einfach alle Pakete auf dem Port der Skype for Business Services.

# Einstellungen für Application Server
Get-CsService -ConferencingServer `
   | ForEach-Object { `
         Set-CsConferenceServer `
            -Identity $_.Identity `
            -AppSharingPortStart 40803 `
            -AppSharingPortCount 8348 `
      }

# Einstellungen fuer Edge
Get-CsService -EdgeServer `
   | ForEach-Object {`
         Set-CsEdgeServer `
            -Identity $_.Identity `
            -MediaCommunicationPortStart 40803 `
            -MediaCommunicationPortCount 24730 `
       }

Die Anwendung der Einstellungen werden im Lync Eventlog protokolliert. Auch auf dem Client kann man im Trace gut sehen, dass er die Ports nutzt.

CUccEndpoint::GetMediaPortRange - retrieved range min: 50000, max: 50039
CUccEndpoint::GetMediaPortRange - retrieved range min: 58000, max: 58019
CUccEndpoint::GetMediaPortRange - retrieved range min: 42020, max: 42039
CUccEndpoint::GetMediaPortRange - retrieved range min: 42000, max: 42019

QoS Gruppenrichtlinie für Clients

Analog beschreibt Microsoft auf folgenden Seiten die Einstellungen der DSCP-Parameter über Gruppenrichtlinien

Auch diese Werte würde ich auf Office 365 anpassen und wie folgt umsetzen.

Beachten Sie dabei, dass der Client den Zielport nicht bestimmen kann. Das gibt die Gegenseite vor. Um also QoS-Tags zu setzen, müssen Sie den Quellport als Kriterium nutzen

Name Prozess SourceIP DestIP Proto S-Port D-Port DSCP

Lync Audio

Any

Any

Any

TCP/UDP

50000:50019

Any

46

Lync Video

Any

Any

Any

TCP/UDP

50020:50049

Any

34

Lync App

Any

Any

Any

TCP/UDP

50040:50059

Any

24/18

Lync File

Any

Any

Any

TCP/UDP

50040:50059

Any

14/18

Sie können gut sehen, dass die Source-Ports hier relevant sind und der Client mit diesen Ports raus geht und diese auch dem Gegenüber anbietet. Welcher Ports die Gegenseite anbietet, können Sie nicht nicht steuern.

In Verbindung mit Express Route und QoS möchte MIcrosoft für Data-Traffic gerne DCSP=18

Hinweis: Per Default werden die Richtlinien nur auf Netzwerkkarten gebunden, die die Domäne erreichen können.

Abhilfe schafft dann ein Registry Key:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\QoS]
"Do not use NLA"="1"

Fertige REG-Datei zum importieren.
qoslync.reg

Mittlerweile können Sie sogar Gruppenrichtlinien per PowerShell erstellen lassen. Die Kurzform habe ich hier zusammengefasst:

Import-Module ActiveDirectory,GroupPolicy
 
New-GPO -Name "SfB ClientQoS" -Comment "QoS/DSCP markings for Skype4B media traffic. That contain the computer objects that will be used by the Skype4B Users."
 
#Create Registry Value to enable TCP/IP QoS on the computer
Set-GPPrefRegistryValue `
   -Name "SfB ClientQoS" `
   -Context Computer `
   -Key "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\QoS" `
   -ValueName "Do not use NLA" `
   -Value "1" `
   -Type String `
   -Action Update
 
Set-GPRegistryValue -Name "SfB ClientQoS" `
   -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\QoS\Skype4B Online Audio QoS - lync.exe"  `
   -ValueName "Version", "Application Name", "Protocol", "Local Port", "Local IP", "Local IP Prefix Length", "Remote Port", "Remote IP", "Remote IP Prefix Length", "DSCP Value", "Throttle Rate" `
   -Type String  `
   -Value "1.0", "lync.exe", "*", "50000:50019", "*", "*", "*", "*", "*", "46", "-1"
 
Set-GPRegistryValue  `
   -Name "SfB ClientQoS"  `
   -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\QoS\Skype4B Online Video QoS - lync.exe"  `
   -ValueName "Version", "Application Name", "Protocol", "Local Port", "Local IP", "Local IP Prefix Length", "Remote Port", "Remote IP", "Remote IP Prefix Length", "DSCP Value", "Throttle Rate"  `
   -Type String  `
   -Value "1.0", "lync.exe", "*", "50020:50039", "*", "*", "*", "*", "*", "34", "-1"
 
Set-GPRegistryValue  `
   -Name "SfB ClientQoS"  `
   -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\QoS\Skype4B Online App Sharing QoS - lync.exe"  `
   -ValueName "Version", "Application Name", "Protocol", "Local Port", "Local IP", "Local IP Prefix Length", "Remote Port", "Remote IP", "Remote IP Prefix Length", "DSCP Value", "Throttle Rate"  `
   -Type String  `
   -Value "1.0", "lync.exe", "*", "50040:50059", "*", "*", "*", "*", "*", "24", "-1"
 
Set-GPRegistryValue  `
   -Name "SfB ClientQoS"  `
   -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\QoS\Skype4B Online File Transfer QoS - lync.exe"  `
   -ValueName "Version", "Application Name", "Protocol", "Local Port", "Local IP", "Local IP Prefix Length", "Remote Port", "Remote IP", "Remote IP Prefix Length", "DSCP Value", "Throttle Rate"  `
   -Type String  `
   -Value "1.0", "lync.exe", "*", "50040:50059", "*", "*", "*", "*", "*", "24", "-1"

Die Einstellungen funktionieren auf jeden Fall für SfB Online. Wenn Sie die obigen Policies auf ihrem lokalen Server eingestellt haben, funktioniert dies auch On-Prem.

QoS Gruppenrichtlinie für Server

Ob sie für Server überhaupt eine GPO machen, müssen sie selbst entscheiden. Denkbar ist natürlich auch einfach den Port auf dem Switch mit einem Flag zu versehen

Die Einstellungen sind für Edge und andere Server identisch. Wenn der Edge nicht in der Domäne ist, dann müssen Sie die Einstellung aber in einer lokalen GPO eintragen.

Name Prozess Source-IP Dest-IP Protokoll S-Port D-Port DSCP

Lync Server Audio

Any

Any

Any

TCP/UDP

49152:57500

Any

46

Lync Server Video

Any

Any

Any

TCP/UDP

57501:65535

Any

34

Lync Server App

Any

Any

Any

TCP/UDP

40803:49151

Any

24

Filetransfer gibt es hier nicht. Auch hier gilt die Problematik bei mehreren Netzwerkkarten wie beim Client und kann durch den RegKey abgeholfen werden

Tipp:
Installieren Sie auf jeden Fall NetMon 3 oder Wireshark und kontrollieren Sie, dass die Pakete beim Versand entsprechend getaggt sind und eingehende Pakete auch von der Gegenseite versendet und auf dem Weg nicht verändert wurde. Siehe auch QoS:Netzwerk und QoS:Monitoring.

Wer Windows 2012 oder neuer hat, kann auch per PowerShell die QoS-Einstellungen durchführen

Skype for Business Client

Der Lync Client selbst kann natürlich seine IP-Pakete nicht selbst mit DSCP-Kennzeichnungen versehen. Diese Aufgabe kann aber das Betriebssystem (Windows) übernehmen oder eine Netzwerkkomponente kennzeichnet die Pakete anhand der Ports. In beiden Fällen ist es aber erforderlich, die von Lync genutzten Ports zu können und gegebenenfalls anzupassen.

Die Portrange bekommt der Client bei der Anmeldung per "Inband Provisioning" mitgeteilt.

PS C:\> Get-CsConferencingConfiguration | fl client*

ClientMediaPortRangeEnabled : False
ClientMediaPort             : 5350
ClientMediaPortRange        : 40
ClientAudioPort             : 5350
ClientAudioPortRange        : 40
ClientVideoPort             : 5350
ClientVideoPortRange        : 40
ClientAppSharingPort        : 5350
ClientAppSharingPortRange   : 40
ClientFileTransferPort      : 5350
ClientFileTransferPortRange : 40
ClientSipDynamicPort        : 7100
ClientSipDynamicPortRange   : 3

Sie können schon hier einfach erkennen, dass die Lync Standardeinstellungen etwas ungeschickt sind, da Audio und Video die gleichen Ports verwenden und damit eine Trennung der beiden Datenströme nicht möglich ist. Zudem ist die Konfiguration auch gar nicht "aktiv" geschaltet.

OCS2007R2-Client

Diese alten Clients unterstützen noch nicht die Konfiguration per "SIP-Inband", sondern werden klassisch über eine statische Konfiguration oder über Gruppenrichtlinien versorgt:

[HKEY_CURRENT_User\Software\Microsoft\Communicator\PortRange]
"MaxMediaPort"=dword:00004002
"MinMediaPort"=dword:00007fff
"Enabled"=dword:1

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Communicator\Portrange\}
"MaxMediaPort"=dword:00004002
"MinMediaPort"=dword:00007fff
"Enabled"=dword:1

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RTC\Transport]
"QoSEnabled"=dword:00000001

Speziell für den Communicator Client und das Microsoft RTC-Protokoll muss man aber noch zusätzlich beachten, dass man hier den Schlüssel "QoSEnabled" noch auf 1 setzen kann. Danach werden nach einem Reboot Audiodaten mit einem DSCP=40 und Videodaten mit DSCP=24 gekennzeichnet.

Lync Konferenzdienst

Aber auch der Konferenzdienst nutzt Ports.

PS C:\> Get-CsService -ConferencingServer | fl *port*

ImSipPort           : 5062
DataPsomPort        : 8057
AudioVideoSipPort   : 5063
PhoneSipPort        :
AppSharingSipPort   : 5065
ImWebPort           : 444
DataWebPort         : 444
AudioVideoWebPort   : 444
PhoneWebPort        :
AppSharingWebPort   : 444
AudioPortStart      : 49152
AudioPortCount      : 8348
AppSharingPortStart : 49152
AppSharingPortCount : 16383
VideoPortStart      : 57501
VideoPortCount      : 8034
MeetingPsomPort     : 8058
MeetingWebPort      : 444

Lync Application Server (z. B. UCMA, RGS)

Auf dem Lync Server gibt es durchaus noch andere Dienste wie z.B. Call Park, Announcement Service oder die Responsegroup, die zumindest Audio einspielen. Über das Commandlet "Set-CsApplicationServer" können auch einem Application Server entsprechende Ports vorgegeben werden. Aber nicht alle Systeme respektieren dies. Wenn der Hersteller selbst oder das darunter liegende Betriebssystem keine andere Möglichkeit bietet, bleibt wieder die Konfiguration auf dem Switchport. Die aktuellen Werte können zwar nicht ausgelesen aber gesetzt werden.

Set-CsApplicationServer `
    -Identity <PoolFQDN> `
    -AppSharingPortStart <Startport> `
    -AppSharingPortCount <Anzahl>
    -AudioPortStart <Startport> `
    -AudioPortCount <Anzahl, mindestens 128> `
    -AppSharingPortStart <Startport> `
    -AppSharingPortCount <Anzahl, mindestens 128>  `
    -VideoPortStart <Startport> `
    -VideoPortCount <Anzahl, mindestens 128>
Get-CsService -ApplicationServer | fl Identity, AudioPortStart, AudioPortCount

Identity       : ApplicationServer:lync01.msxfaq.net
AudioPortStart : 49152
AudioPortCount : 8348

Lync Mediation Server

Auch der Mediation Server ist ebenso einstellbar. Dies kommt aber nur zum Tragen, wenn kein MediaBypass verwendet wird.

PS C:\> Get-CsService -mediationserver | fl audioport*

AudioPortStart   : 49152
AudioPortCount   : 8348

Lync Edge-Server

Auch beim Edge-Server können die Audio/Video-Ports festgelegt werden. Die Standardwerte können leider nicht per PowerShell ausgelesen werden. Nur ein Setzen ist möglich. Die Standards sind:

Set-CsEdgeServer `
    -Identity: <FQDN of Edge Server (Single Edge) or FQDN of Edge Pool>`
    -MediaCommunicationPortStart 50000 `
    -MediaCommunicationPortCount 10000

Der Edge nutzt also per Default 50000 - 59999 nach extern aber 3478 intern

Achtung:
Diese Einstellungen gelten natürlich nur für QoS innerhalb des internen Netzwerks. Wenn Clients über das Internet zugreifen, dann wirken diese Einstellungen zum einen nicht, weil der Client eventuell Tunneltechnologien mit anderen Ports nutzt. Zudem gibt es über das Internet natürlich keine garantierte Ende zu Ende Performance und DSCP-Kennzeichen werden meist sowieso vom Zugangsprovider entfernt oder ignoriert.

Office 365 hat die Ports noch enger gefasst:

Exchange Server

Die Rolle des Exchange Servers wird in einer Lync-Umgebung gerne vergessen. Exchange und Outlook im CachedMode sind für QoS normal nicht im Fokus aber die Exchange UM-Rolle ist ein Lync Endpunkt für Audio. Und damit muss der Server auch für QoS berücksichtigt werden. Bei Exchange 2010 und 2013 hat Microsoft die UM-Rolle im Vergleich zu Exchange 2007 verändert. Nun nimmt der UMRouter die Anfragen auf Port 5061/5060 an aber leitet diese an einen der beiden UMWorker weiter. Die UMWorker-Prozesse werden überwacht und können problemlos daher vom Controller neu gestartet werden.

Die UMWorker sind aber auch die Prozesse, die letztlich die Audio-Verbindung aufbauen und daher bezüglich QoS zu betrachten. Sie haben auch hier wieder die Wahl, ob sie per Gruppenrichtlinie den Prozess kennzeichnen und durch Windows dann die DSCP-Tags anwenden lassen oder ob sie die verwendeten Ports festlegen und dann über die Ports durch das Netzwerk die Priorisierung erfolgen soll.

Für den Einsatz mit der Gruppenrichtlinie pro Prozess sollten sie nach folgenden Prozessnamen suchen

  • Umservices.exe
  • Microsoft.Exchange.UM.CallRouter.exe
  • Umworkerprocess.exe

Am einfachen können Sie z.B. eine Voicemail auf sprechen und mit Netmon oder Ressourcen Monitor sehen, welcher Prozess die Audioverbindung angenommen hat.

Wenn Sie stattdessen oder parallel die Portbereiche einschränken wollen, müssen Sie die Konfigurationsdatei "msexchangeum.config" editieren. für Audio nutzen die UMWorker per Default die Port 1024-65535. Hier ein Auszug aus den Einstellungen:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <!-- The min/max ports to use für RTP media.  If the values are invalid, or max < min, the default will be used -->
    <add key="MinimumRtpPort" value="1025" />
    <add key="MaximumRtpPort" value="65535" />
  </appSettings>
</configuration>

Hier können Sie die Daten anpassen. Bedenken sie aber, dass ein Exchange UM-Server nicht wie ein Lync Client nur ein oder zwei Verbindungen nutzt, sondern durchaus viele Verbindungen parallel bestehen können und daher auch eine entsprechende PortRange erforderlich ist.

Gateway

Beim Einsatz von MediaBypass muss natürlich das Gateway auch entsprechend konfiguriert werden. Wobei hier auch der Netzwerkadministrator einfach die IP-Adresse des Gateways als Kriterium auf dem Switch/Router nutzen kann, um selbst die DSCP-Werte anzuwenden.

Bei einem Audiocodes Mediant finden sich die Einstellung unter :"Configuration->VoIP->Network->QoS Settings.

Und abweichend auch unter den IP-Profilen:

Zusätzlich können Sie auch die UDP-Startports einstellen aber nicht die Menge.

Da ein Gateway eine feste IP-Adresse hat und als "Trusted System" anzusehen ist, sollte man hier nicht nach Ports gehen, sondern DSCP verwenden.

Interessant ist auch die Option, das der Mediant am Ende der Verbindung die Statistiken auch im SIP-Release mitsenden kann.

Folgende Daten werden übermittelt.

BYE sip:NAWLYNC001.netatwork.de:5068;maddr=192.168.100.100;transport=tcp SIP/2.0
From: <sip:+49160xxxxxxx@nawm1000.netatwork.de;User=phone>;tag=1c753593206
To: "Carius, Frank"<sip:+495251304613;ext=613@nawlync001.netatwork.de;User=phone>;
CSeq: 1 BYE
Supported: em,timer,replaces,path,resource-priority
Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE,UPDATE User-Agent: Audiocodes-Sip-Gateway-Mediant 1000/v.6.40A.042.004
Reason: Q.850 ;cause=16
X-RTP-Stat:  PS=77; OS=11684; PR=295; OR=46723; PL=0; JI=20; LA=0
Content-Length: 0

Die Daten werden hier als eine "X-RTP-Stat:"- Zeile addiert. Leider wertet Lync diese Informationen nicht aus.

Selbst der kleine ATA-Adapter HT502 erlaubt eine Definition von QoS-Tags auf Layer 2 (802.1p) als auch Layer 3 (DSCP)

Ergänzend kann pro Analogport auch der zu verwendende RTP-Port vorgegeben werden.

Hier muss natürlich geplant werden, ob die Ports festgelegt werden müssen, weil die Switches basierend auf den Ports die DSCP-Einordnung vornehmen oder ob das Gerät selbst die 802.1p bzw. DSCP Kennzeichnung mitgibt.

Lync Telefone

Und selbst die "Lync Telefone" sind für QoS zu konfigurieren. Hierbei werden aber nun keine Portranges definiert, sondern gleich die DSCP-Einstellung für alle Pakete hinterlegt. Video und AppSharing gibt es dort ja nicht, so dass z.B. DSCP=EF nur für Audio (und den SIP-Traffic) angewendet wird.

Set-CsUCPhoneConfiguration `
    -identity global `
    -VoiceDiffServTag 46

Alternativ kann natürlich auch hier ein Administrator auch wieder den Ethernet-Port des Telefons klassifizieren oder die Ports der Telefone in ein eigenes VLAN stecken und darüber klassifizieren.

Anpassungen für QoS Einsatz

In dem Dokument "Enabling Quality of Service with Microsoft Lync Server 2010" (http://www.microsoft.com/en-us/download/details.aspx?id=12633) beschreibt Microsoft, wie QoS mit Lync konfiguriert werden kann. Dabei werden folgende Portbereiche vorgeschlagen.

Die Serverdienste müssen mehr Ports verwenden, da ja viele Clients gleichzeitig eine Verbindung aufbauen können. Der Client selbst kommt aber natürlich mit weniger Ports aus.

Viele Administratoren scheuen sich vor einer Veränderung dieser Lync Einstellungen, da sie natürlich auch bei allen zukünftigen Änderungen , Erweiterungen, Installation, Updates etc. zu berücksichtigen sind. Die Fixierung von Ports ist aber für dein Einsatz von QoS erforderlich, da Windows als Betriebssystem zwar auch anhand von Prozessnamen eine DSCP-klasse zuweisen kann, aber die meisten Router und Switches natürlich sich nur an den IP-Adressen und Ports orientieren können. Auch auf die Belange von Firewalls muss natürlich Rücksicht genommen werden.

Enabling Quality of Service with Microsoft Lync Server 2010
http://www.microsoft.com/en-us/download/details.aspx?id=12633

Ob diese Einstellungen für ihre Umgebung passend sind, bleibt natürlich erst einmal dahin gestellt.
Es gilt zuerst zu entscheiden, wie die Kennzeichnung erfolgen soll. Statische Ports sind aber sowohl für die Klassifizierung auf dem Switch/Router erforderlich als auch bei einer Klassifizierung mit Windows QoS-Policies.

Gruppenrichtline für Lync Client

Wenn die Kennzeichnung von Paketen für bestimmte Transportklassen nicht auf dem Router oder Switch anhand von Ports erfolgt, dann muss entweder das Betriebssystem auf dem Client die DSCP-Werte setzen oder die Anwendung selbst. Bei Lync ist es so, dass diese Aufgabe dem Betriebssystem überlassen wird. Daher ist am besten eine Gruppenrichtlinie dazu geeignet, auf allen Clients z.B. abhängig vom Prozessnamen eine Klasse zu vergeben. Siehe auch QoS Windows.

Hinweis
Mit Lync 2013 hat sich der Name von "Commuicator.exe" nach "Lync.exe" geändert.

QoS Calculator

Die Pflege und Konfiguration von Richtlinien (GPOs und Skype for Business) kann schnell unübersichtlich werden. Als Unterstützung gibt es einen Calculator, in dem Sie die ganzen Ports etc. eintragen können und am Ende daraus Policies werden.

Weitere Links