RTP Portcheck

Das Tool Skype for Business Online Network Assessment Tool kann zur Überprüfung der Netzwerkparameter (Latenz, Jitter) genutzt werden. Es gibt aber auch einen Schalter, um damit die Erreichbarkeit der Office 365 TURN-Server zu überprüfen.

Warum das wichtig ist?

Anders, als bei Skype for Business On-Premises, bei denen viele Anwender "intern" sind und auch der Server "intern" steht, sind bei Skype for Business Online oder Teams alle Anwender immer "extern". Zwar ist es immer noch möglich, dass zwei interne Clients direkt miteinander per RTP kommunizieren aber sobald es um Meetings geht oder zwischen den Teilnehmern kein geroutetes IP-Netzwerk vorhanden ist, müssen die Client sich der STUN/TURN-Dienste bedienen. Das ist ein normaler Prozess aber um die Audio/Video-Qualität zu erhalten, sollte die Verbindung darauf auch optimiert sein.

Natürlich können die Clients auch RTPC over HTTPS Tunneln und so sogar einen HTTP-Proxy auf dem Weg zur Cloud nutzen. Aber speziell für die Übertragung von Audio ist dies alles andere als optimal und letztlich verlieren alle:

  • Der Anwender...
    .. weil die Audio-Qualität schlechter ist. Ein Sprachpaket in TCP oder sogar HTTPS zu verpacken erhöht die Latenzzeit und speziell auf schlechten Leitungen mit Paketverlust wird der Effekt noch deutlicher, wenn der TCP-Stack verlorene Pakete erneut anfordert obwohl diese aufgrund der damit verbundenen Verzögerung sowieso nicht mehr wiedergegeben werden.
  • Der HTTPProxy- Admin
    Weil sein Proxy-Server durch die Vielzahl von Paketen (50/Sek pro Stream) deutlich mehr Last hat, als beim klassischen "Web Surfen"
  • Der Netzwerk Admin
    Da speziell bei TCP der Client gar keine Möglichkeit hat, Pakete als "obsolet" zu kennzeichnen. Bei TCP wird immer sichergestellt, dass alle Pakete in der richtigen Reihenfolge und lückenlos übertragen werden. Das kostet auf jeden Fall die Bandbreite aber bringt keinen Vorteil.

Das ist auch der Grund, warum Sie idealerweise für Skype for Business Online und Microsoft Teams auch die UDP-Port 3478-3481 zumindest zu den Microsoft TURN-Servern per NAT durchlassen.

Port-Check

Wenn Sie aber dies schon verstanden haben, dann stellt sich die Frage, wie sie diese Durchgängigkeit prüfen können. Ein TCP-Check ist zwar noch einfach aber eine Kontroller einer UDP-Durchlässigkeit erfordert natürlich eine Gegenstelle, die auch antwortet. Genau diese Funktion enthält auch das Skype for Business Online Network Assessment Tool, wenn Sie es mit der Option "/connectivitycheck" aufrufen. Durch "/verbose" sehen Sie auch sofort, was er tut.

C:\>cd "C:\Program Files (x86)\Microsoft Skype for Business Network Assessment Tool"
C:\Program Files (x86)\Microsoft Skype for Business Network Assessment Tool>NetworkAssessmentTool.exe /connectivitycheck /verbose

Skype for Business - Network Assessment Tool

