Commit 22d2c7f0 authored by Kourser's avatar Kourser
Browse files

Une plage se redirige mal, un port se redirige

LiveKit écoutait sur cent ports UDP contigus. La plage a l'air plus
généreuse ; elle oblige surtout chaque équipement du chemin à porter une
redirection de plage, et c'est ce qui se configure le plus mal.

Constaté sur une installation réelle, derrière deux NAT : la règle
« 50200-50300 vers 50200 » livrait tout le trafic sur le seul 50200,
quand le navigateur visait 50237. La signalisation réussissait, le jeton
était accepté, la salle s'ouvrait — et personne ne voyait personne. Le
navigateur ne disait rien de plus utile que « ICE failed ». L'appel ne
tenait que par ICE-TCP, le pire des chemins retenus.

LiveKit sait multiplexer tout son média sur un port unique. Celui-là se
redirige comme la signalisation ou le TURN, c'est-à-dire de la façon qui
marche déjà partout. Il épargne aussi cent processus « docker-proxy ».

La composition garde un repli sur l'ancien nom : un .env non migré porte
une plage dont le premier numéro est celui que LiveKit écoute désormais,
si bien qu'un « git pull » sans installateur ne casse personne.

Ce repli est emboîté, et deux aides de l'installateur dépliaient
« ${VAR:-défaut} » avec une expression qui s'arrête au premier « } » —
elles rendaient du texte au lieu d'un nombre. « ports_composition »
aurait cessé de voir le port média, c'est-à-dire l'aide même qui détecte
les conflits de ports. Les deux savent désormais déplier.

L'installateur migre la valeur, et non seulement le nom : la table de
renommage conserve les valeurs, ce qui aurait laissé « 50200-50300 » sous
un nom qui promet un numéro. Il migre « livekit.local.yaml » dans le même
geste — séparer les deux redonnerait exactement la panne ci-dessus.

Quatre garanties nouvelles tiennent l'accord des deux fichiers, éprouvées
en cassant chaque condition plutôt qu'en les regardant passer au vert.

Co-Authored-By: default avatarClaude Opus 5 <noreply@anthropic.com>
parent febb485d
Loading
Loading
Loading
Loading