-
-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Media plane: Asymmetric ICE connection issues: no allocation found #143
Comments
I noticed that accessing from chrome i get different/addtional logs (logs in previous message were from FF):
Not sure if important, but wanted to add 'just in case its meaningful' |
Thanks for the clear problem description. We've already seen this. The problem seems to be caused by that STUNner is running behind an nginx UDP proxy and, for some reason, every UDP packet we get seems to be coming from a different UDP source port. Since TURN identifies allocations by the IP 5-tuple (IP src/dst address, UDP src/dst port, and IP proto), this breaks the TURN state machine. In other words, for each TURN message (like
Now, since this is the first time STUNner gets a TURN message from the UDP source port 30068 it tries to look up the corresponding session state but, it fails to find anything so it signals an error. We never really debugged what causes this, nginx or the kube-proxy or some weird interaction between the two, but it seems that STUNner behind nginx does not work. There are various possible workarounds:
|
You should lecture GitHub issue writing skills at a university... Anyway, if there are no logs in As per whether STUNner is a "first point of contact" I'd say it depends. There can be any number of L3/L4 middleboxes (firewalls, NATs, tunnel endpoints) between the client and the |
Closing this in preparation for v1, feel free to reopen if you have any new input. |
Sure, i'll add my insights when i'll get back to it. Had other priorities, but for now my traces lead to necessary changes within kube-proxy, as all iptables stuff seems to be in order. |
Hi,
my setup is as follows: I have on-premise k8s cluster, and I'm in the middle of integration of webrtc streaming. The idea is that client from his PC will establish webrtc connection to my streaming server within my kubernetes cluster. Streaming server handles sdp offer/answer exchange and once connection is made it starts streaming data.
Streaming server in standalone mode works as intended, both based on docker (certs handled by nginx reverse proxy in front of it), and bare metal (directly contains certs).
Due to the fact that my k8s is on premises (real kubeadm, not some minikube nor kind), my desired config looks as follows:
Client PC with browser -> nginx reverse proxy -> k8s cluster with stunner gateway(s) -> my simple server handling sdp exchange and streaming.
Based on stunner documentation (https://docs.l7mp.io/en/latest/DEPLOYMENT/#asymmetric-ice-mode) I concluded that i need to make setup like described Media Plane, with asymmetric ICE.
Although nothing works (im not sure if in asymmetric ICE client browser should go with iceTransport
relay
orall
, tried both since docs text mention it, but picture of config skips it, anyway none of them work).What I already checked:
No ICE candidate appears: Most probably this occurs because the browser's ICE configuration does not match the running STUNner config. Check that the ICE configuration returned by the application server in the registerResponse message matches the output of stunnerctl config. Examine the stunner pods' logs (kubectl logs...): permission-denied messages typically indicate that STUN/TURN authentication was unsuccessful.
But even when I went with default user-1/pass-1 still no luck.I tried also symmetric ICE, but no luck.
Not sure how to debug further, will be glad if you could point me in some direction
The text was updated successfully, but these errors were encountered: