My remote setup is as follows.
The radio is connected to a local switch. The switch is connected to
the ISP provided router. On the switch, I have a desktop and a
raspberry pi. The pi mainly runs Pi-Hole.
I usually travel with a laptop running Debian GNU/Linux. I have got
the free software mesh-VPN software called "tinc" installed on all
these systems including on the Pi and also on an external server on
digital ocean. The digital ocean server runs Debian and the data
center is close (ping times are in 5ms range). For this discussion,
assume that the laptop is outside my home network with another private
IP 192.168.1.100. At home, there is the radio, with an IP 192.168.1.2,
say, and Pi with an IP of 192.168.1.3. The Digital Ocean VPS has a
publicly accessible IP. Now, tinc gives private IPs to all these
(10.0.0.1 to laptop, 10.0.0.2 to Pi, 10.0.0.3 to VPS) and all are
accessible with each other. Now theoretically, SDR software can run on
my laptop and can access the radio sitting at my home. Not so easy.
The problem is, Radio is in another subnet now and VPN is on another
subnet (10.x.x.x). So, the radio is still not accessible. But with a
fixed IP assigned to radio via MAC layer based filtering, I wrote a
small UDP proxy that relays packets arriving at Pi's (10.0.0.2's port
1024) to Radio - 192.168,1.2's port 1024. Similarly, packets from the
radio are also relayed back to the SDR software. The UDP proxy is just
under 100 lines of Go code which is easily cross compiled to Pi or any
other platform.
With this setup, I have made SSB and CW QSOs - CW via a MIDI keyer
connected to the laptop.
There is another problem though. The radio is full duplex, so the
latency matters in the setup like the one I have. Suppose, SDR
software keys CW on. This reaches radio a few milliseconds later and
puts the radio in TX mode. However, the radio Rx is on and picks up
this signal. In the usual circumstances, you do not hear this because
the SDR software is in TX state. However, with latency, the SDR
software is in Rx state, while the remote radio is in TX state, so you
hear part of what you sent. For CW, this is very annoying. I remedied
it with a large QSK timeout value. But that is not always desirable.
Hope this helps. May be the above description looks complicated, but
it is not so! The only complicated part is the tinc setup. I can also
publish the UDP proxy code written in Go if anyone is interested. Have
used it for many hours now without any problems so far.
If anyone wants to replicate this setup, I can offer help, please
email me privately. (I run only GNU/Linux on my computers, I do not
know much about Windows and macOS). Tinc is an amazing piece of mesh
vpn software that makes this possible! It traverses the NAT in most
cases, unless the ISP provided router uses Symmetric NAT (which is a
problem with video calls as well .. and they use STUN/TURN standards
to send/receive UDP packets with or without an external relay).
73
Ram VU3RDD
> To view this discussion on the web visit
https://groups.google.com/d/msgid/hermes-lite/CADeq3S8DB-YX3f_KO5mNSD10EEUfyF6Omc6p%3DTuLLT-xA-SpnA%40mail.gmail.com.
--
Ramakrishnan