Are you sure that the UDM Pro is based on the mips architecture? I always thought it was arm64. You might want to double check that.
Thanks for getting back to me! Sorry, Iām getting you understandably confused. Iām trying to get site-to-site running between one site with a UDM Pro and one with a USG. Iām installing the docker arm64 image on the UDM Pro (and having issues with that, which Iām documenting over here on the main thread).
Separately, Iām also installing it on my USG at the other location using your very good instructions. I have the OpenVPN tunnel set up, and I can definitely access web interfaces / ssh across the subnets in both directions.
However, when I try to follow the directions to get the USG to run udp-proxy-2020, it just sits - no results.
john@Johns-MacBook-Air Downloads % wget https://github.com/synfinatic/udp-proxy-2020/releases/download/v0.0.11/udp-proxy-2020-0.0.11-linux-mips64
john@Johns-MacBook-Air Downloads % scp -O -i ~/.ssh/207UDM_rsa.pub udp-proxy-2020-0.0.11-linux-mips64 admin@192.168.10.1:/home/admin/bin/udp-proxy-2020
Then I ssh into my USG andā¦
admin@ubnt:~$ cd bin
admin@ubnt:~$ chmod +x udp-proxy-2020
admin@ubnt:~/bin$ sudo ./udp-proxy-2020 --port 9003 --interface eth1,vtun64
And this last line never comes back (it just sits). I tried downloading again from GitHub and renaming to make sure I didnāt screw up. Not sure if thereās a way to debugā¦
Thanks,
John
if you add -L trace to the command do you get any output?
Sorry, I donāt really know anything about the ASUS RT-AX88u or frankly the other 1000 different home routers that you can buy on Amazon. You probably want to research on some support forum such as https://www.snbforums.com on how to install a binary and auto-start it on boot.
Why yes I do!
admin@ubnt:~/bin$ sudo ./udp-proxy-2020 -L trace --port 9003 --interface eth1,vtun64
DEBUG eth1: ifIndex: 3
DEBUG eth1 network: ip+net string: 192.168.10.1/23
DEBUG eth1 network: ip+net string: 2600:8805:9a80:2b5:7a8a:20ff:fe44:4ed9/64
DEBUG eth1 network: ip+net string: fe80::7a8a:20ff:fe44:4ed9/64
DEBUG Listen: (main.Listen) {
iname: (string) (len=4) "eth1",
netif: (*net.Interface)(0xc0001685c0)({
Index: (int) 3,
MTU: (int) 1500,
Name: (string) (len=4) "eth1",
HardwareAddr: (net.HardwareAddr) (len=6 cap=4436) 78:8a:20:44:4e:d9,
Flags: (net.Flags) up|broadcast|multicast
}),
ports: ([]int32) (len=1 cap=1) {
(int32) 9003
},
ipaddr: (string) (len=14) "192.168.11.255",
promisc: (bool) false,
handle: (*pcap.Handle)(<nil>),
writer: (*pcapgo.Writer)(<nil>),
inwriter: (*pcapgo.Writer)(<nil>),
outwriter: (*pcapgo.Writer)(<nil>),
timeout: (time.Duration) 250ms,
clientTTL: (time.Duration) 0s,
sendpkt: (chan main.Send) (cap=100) 0xc0000b0720,
clients: (map[string]time.Time) {
}
}
DEBUG vtun64: ifIndex: 7
DEBUG Listen: (main.Listen) {
iname: (string) (len=6) "vtun64",
netif: (*net.Interface)(0xc000168c00)({
Index: (int) 7,
MTU: (int) 1500,
Name: (string) (len=6) "vtun64",
HardwareAddr: (net.HardwareAddr) ,
Flags: (net.Flags) up|pointtopoint|multicast
}),
ports: ([]int32) (len=1 cap=1) {
(int32) 9003
},
ipaddr: (string) "",
promisc: (bool) true,
handle: (*pcap.Handle)(<nil>),
writer: (*pcapgo.Writer)(<nil>),
inwriter: (*pcapgo.Writer)(<nil>),
outwriter: (*pcapgo.Writer)(<nil>),
timeout: (time.Duration) 250ms,
clientTTL: (time.Duration) 0s,
sendpkt: (chan main.Send) (cap=100) 0xc0000b07e0,
clients: (map[string]time.Time) {
}
}
DEBUG eth1: applying BPF Filter: (udp port 9003) and (src net 192.168.10.0/23)
DEBUG Opened pcap handle on eth1
DEBUG vtun64: applying BPF Filter: (udp port 9003) and (src net 192.168.50.50/32)
DEBUG Opened pcap handle on vtun64
DEBUG Initialization complete!
DEBUG handlePackets(eth1) ticker
DEBUG handlePackets(vtun64) ticker
DEBUG handlePackets(eth1) ticker
DEBUG handlePackets(vtun64) ticker
DEBUG handlePackets(eth1) ticker
DEBUG handlePackets(vtun64) ticker
DEBUG handlePackets(eth1) ticker
DEBUG handlePackets(vtun64) ticker
Does that mean itās running fine, I just donāt know how to run it so that it comes back to a command line and I can log out? Iām trying to remember when I sort of knew my way around Unix in the mid-90ās.
Yep, everything is fine.
udp-proxy-2020 doesnāt run as a ādaemonā⦠thatās fallen out of favor now with modern systems like systemd and Docker. Hence it runs in the foreground like youāre seeing.
So you should be able to continue to follow @Nepherteās instructions above to get it to run automatically on boot.
Awesome! Many thanks! Now I can focus on trying to get it to run on the UDM in Docker on the other thread - Iām a 2-for-the-price-of-one customer ![]()
But Iām going to write up my dummies guide, since I think this is going to be a non-zero use case ![]()
Awesome info, thanks to all who contributed!
My situation is a little different, and I got things almost working.
I run OPNsense on my home network. It has Wireguard installed configured with peers for my laptops and phones. All Apple devices. OPNsense is setup to allow full access to my home network via Wireguard, including internet. Everything works, including DNS and resolving of local and public addresses.
On OPNsense there is an official plugin called os-udpbroadcastrelay. Its function is very similar (even identical?) to udp-proxy-2020.
And for the good news, it seems to work. Roon connects and does not loose its configured audio devices. Local Macbook speakers are available too.
I can play and control home devices while connected to Wireguard.
However, when I try to play on the Macbook to the Macbook Speakers, the playback timer just sits at 0:00, and after a few seconds skips to the next song, sits at 0:00 for a while and so on.
Its not playing ā¦
I tried with udp-proxy-2020 and it shows the same behavior.
Any ideas please?
Edit: Some traffic was getting blocked still. Firewall rules to allow traffic made things work.
Hi and again, thank you to everyone in this thread. My use case is similar however I have PFSense firewalls in both locations with wireguard up and running for over a year now. Point to Point.
PFSense udpbroadcastrelay package states that it cannot send the UDP packages over WireGuard VPN. WG is L3, needs an L2 VPN and Iām not going to setup a second VPN between locations for now.
I donāt want to install anything on my PFSense, I would rather run UDP proxy in an LXC on proxmox (on both networks), pointing to the WG gateways instead of the interfaces. Is that possible?
No. That is not possible.
I wonder if you can perhaps get this working with some combination of ZeroTier with bridge nodes and @Aaron_Turnerās UDP Proxy. That would be in addition to what youāve already got working with WireGuard on your firewalls, so youād have to be comfortable with adding ZeroTier to the mix.
I use UDP Proxy to enable Roon core to run on a different subnet than my controllers and a couple of endpoints. I run it in a Docker container on the same machine on which my core, also in a container, runs. Works great. Thanks @Aaron_Turner!
thank you @Aaron_Turner and thank you for writing up this proxy. I hope you realize I was kidding around after reading your readme⦠āA crappy UDP router for the year 2020 and beyond.ā
I am going to try ZeroTier and see if that gets things going? Do you have any other ideas?
@gTunes Can you elaborate? You have UDP Proxy running on the same machine as Core? I thought UDP Proxy has to run on your firewall? Pointing directly to specific interfaces to work?
āudp-proxy-2020 --port 9003 --interface eth0,eth0.100,eth1,tun0 --cache-ttl 300ā
I was hoping I could install it directly on the LXC that runs my Roon Server and point it to the gateway:
āudp-proxy-2020 --port 9003 --gateway 10.100.90.1 --cache-ttl 300ā
Setup the reverse on my other network⦠so they are talking directly to each other over the wireguard VPN. If the service is running on each LAN and has a clear communication path to each other, @Aaron_Turner ?
In the case of VPN, your firewall (which is also your router) wonāt route multi-cast packets across network boundaries. To get the proxy to work, it has to run on the router so that it can essentially pick up the packets on one side and adjust/write them to the other. You canāt do this from any arbitrary machine - it has to be the router.
Iām doing something different. I have vlans within a single site. I run core and the proxy on the same machine and, on that machine, the proxy is able to read from one interface and write to the other. The packets it places on the āotherā network donāt have to go through a router to get to their destination. In my case, I run it like this:
udp-proxy-2020 --port 9003 --interface eth0,eth1 --cache-ttl 300
Iāve used ZeroTier a bit but Iām no expert. The hope would be that if you ran it on your proxmox box (where your core is) and you put that specific node in bridge mode, youād see an interface such as āzt0ā show up and that UDP Proxy would be able to route to it. So your interfaces would be something like eth0,zt0. (youād have to figure these out with something like āip link showā)
Iām not 100% sure about any of this, though.
Thank you for those details⦠I want to see if there is a solution that does not involve installing UDP proxy on my netgate box. However, I would be game to do that if I cannot find another solution.
Just got this msg⦠Reddit - Dive into anything
Maybe ZeroTier will do the trick?
No offense taken. Just you asked a simple question and you got a simple answer. ![]()
Generally speaking site-to-site isnāt something that I do personally, have no way of testing and just canāt support- mostly because everyoneās setup is very different and remote debugging via email/etc is too hard/painful.
Never used ZeroTier or other options and the way UDP Proxy 2020 works is kinda an ugly hack (hence the crappy part) and you already got a VPN. In theory, ZeroTier might work, but there are a lot of ???'s- especially if you want to keep your current network setup.
I may be wrong that you also need UDP Proxy when running ZeroTier in bridge mode. Itās worth trying with exactly one bridge node on both networks and with the core and ZeroTier bridge on the same device.
Figured you would get my bad joke⦠Just had some coffee and took a step back. Iām thinking now to install OpenVPN and UDP Proxy 2020 on the LXC that is running Roon Server?
The Open VPN on an LXC in home B. Try to route the Open VPN tunnel over my existing wireguard VPN so I donāt need to open any more ports?
How does that sound?
You can try. Fundamentally, UDP Proxy 2020 was designed as a router. Routers move packets between interfaces to forward traffic to other hosts. When you run UDP Proxy 2020 on the same host as Roon, itās only half a router. Yes, a real router has no problems delivering packets to itself, but again, UDP Proxy 2020 is a crappy router. ![]()
People sometimes have seen issues with that. I donāt know why, and Iāve never tried that. Roon Server was designed to run on your internal network and UDP Proxy 2020 was designed to run on your router/firewall.
Fundamentally, there are a billion and one possible network configurations and Iām just a dude who was trying to listen to Roon while visiting his parents in another state. Good luck!
You are far from just a dude ![]()
What do you think about this article?
https://an0n-r0.medium.com/making-dlna-through-site-to-site-vpn-work-f393629f4ce0