Ant Media Server mit IPv6 betreiben

Vor kurzem habe ich geschrieben, dass AntMedia IPv6 nicht unterstützt, siehe dazu auch Ant Media Server mit Apache Reverse Proxy.

Dieses Problem ist nun behoben. Vielen Dank an dieser Stelle für die schnelle Hilfe durch das Team von Ant Media, die sich mit mir persönlich in Verbindung gesetzt haben dazu!

Die Ursache für das Verhalten waren zwei Punkte:

  1. Die systemd-Unit für Antmedia,  /etc/systemd/system/antmedia.service,  enthält die Option -Djava.net.preferIPv4stack=true für den Start des Servers, was dazu führt, dass der Ant Media Server IPv4 bevorzugt, auch wenn IPv6 vorhanden ist.
  2. Die Konfiguration /usr/local/antmedia/conf/red5.properties enthält folgenden Eintrag, welcher die erlaubten IP-Adressen für das Dashboard festlegt: server.allowed_dashboard_CIDR=0.0.0.0/0. Damit werden aber Clients, die sich über IPv6 verbinden, ausgeschlossen.

Die Korrektur ist relativ einfach und wird vermutlich auch in einem der nächsten Updates von Ant Media enthalten sein:

In der Datei /etc/systemd/system/antmedia.service die Option -Djava.net.preferIPv4stack=true entfernen.

In der Datei /usr/local/antmedia/conf/red5.properties folgenden Eintrag vornehmen (bzw. den vorhandenen Eintrag entsprechend ändern), damit Verbindungen zum Dashboard über IPv4 und IPv6 möglich sind:

# Default value is open everyone
server.allowed_dashboard_CIDR=::/0,0.0.0.0/0

Danach den Server folgendermaßen neu starten:

systemctl daemon-reload
systemctl restart antmedia

Nach diesen Änderungen kann man den Reverse Proxy in Apache auch ohne die Option ProxyAddHeaders off verwenden und AntMedia sieht nun auch die echte IP-Adresse des Client und nicht nur 127.0.0.1:

RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://localhost:5080/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://localhost:5080/$1 [P,L]
ProxyPass / http://localhost:5080/
ProxyPassReverse / http://localhost:5080/

Update 2022-09-11

Für die Verwendung mit dem Reverse Proxy scheint die Änderung in der systemd-Unit nicht erforderlich zu sein. In meinem Fall genügt es, ::/0,0.0.0.0/0 als zulässige IP-Adressen in der Serverkonfiguration einzutragen. Das ergibt auch Sinn, da der Proxy sich über IPv4 verbindet und die IP-Adresse nur als Header übermittelt.

Öffentlichen Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Dies ist kein Kontaktformular! Wenn Du mir eine persönliche Nachricht schreiben möchtest, benutze die E-Mail-Adresse in meinem Impressum.

Du kannst die folgenden HTML-Tags im Kommentar verwenden:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>