Using Tailscale as the IP Underlay for Reticulum
Reticulum does not need Tailscale, but its TCP interfaces can use a Tailscale path just like any other private IP network.
TOPIC
Lessons, explainers, experiments, and implementation notes.
Reticulum does not need Tailscale, but its TCP interfaces can use a Tailscale path just like any other private IP network.
The configuration is small, but binding address and access policy decide whether the bridge is private or accidentally broader than intended.
The useful property is not that the IP path never fails; it is that the transport can recover without redefining the whole Reticulum network.
The interesting architecture is not choosing radio or IP; it is letting Reticulum use different interfaces for different reachability conditions.
Raw host tty names leak host enumeration details into Reticulum configuration and make migration harder.
Two healthy RNodes can be mutually deaf when frequency, bandwidth, spreading factor or coding rate differ.
Turning on Reticulum transport was more than a logging preference because it changed how the host participates in forwarding.
The same Reticulum instance needed to bridge local IP-connected peers and radio-connected peers without pretending TCP and LoRa were the same medium.
Changing one LoRa parameter to chase range can quietly change airtime, sensitivity and compatibility elsewhere.
The lab used both 433-class LR1121/E22 work and an 867.2 MHz RNode profile, which could easily be mixed in memory.
A receiver can detect energy or even preamble-like activity while rejecting the packet format expected by the application.
A scan could fail to decode a packet yet still reveal that one PHY was closer to the transmitter than all the others.
Auto-scanning many SF/BW combinations helped discover compatibility clues but could not replace an agreed production PHY.
Early experiments were tempting to interpret as radio-range evidence even when the nodes did not yet have confirmed band-appropriate antennas.
Having only a 2.4 GHz antenna available created pressure to use it for sub-GHz experiments just to continue testing.
The desire for multi-kilometre range could easily turn into a single-variable question about how many dBm the radio can transmit.
A high-power remote module made it tempting to run both nodes at maximum output during bench debugging.
A working RNode can disappear after reboot if the host binds to a transient tty name that changes when USB devices reorder.
Flashing through the bridge looked ambiguous because the USB side and target side were different MCUs.
Repeated no-response behavior at different physical setups did not prove a pure propagation problem because the remote device mode/profile was still uncertain.
The local module read and configured correctly, creating a strong temptation to declare the radio side healthy.
Generic transparent traffic could fail for many reasons, so the investigation needed one manufacturer-documented transaction with a predictable reply.
The E22 AUX pin changed around transmissions, but the remote EWM still returned no bytes.
Different EBYTE operating modes made it possible for both devices to be powered and configured yet unable to execute the intended over-air management transaction.
Silence from the EWM looked like a hardware failure but the observation did not isolate which half of the wireless path was wrong.
Over-air configuration cannot recover a remote module whose stored mode/profile is unknown if that unknown state prevents the OTA command itself.
A long-running rnsd process could appear healthy while its RNode device disappeared or the interface failed.
Frequency, bandwidth, SF, coding rate and device mapping were being changed during experiments and could easily become undocumented shell history.
Long automatic scans produced hundreds of lines that were hard to compare across runs.
A successful point-to-point packet is necessary but insufficient evidence for a useful multi-node transport network.
The USB-visible ESP32-C6 bridge made it easy to confuse the bridge MCU with the ESP32-S3/LR1121 radio target behind it.
Linux services can probe new serial devices and interfere with a host-controlled radio before Reticulum starts.
Having multiple radio boards powered and visible created a false sense that a multi-node Reticulum network already existed.
Docker made RNS reproducible, but the radio still existed as a physical character device outside the container.