Problem:
Versucht man in einem Meeting die Kamera zu aktivieren kommt die Meldung "Die Verbindung zum Medienserver konnte nicht aufgebaut werden"

Ursache:
In den meisten Fällen ist die Ursache ein aktives NAT für die STUN Regel in der Firewall bzw. fehlende Outbound-NAT Regeln.
Das LiveKit nutzt eigene STUN Abfragen zur Bestimmung seiner WAN IP und greift auf nichts vom XCC zurück. Das Funktionsprinzip ist nicht mit dem vom XCC zu vergleichen. LiveKit macht bei jedem "Call" eine neue Abfrage, nicht wie der XCC einmalig beim Start der Dienstes.
Wie bei den Ports für die SRTP Pakete von den Sprachpaketen, müssen auch die Ports für die SRTP Pakete vom Videostream 1:1 abgehend genattet werden.
Durch die Arbeitsweise des LiveKits in Bezug auf die Bestimmung seiner IP-Adresse im Vergleich zum XCC, muss ggf. abhängig der Firewall die STUN Regeln nach Extern speziell eingerichtet werden.
Lösung:
Logging:
Im ersten Schritt müssen die passenden Logfiles erstellt werden. Es werden die WebRTC-Logs vom Client für ein aktives Video Meeting benötigt:
Starten Sie ein Meeting von einem Client, bei dem das Video nicht funktioniert. Nach der Teilnahme, öffnen sich durch einen Klick auf die Einstellungen in der Kopfzeile ein Panel auf der linken Seite. Laden Sie die Logs über den Download Button herunter.
Sie erhalten eine .zip Datei.
Analyse:
Öffnen Sie die Datei "livekit-webrtc.log" und suchen Sie den Abschnitt "Remote Candidates".
Den Schlechtfall erkennt man daran, dass der Kandidat der externen IP Adresse einen anderen Port verwendet.
Der Port 33858 auf der rechten Seite ist der, der beim LiveKit lokal genutzt wird.
Der Port 34799 auf der linken Seite ergibt sich durch das normale NAT der eingesetzten Firewall.
In diesem Fall muss aber sichergestellt sein, dass die Firewall schon beim STUN Request den lokalen Quellport des LiveKits nicht verändert.
Alternativ kann mithilfe eines Wireshark Traces ebenfalls überprüft werden, wie die Ports verschickt werden.
Starten Sie das Wireshark-Trace am XCC. Geben Sie im Filter STUN ein:
Die beiden markierten Ports müssen übereinstimmen. Ist das wie im Screenshot zu sehen nicht der Fall, müssen wie im Folgenden beschrieben Einstellungen in der Firewall vorgenommen werden.
Was muss ich einstellen?
Wie das Ganze nun firewallseitig eingestellt wird, ist herstellerabhängig. Grundsätzlich gilt wie oben erwähnt:
Bei Video erfolgt die STUN-Ermittlung bei jeder neuen Client-Verbindung. Hierbei werden sowohl die über STUN ermittelte öffentliche IP-Adresse als auch der öffentliche UDP-Port zur Bestimmung des WebRTC-Kandidaten verwendet. Dadurch ist das NAT-Verhalten der Firewall für die Video-Verbindung relevant.
|
Wichtig: Eine reine Firewall-Freigabe für STUN ist nicht ausreichend. Zusätzlich muss sichergestellt werden, dass das Outbound NAT den verwendeten UDP-Source-Port nicht verändert. |
Herstellerspezifische Konfiguration:
Achtung: C4B konfiguriert keine Drittsysteme. Die folgenden Angaben basieren auf Kunden-Supportfällen und führen ggf. nicht in jedem Szenario zum Erfolg. Hier sollte immer ein erfahrener Firewall Admin einen Blick über die Konfiguration werfen, auch um ein potentielles Sicherheitsrisiko zu vermeiden. Wir übernehmen keinerlei Haftung.
OPNsense / pfSense
Bei OPNsense beziehungsweise pfSense wird die Port-Beibehaltung über die Outbound-NAT-Konfiguration gesteuert.
Für die verwendete Video-SRTP-Port-Range muss eine entsprechende Outbound-NAT-Regel angelegt beziehungsweise angepasst werden.
In dieser Regel muss die Option:
Static Port
aktiviert werden.
Dadurch wird verhindert, dass beim Source NAT zusätzlich der UDP-Source-Port verändert wird.
Vereinfacht:
192.168.XXX.XXX:33250 → 203.0.XXX.XXX:33250
anstatt:
192.168.XXX.XXX:33250 → 203.0.XXX.XXX:53268
Die notwendige Firewall-Freigabe für den STUN-Traffic ist davon unabhängig und muss ebenfalls vorhanden sein.
Barracuda Firewall
Bei Barracuda wird die Beibehaltung des Source-Ports nicht über eine separate Outbound-NAT-Regel für die Source-Port-Range konfiguriert.
Stattdessen wird das NAT-Verhalten innerhalb der entsprechenden Firewall-Regel beziehungsweise des verwendeten Connection Objects festgelegt.
Für die Regel, über welche die STUN-Kommunikation erfolgt, muss die Option:
Use Same Port
aktiviert werden.
Dadurch wird sichergestellt, dass der ursprüngliche UDP-Source-Port beim NAT beibehalten wird.
Vereinfacht:
192.168.XXX.XXX:33250 → 203.0.XXX.XXX:33250
anstatt:
192.168.XXX.XXX:33250 → 203.0.XXX.XXX:53268
Weitere Firewall-Hersteller
Bei anderen Firewall-Herstellern können sowohl die Bezeichnung der Funktion als auch die Art der Konfiguration abweichen.
Bei der Einrichtung sollte daher in der Dokumentation des jeweiligen Herstellers geprüft werden, wie sich für eine definierte UDP-Port-Range eine Beibehaltung des ursprünglichen Source-Ports bei Source NAT konfigurieren lässt.
Unabhängig von der konkreten Implementierung muss folgendes Verhalten erreicht werden:
UDP Source Port LAN = UDP Source Port WAN
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.