Starting Connectivity checks
Relay : 13.107.64.2     is reachable using Protocol UDP and Port 3478
Relay : 13.107.64.2     is reachable using Protocol TCP and Port 443
Relay : 13.107.64.2     is reachable using Protocol HTTPS and Port 443
Relay : 13.107.65.5     is reachable using Protocol UDP and Port 3478
Relay : 13.107.65.5     is reachable using Protocol TCP and Port 443
Relay : 13.107.65.5     is reachable using Protocol HTTPS and Port 443
Relay : 52.113.192.2    is reachable using Protocol UDP and Port 3478
Relay : 52.113.192.2    is reachable using Protocol TCP and Port 443
Relay : 52.113.192.2    is reachable using Protocol HTTPS and Port 443
Relay : 52.113.193.5    is reachable using Protocol UDP and Port 3478
Relay : 52.113.193.5    is reachable using Protocol TCP and Port 443
Relay : 52.113.193.5    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.188.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.188.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.188.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.188.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.188.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.188.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.189.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.189.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.189.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.189.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.189.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.189.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.190.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.190.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.190.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.190.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.190.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.190.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.191.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.191.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.191.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.191.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.191.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.191.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.220.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.220.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.220.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.220.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.220.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.220.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.221.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.221.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.221.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.221.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.221.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.221.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.222.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.222.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.222.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.222.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.222.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.222.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.223.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.223.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.223.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.223.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.223.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.223.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.124.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.124.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.124.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.124.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.124.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.124.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.125.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.125.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.125.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.125.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.125.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.125.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.126.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.126.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.126.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.126.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.126.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.126.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.127.1    is reachable using Protocol UDP and Port 3478
Relay : 52.114.127.1    is reachable using Protocol TCP and Port 443
Relay : 52.114.127.1    is reachable using Protocol HTTPS and Port 443
Relay : 52.114.127.254  is reachable using Protocol UDP and Port 3478
Relay : 52.114.127.254  is reachable using Protocol TCP and Port 443
Relay : 52.114.127.254  is reachable using Protocol HTTPS and Port 443
Relay : 52.114.60.1     is reachable using Protocol UDP and Port 3478
Relay : 52.114.60.1     is reachable using Protocol TCP and Port 443
Relay : 52.114.60.1     is reachable using Protocol HTTPS and Port 443
Relay : 52.114.60.254   is reachable using Protocol UDP and Port 3478
Relay : 52.114.60.254   is reachable using Protocol TCP and Port 443
Relay : 52.114.60.254   is reachable using Protocol HTTPS and Port 443
Relay : 52.114.61.1     is reachable using Protocol UDP and Port 3478
Relay : 52.114.61.1     is reachable using Protocol TCP and Port 443
Relay : 52.114.61.1     is reachable using Protocol HTTPS and Port 443
Relay : 52.114.61.254   is reachable using Protocol UDP and Port 3478
Relay : 52.114.61.254   is reachable using Protocol TCP and Port 443
Relay : 52.114.61.254   is reachable using Protocol HTTPS and Port 443
Relay : 52.114.62.1     is reachable using Protocol UDP and Port 3478
Relay : 52.114.62.1     is reachable using Protocol TCP and Port 443
Relay : 52.114.62.1     is reachable using Protocol HTTPS and Port 443
Relay : 52.114.62.254   is reachable using Protocol UDP and Port 3478
Relay : 52.114.62.254   is reachable using Protocol TCP and Port 443
Relay : 52.114.62.254   is reachable using Protocol HTTPS and Port 443
Relay : 52.114.63.1     is reachable using Protocol UDP and Port 3478
Relay : 52.114.63.1     is reachable using Protocol TCP and Port 443
Relay : 52.114.63.1     is reachable using Protocol HTTPS and Port 443
Relay : 52.114.63.254   is reachable using Protocol UDP and Port 3478
Relay : 52.114.63.254   is reachable using Protocol TCP and Port 443
Relay : 52.114.63.254   is reachable using Protocol HTTPS and Port 443
Verifications completed successfully

Result has been written to: C:\Users\user1\AppData\Local\Microsoft Skype for Business Network Assessment Tool\connectivity_results.txt

Die Ergebnisse landen aber auch noch ein einer Datei im Benutzerverzeichnis.

Hintergründe: Konfiguration

Natürlich hat mich interessiert, was da im Hintergrund passiert. Zuerst haben ich per Fiddler geschaut, was per HTTP/HTTPS passiert. Hier konnten Sie gut erkennen, wie der Client per Request sich die Liste der Endpunkte holt. Der Request liefert eine JSON-Datei, die aber noch viel mehr Daten liefert.

Der erste Request liefert noch nicht viel und dürfte wohl eher der Überprüfung oder Telemetrie dienen.

PS C:\> (Invoke-WebRequest https://config.teams.microsoft.com/config/v1/Skype/1.0.0.0?agents=NetworkAssessentTool).rawcontent

HTTP/1.1 200 OK
Cache-Control: no-cache, max-age=3600
ETag: "47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU="
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-MSEdge-Ref: Ref A: D5E811441D314ABCB15FC26A56639DEF Ref B: AM3EDGE0209 Ref C: 2019-10-27T13:54:49Z
Date: Sun, 27 Oct 2019 13:54:48 GMT
Content-Length: 151
Content-Type: application/json
Expires: Sun, 27 Oct 2019 14:54:49 GMT

{"Headers":{"ETag":"\"47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=\"","Expires":"Sun, 27 Oct 2019 14:54:49 GMT","CountryCode":null,"StatusCode":"200"}}

Der zweite Request liefert aber eine umfangreichere JSON-Antwort, die ich hier nur partiell wiedergeben.

Die Bereiche "InstanceIP" sind hier nicht vollständig abgedruckt aber auf Basis der Antworten macht das Tool dann seinen Verbindungscheck.

Hintergründe: RTP

Mit Wireshark habe ich dann dem Programm etwas genauer auf die Finger geschaut. Aus der Liste der geprüften Gegenstellen habe ich mit dann die erste Adresse ausgesucht:

In Wireshark habe ich einen Filter auf "ip.addr==13.107.64.2" gesetzt und sie sehen gut die verschiedenen Verbindungen, die hier alles erfolgreich waren:

Wenn Sie die Statistik zu den "Conversations" anzeigen und auf den Displayfilter beschränken, sehne Sie nur zwei Verbindungen bei TCP:

Für den UDP-Test nutzt das Tool aber nur genau einen Request, der von der Gegenseite beantwortet wird.

Der UDP-Test entspricht meinem eigenen Test von End2End-UDP3478

Check mit On-Premises

Sie können als Parameter beim Skype for Business Online Assessment Tool übrigens auch eine beliebige IP-Adresse angeben. Das kann auch ihr eigener "On-Premises- Skype for Business Edge Server" sein. Wenn Sie hier aber einen DNS-Namen angeben, dann prüft das Tool nur die Verbindung per TCP aber nicht UDP.

Sie können damit also auch von extern die Erreichbarkeit ihres eigenen Edge-Servers überprüfen.

Weitere Links