Adding SRV Record Support #1772
Replies: 11 comments 34 replies
-
Jamulus Directory Server is not Kerberos, or Active Directory, or LDAP. Thus, SRV is such a large hammer that it is most useful as a door-stop. |
Beta Was this translation helpful? Give feedback.
-
I was thinking about exactly that when onboarding different ensembles on different Jamulus instances. Having a way for "virtual hosting" would make this easier, both for users and for hosters. Implementation-wise, it will probably only affect client-related connection code, right? The alternatives have downsides:
I like the idea, but we should wait what other developers say. |
Beta Was this translation helpful? Give feedback.
-
I just wanted to follow up on this post. Does anyone else have any thoughts on this? If not, I may see if I can implement this later this summer. |
Beta Was this translation helpful? Give feedback.
-
Seems like a good enhancement if those who need it can take advantage of if without confusing or disadvantaging those who can't. |
Beta Was this translation helpful? Give feedback.
-
Perhaps not the solution what you are looking for, but my different ensembles gather on my private server which is a central server (or directory server now), and there they can choose from different rooms named after the ensemble. We did the same on a festival. btw I came across this looking for the issue of letting 2 domainnames point to the same IP, so two different doors to enter my server. . might a SRV record solve that? |
Beta Was this translation helpful? Give feedback.
-
Today is a holiday. I finally had time to be curious about this topic. What problem are we trying to solve? Why doesn't the use of a domain name solve the problem? By using domain names:
The main drawback is you need to create a domain name for your server. |
Beta Was this translation helpful? Give feedback.
-
Honestly, IP addresses and ports are software jank. Users shouldn't see them, or be expected to type them ever (naturally they should still work). They're to be expected for the maturity and resources of the project - I'm grateful to all the contributors who have kindly built and shared what we have. I like that this proposal creates a better way, but doesn't cause disruption. Please consider the security implications of this change, both from malicious domain name strings, and malicious SRV responses. |
Beta Was this translation helpful? Give feedback.
-
The OP's question and SRV solution is the only one that would make sense for my situation. I host a number of private Jamulus servers for a number of customers. I use AWS's Global Accelerator to allow Jamulus clients the best latency possible from anywhere in the world. The Global Accelerator provides a single anycast IP address for my entire infrastructure, and it routes the Jamulus traffic internally based on the external port number. So one IP address with many port numbers get routed to my Jamulus servers on my private AWS VPN. The Jamulus servers are stock linux installs, listening on the standard Jamulus port with a private-only IP address. The Jamulus servers are completely unaware of the sophisticated routing happening in the AWS cloud. And the Jamulus servers have no interaction with domain names or a Central Registry Server. This all works really well, except that I have to give my customers ugly connection URLS If Jamulus CLIENT could resolve SRV records, this issue would be solved for me. No changes to Jamulus Server, no need for central registry servers, no need to waste IP address, and no need to change a singly byte of code in Jamulus Server. |
Beta Was this translation helpful? Give feedback.
-
FWIW, I've hacked up a quick SRV parsing PoC here: hoffie@client-srv-support (required refactoring: hoffie@client-srv-support~1) Connecting to either of those with the updated client will actually connect to localhost:1234 or localhost:5678 respectively.
Not sure how or when to continue though, considering that there is no consensus for this feature yet. |
Beta Was this translation helpful? Give feedback.
-
Thanks everyone for the consideration and code workup. I know this is somewhat of a niche feature, but I think it's valuable in offsetting the relatively narrow reach of a single Jamulus server. Unlike the more common internet protocols (http, etc.) that serve thousands of users at once, Jamulus serves a relatively few users for a long time. So the slope of server requirement vs user demand is rather steep. This feature will help admins host a number of servers while keeping it "clean" from the user POV, similar to putting a bunch of http servers behind a common load balancer. If someone posts a Mac binary of the above workup (my Mac build environment is not currently functional), I'd be happy to try it out with my own servers and DNS setup. |
Beta Was this translation helpful? Give feedback.
-
I've been experimenting with the SRV support, and it's working great with custom server addresses in the Server Address field of the Connect window. I'm also trying to use this feature in conjunction with a Directory server, and I can't figure out how to pass the FQDN to the Directory server from an instance of Jamulus server. I haven't used Directory servers much, so maybe I'm missing something. How do we list a Jamulus server on a Directory server based on FQDN instead of an IP address? |
Beta Was this translation helpful? Give feedback.
-
Good Evening everyone!
Would there be any interested in adding support for SRV Records (for some background on SRV Records, see here). I might be interested in implementing this if the main contributors don't see a problem with me working on adding it!
For reference, the advantage (to me) for adding this is that it would allow for multiple private servers to be hosted behind one public IP without having to worry about users specifying the port for the server they would like to connect to. The SRV record setup with the DNS provider indicates the ports/protocols and will direct traffic properly (assuming the application supports it).
Let me know your thoughts! I'd love to look into implementing this if the dev team will let me!
Beta Was this translation helpful? Give feedback.
All reactions